<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1101392 --> <head> <meta charset="utf-8"> <title>Test for Bug 1101392</title> <script src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> <script type="application/javascript"> /** Test for Bug 1101392 **/ SimpleTest.waitForExplicitFinish(); SimpleTest.waitForFocus(runTests); function runCopyCommand(element, compareText, nextTest) { element.focus(); var expectedEndpoint, sel; if (element.localName == "textarea") { element.select(); expectedEndpoint = element.selectionEnd; } else { sel = getSelection(); sel.selectAllChildren(element.parentNode); expectedEndpoint = [sel.getRangeAt(0).endContainer, sel.getRangeAt(0).endOffset]; } function checkCollapse() { var desc = " after cmd_copyAndCollapseToEnd for " + element.localName; if (element.localName == "textarea") { is(element.selectionStart, expectedEndpoint, "start offset" + desc); is(element.selectionEnd, expectedEndpoint, "end offset" + desc); } else { is(sel.isCollapsed, true, "collapsed" + desc); is(sel.anchorNode, expectedEndpoint[0], "node" + desc); is(sel.anchorOffset, expectedEndpoint[1], "offset" + desc); } nextTest(); } SimpleTest.waitForClipboard(compareText, () => SpecialPowers.doCommand(window, "cmd_copyAndCollapseToEnd"), checkCollapse, checkCollapse); } function testDiv() { var content = document.getElementById("content"); runCopyCommand(content, 'abc', testTextarea); } function testTextarea() { var textarea = document.getElementById("textarea"); runCopyCommand(textarea, 'def', SimpleTest.finish); } function runTests() { testDiv(); } </script> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1101392">Mozilla Bug 1101392</a> <div><div id="content">abc</div></div> <textarea id="textarea">def</textarea> <pre id="test"> </pre> </body> </html>