diff options
Diffstat (limited to 'layout/generic/test/test_bug263683.html')
-rw-r--r-- | layout/generic/test/test_bug263683.html | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/layout/generic/test/test_bug263683.html b/layout/generic/test/test_bug263683.html new file mode 100644 index 000000000..1fb72c5bc --- /dev/null +++ b/layout/generic/test/test_bug263683.html @@ -0,0 +1,98 @@ +<!DOCTYPE HTML> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=263683 +--> + +<head> + <title>Test for Bug 263683</title> + <script type="application/javascript" src="/MochiKit/MochiKit.js"></script> + <script type="application/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="application/javascript" + src="/tests/SimpleTest/WindowSnapshot.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> + +<body onload="onLoad();" onunload="onUnload();"> + <a target="_blank" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=263683"> + Mozilla Bug 263683 + </a> + <p id="display"></p> + <div id="content" style="display: none"> + </div> + + <pre id="test"> + <script type="application/javascript"> + + /** Test for Bug 263683 **/ + + SimpleTest.waitForExplicitFinish(); + + var userSetBG = false; + var userValueBG = null; + var prefNameBG = "ui.textHighlightBackground"; + var userSetFG = false; + var userValueFG = null; + var prefNameFG = "ui.textHighlightForeground"; + + function onLoad() { + SpecialPowers.pushPrefEnv({'set': [[prefNameBG, "#EF0FFF"], [prefNameFG, "#FFFFFF"]]}, startTest); + } + + function startTest() { + var textToSelect = document.getElementById("selecttext"); + + // Take a snapshot now. This will be used to check that removing the + // ranges removes the highlighting correctly + var noHighlight = snapshotWindow(window); + + var controller = SpecialPowers.wrap(window). + QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor). + getInterface(SpecialPowers.Ci.nsIWebNavigation). + QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor). + getInterface(SpecialPowers.Ci.nsISelectionDisplay). + QueryInterface(SpecialPowers.Ci.nsISelectionController); + + // Get selection + var findSelection = controller.getSelection(controller.SELECTION_FIND); + + // Lastly add range + var range = document.createRange(); + range.selectNodeContents(textToSelect); + findSelection.addRange(range); + + // Take a snapshot of the highlighting + var highlighted = snapshotWindow(window); + + // Clear the highlighting, and take another snapshot + findSelection.removeAllRanges(); + var removedHighlight = snapshotWindow(window); + + // Manually "highlight" the text so we can check the rendering + textToSelect.style.backgroundColor="#EF0FFF"; + textToSelect.style.color="#FFFFFF"; + var manualHighlight = snapshotWindow(window); + + // Test 1: Did the highlighting render correctly? + var res = compareSnapshots(highlighted, manualHighlight, true); + ok(res[0], "SELECTION_FIND highlighting renders correctly"); + + // Test 2: Does removing the ranges from the SELECTION_FIND selection + // work as expected? + res = compareSnapshots(removedHighlight, noHighlight, true); + ok(res[0], "Removing ranges from FIND_SELECTION works correctly"); + + SimpleTest.finish(); + } + + </script> + </pre> + + <p><span id="selecttext">Text to be selected</span></p> +</body> +</html> |