diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /dom/html/test/test_bug460568.html | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/html/test/test_bug460568.html')
-rw-r--r-- | dom/html/test/test_bug460568.html | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/dom/html/test/test_bug460568.html b/dom/html/test/test_bug460568.html new file mode 100644 index 000000000..14bcbbc78 --- /dev/null +++ b/dom/html/test/test_bug460568.html @@ -0,0 +1,147 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=460568 +--> +<head> + <title>Test for Bug 460568</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=460568">Mozilla Bug 460568</a> +<p id="display"><a href="" id="anchor">a[href]</a></p> +<div id="editor"> + <a href="" id="anchorInEditor">a[href] in editor</a> +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> + +/** Test for Bug 460568 **/ + +function runTest() +{ + var editor = document.getElementById("editor"); + var anchor = document.getElementById("anchor"); + var anchorInEditor = document.getElementById("anchorInEditor"); + + var focused; + anchorInEditor.onfocus = function() { focused = true; }; + + function isReallyEditable() + { + editor.focus(); + var range = document.createRange(); + range.selectNodeContents(editor); + var prevStr = range.toString(); + + var docShell = SpecialPowers.wrap(window) + .QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor) + .getInterface(SpecialPowers.Ci.nsIWebNavigation) + .QueryInterface(SpecialPowers.Ci.nsIDocShell); + var controller = + docShell.QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor) + .getInterface(SpecialPowers.Ci.nsISelectionDisplay) + .QueryInterface(SpecialPowers.Ci.nsISelectionController); + var sel = controller.getSelection(controller.SELECTION_NORMAL); + sel.collapse(anchorInEditor, 0); + synthesizeKey('a', {}); + range.selectNodeContents(editor); + return prevStr != range.toString(); + } + + focused = false; + anchor.focus(); + editor.setAttribute("contenteditable", "true"); + anchorInEditor.focus(); + is(focused, false, "focus moved to element in contenteditable=true"); + is(isReallyEditable(), true, "cannot edit by a key event"); + + // for bug 502273 + focused = false; + anchor.focus(); + editor.setAttribute("dummy", "dummy"); + editor.removeAttribute("dummy"); + anchorInEditor.focus(); + is(focused, false, "focus moved to element in contenteditable=true (after dummy attribute was removed)"); + is(isReallyEditable(), true, "cannot edit by a key event"); + + focused = false; + anchor.focus(); + editor.setAttribute("contenteditable", "false"); + anchorInEditor.focus(); + is(focused, true, "focus didn't move to element in contenteditable=false"); + is(isReallyEditable(), false, "can edit by a key event"); + + // for bug 502273 + focused = false; + anchor.focus(); + editor.setAttribute("dummy", "dummy"); + editor.removeAttribute("dummy"); + anchorInEditor.focus(); + is(focused, true, "focus moved to element in contenteditable=true (after dummy attribute was removed)"); + is(isReallyEditable(), false, "cannot edit by a key event"); + + focused = false; + anchor.focus(); + editor.setAttribute("contenteditable", "true"); + anchorInEditor.focus(); + is(focused, false, "focus moved to element in contenteditable=true"); + is(isReallyEditable(), true, "cannot edit by a key event"); + + // for bug 502273 + focused = false; + anchor.focus(); + editor.setAttribute("dummy", "dummy"); + editor.removeAttribute("dummy"); + anchorInEditor.focus(); + is(focused, false, "focus moved to element in contenteditable=true (after dummy attribute was removed)"); + is(isReallyEditable(), true, "cannot edit by a key event"); + + focused = false; + anchor.focus(); + editor.removeAttribute("contenteditable"); + anchorInEditor.focus(); + is(focused, true, "focus didn't move to element in contenteditable removed element"); + is(isReallyEditable(), false, "can edit by a key event"); + + focused = false; + anchor.focus(); + editor.contentEditable = true; + anchorInEditor.focus(); + is(focused, false, "focus moved to element in contenteditable=true by property"); + is(isReallyEditable(), true, "cannot edit by a key event"); + + focused = false; + anchor.focus(); + editor.contentEditable = false; + anchorInEditor.focus(); + is(focused, true, "focus didn't move to element in contenteditable=false by property"); + is(isReallyEditable(), false, "can edit by a key event"); + + focused = false; + anchor.focus(); + editor.setAttribute("contenteditable", "true"); + anchorInEditor.focus(); + is(focused, false, "focus moved to element in contenteditable=true"); + is(isReallyEditable(), true, "cannot edit by a key event"); + + // for bug 502273 + focused = false; + anchor.focus(); + editor.setAttribute("dummy", "dummy"); + editor.removeAttribute("dummy"); + anchorInEditor.focus(); + is(focused, false, "focus moved to element in contenteditable=true (after dummy attribute was removed)"); + is(isReallyEditable(), true, "cannot edit by a key event"); +} + +SimpleTest.waitForExplicitFinish(); +addLoadEvent(runTest); +addLoadEvent(SimpleTest.finish); + +</script> +</pre> +</body> +</html> |