mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
115 lines
4.5 KiB
HTML
115 lines
4.5 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=549262
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 549262</title>
|
|
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=549262">Mozilla Bug 549262</a>
|
|
<p id="display"></p>
|
|
<div id="content">
|
|
</div>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
|
|
/** Test for Bug 549262 **/
|
|
|
|
var smoothScrollPref = "general.smoothScroll";
|
|
SpecialPowers.setBoolPref(smoothScrollPref, false);
|
|
SimpleTest.waitForExplicitFinish();
|
|
var win = window.open("file_bug549262.html", "_blank",
|
|
"width=600,height=600,scrollbars=yes");
|
|
SimpleTest.waitForFocus(function() {
|
|
// Make sure that pressing Space when a contenteditable element is not focused
|
|
// will scroll the page.
|
|
var ed = win.document.getElementById("editor");
|
|
var sc = win.document.querySelector("a");
|
|
sc.focus();
|
|
is(win.scrollY, 0, "Sanity check");
|
|
synthesizeKey(" ", {}, win);
|
|
setTimeout(function() {
|
|
isnot(win.scrollY, 0, "Page is scrolled down");
|
|
is(ed.textContent, "abc", "The content of the editable element has not changed");
|
|
var oldY = win.scrollY;
|
|
synthesizeKey(" ", {shiftKey: true}, win);
|
|
setTimeout(function() {
|
|
ok(win.scrollY < oldY, "Page is scrolled up");
|
|
is(ed.textContent, "abc", "The content of the editable element has not changed");
|
|
|
|
// Make sure that pressing Space when a contenteditable element is focused
|
|
// will not scroll the page, and will edit the element.
|
|
ed.focus();
|
|
win.getSelection().collapse(ed.firstChild, 1);
|
|
oldY = win.scrollY;
|
|
synthesizeKey(" ", {}, win);
|
|
setTimeout(function() {
|
|
ok(win.scrollY <= oldY, "Page is not scrolled down");
|
|
is(ed.textContent, "a bc", "The content of the editable element has changed");
|
|
sc.focus();
|
|
synthesizeKey(" ", {}, win);
|
|
setTimeout(function() {
|
|
isnot(win.scrollY, 0, "Page is scrolled down");
|
|
is(ed.textContent, "a bc", "The content of the editable element has not changed");
|
|
ed.focus();
|
|
win.getSelection().collapse(ed.firstChild, 3);
|
|
synthesizeKey(" ", {shiftKey: true}, win);
|
|
setTimeout(function() {
|
|
isnot(win.scrollY, 0, "Page is not scrolled up");
|
|
is(ed.textContent, "a b c", "The content of the editable element has changed");
|
|
|
|
// Now let's test the down/up keys
|
|
sc = document.body;
|
|
setTimeout(function() {
|
|
ed.blur();
|
|
sc.focus();
|
|
oldY = win.scrollY;
|
|
synthesizeKey("VK_UP", {}, win);
|
|
setTimeout(function() {
|
|
ok(win.scrollY < oldY, "Page is scrolled up");
|
|
oldY = win.scrollY;
|
|
ed.focus();
|
|
win.getSelection().collapse(ed.firstChild, 3);
|
|
synthesizeKey("VK_UP", {}, win);
|
|
setTimeout(function() {
|
|
is(win.scrollY, oldY, "Page is not scrolled up");
|
|
is(win.getSelection().focusNode, ed.firstChild, "Correct element selected");
|
|
is(win.getSelection().focusOffset, 0, "Selection should be moved to the beginning");
|
|
win.getSelection().removeAllRanges();
|
|
synthesizeMouse(sc, 300, 300, {}, win);
|
|
synthesizeKey("VK_DOWN", {}, win);
|
|
setTimeout(function() {
|
|
ok(win.scrollY > oldY, "Page is scrolled down");
|
|
ed.focus();
|
|
win.getSelection().collapse(ed.firstChild, 3);
|
|
oldY = win.scrollY;
|
|
synthesizeKey("VK_DOWN", {}, win);
|
|
setTimeout(function() {
|
|
is(win.scrollY, oldY, "Page is not scrolled down");
|
|
is(win.getSelection().focusNode, ed.firstChild, "Correct element selected");
|
|
is(win.getSelection().focusOffset, ed.textContent.length, "Selection should be moved to the end");
|
|
|
|
win.close();
|
|
SpecialPowers.clearUserPref(smoothScrollPref);
|
|
SimpleTest.finish();
|
|
}, 20);
|
|
}, 20);
|
|
}, 20);
|
|
}, 20);
|
|
}, 20);
|
|
}, 20);
|
|
}, 20);
|
|
}, 20);
|
|
}, 20);
|
|
}, 20);
|
|
}, win);
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|