mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-09 08:47:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
83
dom/html/test/test_bug406596.html
Normal file
83
dom/html/test/test_bug406596.html
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=406596
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 406596</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=406596">Mozilla Bug 406596</a>
|
||||
<div id="content">
|
||||
<div id="edit" contenteditable="true">This text is editable, you can change its content <a href="#" id="a" tabindex="0">ABCDEFGHIJKLMNOPQRSTUV</a> <input type="submit" value="abcd" id="b"></input> <img src="foo.png" id="c"></div>
|
||||
<div tabindex="0">This text is not editable but is focusable</div>
|
||||
<div tabindex="0">This text is not editable but is focusable</div>
|
||||
<a href="#" id="d" contenteditable="true">ABCDEFGHIJKLMNOPQRSTUV</a>
|
||||
<div tabindex="0">This text is not editable but is focusable</div>
|
||||
<div tabindex="0">This text is not editable but is focusable</div>
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 406596 **/
|
||||
|
||||
function testTabbing(click, focus, selectionOffset) {
|
||||
var wu = SpecialPowers.getDOMWindowUtils(window);
|
||||
|
||||
var elem = document.getElementById(click);
|
||||
var rect = elem.getBoundingClientRect();
|
||||
var selection = window.getSelection();
|
||||
|
||||
var x = (rect.left + rect.right) / 4;
|
||||
var y = (rect.top + rect.bottom) / 2;
|
||||
wu.sendMouseEvent("mousedown", x, y, 0, 1, 0);
|
||||
wu.sendMouseEvent("mousemove", x + selectionOffset, y, 0, 1, 0);
|
||||
wu.sendMouseEvent("mouseup", x + selectionOffset, y, 0, 1, 0);
|
||||
if (selectionOffset) {
|
||||
is(selection.rangeCount, 1, "there should be one range in the selection");
|
||||
var range = selection.getRangeAt(0);
|
||||
}
|
||||
var focusedElement = document.activeElement;
|
||||
is(focusedElement, document.getElementById(focus),
|
||||
"clicking should move focus to the contentEditable node");
|
||||
synthesizeKey("VK_TAB", {});
|
||||
synthesizeKey("VK_TAB", {});
|
||||
synthesizeKey("VK_TAB", { shiftKey: true });
|
||||
synthesizeKey("VK_TAB", { shiftKey: true });
|
||||
is(document.activeElement, focusedElement,
|
||||
"tab/shift-tab should move focus back to the contentEditable node");
|
||||
if (selectionOffset) {
|
||||
is(selection.rangeCount, 1,
|
||||
"there should still be one range in the selection");
|
||||
var newRange = selection.getRangeAt(0);
|
||||
is(newRange.compareBoundaryPoints(Range.START_TO_START, range), 0,
|
||||
"the selection should be the same as before the tabbing");
|
||||
is(newRange.compareBoundaryPoints(Range.END_TO_END, range), 0,
|
||||
"the selection should be the same as before the tabbing");
|
||||
}
|
||||
}
|
||||
|
||||
function test() {
|
||||
window.getSelection().removeAllRanges();
|
||||
testTabbing("edit", "edit", 0);
|
||||
testTabbing("a", "edit", 0);
|
||||
testTabbing("d", "d", 0);
|
||||
testTabbing("edit", "edit", 10);
|
||||
testTabbing("a", "edit", 10);
|
||||
testTabbing("d", "d", 10);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
window.onload = function() {
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
setTimeout(test, 0);
|
||||
};
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue