summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/chrome/findbar_events_window.xul
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/content/tests/chrome/findbar_events_window.xul')
-rw-r--r--toolkit/content/tests/chrome/findbar_events_window.xul173
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>