summaryrefslogtreecommitdiffstats
path: root/browser/components/search/test/browser_426329.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/search/test/browser_426329.js')
-rw-r--r--browser/components/search/test/browser_426329.js250
1 files changed, 0 insertions, 250 deletions
diff --git a/browser/components/search/test/browser_426329.js b/browser/components/search/test/browser_426329.js
deleted file mode 100644
index d9cbd3f7a..000000000
--- a/browser/components/search/test/browser_426329.js
+++ /dev/null
@@ -1,250 +0,0 @@
-XPCOMUtils.defineLazyModuleGetter(this, "FormHistory",
- "resource://gre/modules/FormHistory.jsm");
-
-function expectedURL(aSearchTerms) {
- const ENGINE_HTML_BASE = "http://mochi.test:8888/browser/browser/components/search/test/test.html";
- var textToSubURI = Cc["@mozilla.org/intl/texttosuburi;1"].
- getService(Ci.nsITextToSubURI);
- var searchArg = textToSubURI.ConvertAndEscape("utf-8", aSearchTerms);
- return ENGINE_HTML_BASE + "?test=" + searchArg;
-}
-
-function simulateClick(aEvent, aTarget) {
- var event = document.createEvent("MouseEvent");
- var ctrlKeyArg = aEvent.ctrlKey || false;
- var altKeyArg = aEvent.altKey || false;
- var shiftKeyArg = aEvent.shiftKey || false;
- var metaKeyArg = aEvent.metaKey || false;
- var buttonArg = aEvent.button || 0;
- event.initMouseEvent("click", true, true, window,
- 0, 0, 0, 0, 0,
- ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg,
- buttonArg, null);
- aTarget.dispatchEvent(event);
-}
-
-// modified from toolkit/components/satchel/test/test_form_autocomplete.html
-function checkMenuEntries(expectedValues) {
- var actualValues = getMenuEntries();
- is(actualValues.length, expectedValues.length, "Checking length of expected menu");
- for (var i = 0; i < expectedValues.length; i++)
- is(actualValues[i], expectedValues[i], "Checking menu entry #" + i);
-}
-
-function getMenuEntries() {
- var entries = [];
- var autocompleteMenu = searchBar.textbox.popup;
- // Could perhaps pull values directly from the controller, but it seems
- // more reliable to test the values that are actually in the tree?
- var column = autocompleteMenu.tree.columns[0];
- var numRows = autocompleteMenu.tree.view.rowCount;
- for (var i = 0; i < numRows; i++) {
- entries.push(autocompleteMenu.tree.view.getValueAt(i, column));
- }
- return entries;
-}
-
-function countEntries(name, value) {
- return new Promise(resolve => {
- let count = 0;
- let obj = name && value ? {fieldname: name, value: value} : {};
- FormHistory.count(obj,
- { handleResult: function(result) { count = result; },
- handleError: function(error) { throw error; },
- handleCompletion: function(reason) {
- if (!reason) {
- resolve(count);
- }
- }
- });
- });
-}
-
-var searchBar;
-var searchButton;
-var searchEntries = ["test"];
-function promiseSetEngine() {
- return new Promise(resolve => {
- var ss = Services.search;
-
- function observer(aSub, aTopic, aData) {
- switch (aData) {
- case "engine-added":
- var engine = ss.getEngineByName("Bug 426329");
- ok(engine, "Engine was added.");
- ss.currentEngine = engine;
- break;
- case "engine-current":
- ok(ss.currentEngine.name == "Bug 426329", "currentEngine set");
- searchBar = BrowserSearch.searchBar;
- searchButton = document.getAnonymousElementByAttribute(searchBar,
- "anonid", "search-go-button");
- ok(searchButton, "got search-go-button");
- searchBar.value = "test";
-
- Services.obs.removeObserver(observer, "browser-search-engine-modified");
- resolve();
- break;
- }
- }
-
- Services.obs.addObserver(observer, "browser-search-engine-modified", false);
- ss.addEngine("http://mochi.test:8888/browser/browser/components/search/test/426329.xml",
- null, "data:image/x-icon,%00", false);
- });
-}
-
-function promiseRemoveEngine() {
- return new Promise(resolve => {
- var ss = Services.search;
-
- function observer(aSub, aTopic, aData) {
- if (aData == "engine-removed") {
- Services.obs.removeObserver(observer, "browser-search-engine-modified");
- resolve();
- }
- }
-
- Services.obs.addObserver(observer, "browser-search-engine-modified", false);
- var engine = ss.getEngineByName("Bug 426329");
- ss.removeEngine(engine);
- });
-}
-
-
-var preSelectedBrowser;
-var preTabNo;
-function* prepareTest() {
- preSelectedBrowser = gBrowser.selectedBrowser;
- preTabNo = gBrowser.tabs.length;
- searchBar = BrowserSearch.searchBar;
-
- yield SimpleTest.promiseFocus();
-
- if (document.activeElement == searchBar)
- return;
-
- let focusPromise = BrowserTestUtils.waitForEvent(searchBar, "focus");
- gURLBar.focus();
- searchBar.focus();
- yield focusPromise;
-}
-
-add_task(function* testSetupEngine() {
- yield promiseSetEngine();
-});
-
-add_task(function* testReturn() {
- yield* prepareTest();
- EventUtils.synthesizeKey("VK_RETURN", {});
- yield BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
-
- is(gBrowser.tabs.length, preTabNo, "Return key did not open new tab");
- is(gBrowser.currentURI.spec, expectedURL(searchBar.value), "testReturn opened correct search page");
-});
-
-add_task(function* testAltReturn() {
- yield* prepareTest();
- yield BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
- EventUtils.synthesizeKey("VK_RETURN", { altKey: true });
- });
-
- is(gBrowser.tabs.length, preTabNo + 1, "Alt+Return key added new tab");
- is(gBrowser.currentURI.spec, expectedURL(searchBar.value), "testAltReturn opened correct search page");
-});
-
-// Shift key has no effect for now, so skip it
-add_task(function* testShiftAltReturn() {
- return;
- /*
- yield* prepareTest();
-
- let url = expectedURL(searchBar.value);
-
- let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, url);
- EventUtils.synthesizeKey("VK_RETURN", { shiftKey: true, altKey: true });
- yield newTabPromise;
-
- is(gBrowser.tabs.length, preTabNo + 1, "Shift+Alt+Return key added new tab");
- is(gBrowser.currentURI.spec, url, "testShiftAltReturn opened correct search page");
- */
-});
-
-add_task(function* testLeftClick() {
- yield* prepareTest();
- simulateClick({ button: 0 }, searchButton);
- yield BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
- is(gBrowser.tabs.length, preTabNo, "LeftClick did not open new tab");
- is(gBrowser.currentURI.spec, expectedURL(searchBar.value), "testLeftClick opened correct search page");
-});
-
-add_task(function* testMiddleClick() {
- yield* prepareTest();
- yield BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
- simulateClick({ button: 1 }, searchButton);
- });
- is(gBrowser.tabs.length, preTabNo + 1, "MiddleClick added new tab");
- is(gBrowser.currentURI.spec, expectedURL(searchBar.value), "testMiddleClick opened correct search page");
-});
-
-add_task(function* testShiftMiddleClick() {
- yield* prepareTest();
-
- let url = expectedURL(searchBar.value);
-
- let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, url);
- simulateClick({ button: 1, shiftKey: true }, searchButton);
- let newTab = yield newTabPromise;
-
- is(gBrowser.tabs.length, preTabNo + 1, "Shift+MiddleClick added new tab");
- is(newTab.linkedBrowser.currentURI.spec, url, "testShiftMiddleClick opened correct search page");
-});
-
-add_task(function* testRightClick() {
- preTabNo = gBrowser.tabs.length;
- gBrowser.selectedBrowser.loadURI("about:blank");
- yield new Promise(resolve => {
- setTimeout(function() {
- is(gBrowser.tabs.length, preTabNo, "RightClick did not open new tab");
- is(gBrowser.currentURI.spec, "about:blank", "RightClick did nothing");
- resolve();
- }, 5000);
- simulateClick({ button: 2 }, searchButton);
- });
- // The click in the searchbox focuses it, which opens the suggestion
- // panel. Clean up after ourselves.
- searchBar.textbox.popup.hidePopup();
-});
-
-add_task(function* testSearchHistory() {
- var textbox = searchBar._textbox;
- for (var i = 0; i < searchEntries.length; i++) {
- let count = yield countEntries(textbox.getAttribute("autocompletesearchparam"), searchEntries[i]);
- ok(count > 0, "form history entry '" + searchEntries[i] + "' should exist");
- }
-});
-
-add_task(function* testAutocomplete() {
- var popup = searchBar.textbox.popup;
- let popupShownPromise = BrowserTestUtils.waitForEvent(popup, "popupshown");
- searchBar.textbox.showHistoryPopup();
- yield popupShownPromise;
- checkMenuEntries(searchEntries);
-});
-
-add_task(function* testClearHistory() {
- let controller = searchBar.textbox.controllers.getControllerForCommand("cmd_clearhistory")
- ok(controller.isCommandEnabled("cmd_clearhistory"), "Clear history command enabled");
- controller.doCommand("cmd_clearhistory");
- let count = yield countEntries();
- ok(count == 0, "History cleared");
-});
-
-add_task(function* asyncCleanup() {
- searchBar.value = "";
- while (gBrowser.tabs.length != 1) {
- gBrowser.removeTab(gBrowser.tabs[0], {animate: false});
- }
- gBrowser.selectedBrowser.loadURI("about:blank");
- yield promiseRemoveEngine();
-});