2014-10-31 11:14:00 +03:00
|
|
|
<!DOCTYPE HTML>
|
|
|
|
<html>
|
|
|
|
<!--
|
|
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=558663
|
|
|
|
-->
|
|
|
|
<head>
|
|
|
|
<title>Test for Bug 558663</title>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<p><a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=558663">Mozilla Bug 558663</a></p>
|
|
|
|
|
|
|
|
<!-- 20x20 of red -->
|
|
|
|
<iframe id="iframe" src="data:text/html,<img id='image' border='0' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAAG0lEQVR42mP8z0A%2BYKJA76jmUc2jmkc1U0EzACKcASfOgGoMAAAAAElFTkSuQmCC'>"></iframe>
|
|
|
|
|
|
|
|
<pre id="test">
|
|
|
|
<script type="application/javascript">
|
|
|
|
|
|
|
|
/** Test for Bug 558663 **/
|
|
|
|
var ok = parent.ok;
|
|
|
|
var SimpleTest = parent.SimpleTest;
|
|
|
|
var compareSnapshots = parent.compareSnapshots;
|
|
|
|
var snapshotWindow = parent.snapshotWindow;
|
|
|
|
var synthesizeMouse = parent.synthesizeMouse;
|
|
|
|
|
2017-01-17 13:50:25 +03:00
|
|
|
window.addEventListener("load", runTest);
|
2014-10-31 11:14:00 +03:00
|
|
|
|
|
|
|
function checkSnapshots(s1, s2, shouldBeEqual, testName) {
|
|
|
|
var res = compareSnapshots(s1, s2, shouldBeEqual);
|
|
|
|
if (res[0]) {
|
|
|
|
ok(true, testName + " snapshots compare correctly");
|
|
|
|
} else {
|
|
|
|
ok(false, testName + " snapshots compare incorrectly. snapshot 1: " +
|
|
|
|
res[1] + " snapshot 2: " + res[2]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function runTest() {
|
|
|
|
document.getElementById("iframe").contentWindow.document.designMode = "on";
|
|
|
|
|
|
|
|
// The editor requires the event loop to spin after you turn on design mode
|
|
|
|
// before it takes effect.
|
|
|
|
setTimeout(continueTest, 100);
|
|
|
|
}
|
|
|
|
|
|
|
|
function continueTest() {
|
|
|
|
var win = document.getElementById("iframe").contentWindow;
|
|
|
|
var doc = win.document;
|
|
|
|
var image = doc.getElementById("image");
|
|
|
|
|
|
|
|
// We want to test that clicking on the image and then clicking on one of the
|
|
|
|
// draggers doesn't make the draggers disappear.
|
|
|
|
|
|
|
|
// clean snapshot
|
|
|
|
var before = snapshotWindow(win);
|
|
|
|
|
|
|
|
// click to get the draggers
|
|
|
|
synthesizeMouse(image, 1, 1, {type: "mousedown"}, win);
|
|
|
|
synthesizeMouse(image, 1, 1, {type: "mouseup"}, win);
|
|
|
|
|
|
|
|
// mouse over a dragger will change its color, so move the mouse away
|
|
|
|
synthesizeMouse(doc.documentElement, 50, 50, {type: "mousemove"}, win);
|
|
|
|
|
|
|
|
// snapshot with hopefully draggers
|
|
|
|
var middle = snapshotWindow(win);
|
|
|
|
|
|
|
|
// clicking on the top left dragger shouldn't change anything
|
|
|
|
synthesizeMouse(image, 1, 1, {type: "mousedown"}, win);
|
|
|
|
synthesizeMouse(image, 1, 1, {type: "mouseup"}, win);
|
|
|
|
|
|
|
|
// mouse over a dragger will change its color, so move the mouse away
|
|
|
|
synthesizeMouse(doc.documentElement, 50, 50, {type: "mousemove"}, win);
|
|
|
|
|
|
|
|
// snapshot with hopefully draggers again
|
|
|
|
var middle2 = snapshotWindow(win);
|
|
|
|
|
|
|
|
// click outside the image (but inside the document) to unselect it
|
|
|
|
synthesizeMouse(doc.documentElement, 50, 50, {type: "mousedown"}, win);
|
|
|
|
synthesizeMouse(doc.documentElement, 50, 50, {type: "mouseup"}, win);
|
|
|
|
|
|
|
|
// and then click outside the document so we don't draw a caret
|
|
|
|
synthesizeMouse(document.documentElement, 1, 1, {type: "mousedown"}, window);
|
|
|
|
synthesizeMouse(document.documentElement, 1, 1, {type: "mouseup"}, window);
|
|
|
|
|
|
|
|
// hopefully clean snapshot
|
|
|
|
var end = snapshotWindow(win);
|
|
|
|
|
|
|
|
// before == end && middle == middle2 && before/end != middle/middle2
|
|
|
|
checkSnapshots(before, end, true, "before and after should be the same")
|
|
|
|
checkSnapshots(middle, middle2, true, "middle two should be the same");
|
|
|
|
checkSnapshots(before, middle, false, "before and middle should not be the same");
|
|
|
|
checkSnapshots(before, middle2, false, "before and middle2 should not be the same");
|
|
|
|
checkSnapshots(middle, end, false, "middle and end should not be the same");
|
|
|
|
checkSnapshots(middle2, end, false, "middle2 and end should not be the same");
|
|
|
|
|
|
|
|
SimpleTest.finish();
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</pre>
|
|
|
|
</body>
|
|
|
|
</html>
|