diff options
Diffstat (limited to 'toolkit/content/tests/chrome/findbar_events_window.xul')
-rw-r--r-- | toolkit/content/tests/chrome/findbar_events_window.xul | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/toolkit/content/tests/chrome/findbar_events_window.xul b/toolkit/content/tests/chrome/findbar_events_window.xul deleted file mode 100644 index 2bfc52c14..000000000 --- a/toolkit/content/tests/chrome/findbar_events_window.xul +++ /dev/null @@ -1,173 +0,0 @@ -<?xml version="1.0"?> - -<!-- 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/. --> - -<?xml-stylesheet href="chrome://global/skin" type="text/css"?> -<?xml-stylesheet - href="chrome://mochikit/content/tests/SimpleTest/test.css" - type="text/css"?> - -<window id="FindbarTest" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - width="600" - height="600" - onload="SimpleTest.executeSoon(startTest);" - title="findbar events test"> - - <script type="application/javascript"><![CDATA[ - const {interfaces: Ci, classes: Cc, results: Cr, utils: Cu} = Components; - Cu.import("resource://gre/modules/Task.jsm"); - Cu.import("resource://testing-common/BrowserTestUtils.jsm"); - Cu.import("resource://testing-common/ContentTask.jsm"); - ContentTask.setTestScope(window.opener.wrappedJSObject); - - var gFindBar = null; - var gBrowser; - const kTimeout = 5000; // 5 seconds. - - var imports = ["SimpleTest", "ok", "is", "info"]; - for (var name of imports) { - window[name] = window.opener.wrappedJSObject[name]; - } - SimpleTest.requestLongerTimeout(2); - - function startTest() { - Task.spawn(function* () { - gFindBar = document.getElementById("FindToolbar"); - for (let browserId of ["content", "content-remote"]) { - yield startTestWithBrowser(browserId); - } - }).then(() => { - window.close(); - SimpleTest.finish(); - }); - } - - function* startTestWithBrowser(browserId) { - info("Starting test with browser '" + browserId + "'"); - gBrowser = document.getElementById(browserId); - gFindBar.browser = gBrowser; - let promise = BrowserTestUtils.browserLoaded(gBrowser); - gBrowser.loadURI("data:text/html,hello there"); - yield promise; - yield onDocumentLoaded(); - } - - function* onDocumentLoaded() { - gFindBar.open(); - gFindBar.onFindCommand(); - - yield testFind(); - yield testFindAgain(); - yield testCaseSensitivity(); - yield testHighlight(); - } - - function checkSelection() { - return new Promise(resolve => { - SimpleTest.executeSoon(() => { - ContentTask.spawn(gBrowser, null, function* () { - let selected = content.getSelection(); - Assert.equal(String(selected), "", "No text is selected"); - - let controller = docShell.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsISelectionDisplay) - .QueryInterface(Ci.nsISelectionController); - let selection = controller.getSelection(controller.SELECTION_FIND); - Assert.equal(selection.rangeCount, 0, "No text is highlighted"); - }).then(resolve); - }); - }); - } - - function once(node, eventName, preventDefault = true) { - return new Promise((resolve, reject) => { - let timeout = window.setTimeout(() => { - reject("Event wasn't fired within " + kTimeout + "ms for event '" + - eventName + "'."); - }, kTimeout); - - node.addEventListener(eventName, function clb(e) { - window.clearTimeout(timeout); - node.removeEventListener(eventName, clb); - if (preventDefault) - e.preventDefault(); - resolve(e); - }); - }); - } - - function* testFind() { - info("Testing normal find."); - let query = "t"; - let promise = once(gFindBar, "find"); - - // Put some text in the find box. - let event = document.createEvent("KeyboardEvent"); - event.initKeyEvent("keypress", true, true, null, false, false, - false, false, 0, query.charCodeAt(0)); - gFindBar._findField.inputField.dispatchEvent(event); - - let e = yield promise; - ok(e.detail.query === query, "find event query should match '" + query + "'"); - // Since we're preventing the default make sure nothing was selected. - yield checkSelection(); - } - - function testFindAgain() { - info("Testing repeating normal find."); - let promise = once(gFindBar, "findagain"); - - gFindBar.onFindAgainCommand(); - - yield promise; - // Since we're preventing the default make sure nothing was selected. - yield checkSelection(); - } - - function* testCaseSensitivity() { - info("Testing normal case sensitivity."); - let promise = once(gFindBar, "findcasesensitivitychange", false); - - let matchCaseCheckbox = gFindBar.getElement("find-case-sensitive"); - matchCaseCheckbox.click(); - - let e = yield promise; - ok(e.detail.caseSensitive, "find should be case sensitive"); - - // Toggle it back to the original setting. - matchCaseCheckbox.click(); - - // Changing case sensitivity does the search so clear the selected text - // before the next test. - yield ContentTask.spawn(gBrowser, null, () => content.getSelection().removeAllRanges()); - } - - function* testHighlight() { - info("Testing find with highlight all."); - // Update the find state so the highlight button is clickable. - gFindBar.updateControlState(Ci.nsITypeAheadFind.FIND_FOUND, false); - - let promise = once(gFindBar, "findhighlightallchange"); - - let highlightButton = gFindBar.getElement("highlight"); - if (!highlightButton.checked) - highlightButton.click(); - - let e = yield promise; - ok(e.detail.highlightAll, "find event should have highlight all set"); - // Since we're preventing the default make sure nothing was highlighted. - yield checkSelection(); - - // Toggle it back to the original setting. - if (highlightButton.checked) - highlightButton.click(); - } - ]]></script> - - <browser type="content-primary" flex="1" id="content" src="about:blank"/> - <browser type="content-primary" flex="1" id="content-remote" remote="true" src="about:blank"/> - <findbar id="FindToolbar" browserid="content"/> -</window> |