diff options
Diffstat (limited to 'browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js')
-rw-r--r-- | browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js b/browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js deleted file mode 100644 index d207092d4..000000000 --- a/browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js +++ /dev/null @@ -1,216 +0,0 @@ -/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- - * vim:set ts=2 sw=2 sts=2 et: - * 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/. */ - -requestLongerTimeout(2); - -const TEST_URL_BASES = [ - "http://example.org/browser/browser/base/content/test/urlbar/dummy_page.html#tabmatch", - "http://example.org/browser/browser/base/content/test/urlbar/moz.png#tabmatch" -]; - -var gController = Cc["@mozilla.org/autocomplete/controller;1"]. - getService(Ci.nsIAutoCompleteController); - -var gTabCounter = 0; - -add_task(function* step_1() { - info("Running step 1"); - let maxResults = Services.prefs.getIntPref("browser.urlbar.maxRichResults"); - let promises = []; - for (let i = 0; i < maxResults - 1; i++) { - let tab = gBrowser.addTab(); - promises.push(loadTab(tab, TEST_URL_BASES[0] + (++gTabCounter))); - } - - yield Promise.all(promises); - yield ensure_opentabs_match_db(); -}); - -add_task(function* step_2() { - info("Running step 2"); - gBrowser.selectTabAtIndex(1); - gBrowser.removeCurrentTab(); - gBrowser.selectTabAtIndex(1); - gBrowser.removeCurrentTab(); - - let promises = []; - for (let i = 1; i < gBrowser.tabs.length; i++) - promises.push(loadTab(gBrowser.tabs[i], TEST_URL_BASES[1] + (++gTabCounter))); - - yield Promise.all(promises); - yield ensure_opentabs_match_db(); -}); - -add_task(function* step_3() { - info("Running step 3"); - let promises = []; - for (let i = 1; i < gBrowser.tabs.length; i++) - promises.push(loadTab(gBrowser.tabs[i], TEST_URL_BASES[0] + gTabCounter)); - - yield Promise.all(promises); - yield ensure_opentabs_match_db(); -}); - -add_task(function* step_4() { - info("Running step 4 - ensure we don't register subframes as open pages"); - let tab = gBrowser.addTab(); - tab.linkedBrowser.loadURI('data:text/html,<body><iframe src=""></iframe></body>'); - yield BrowserTestUtils.browserLoaded(tab.linkedBrowser); - - yield ContentTask.spawn(tab.linkedBrowser, null, function* () { - let iframe_loaded = ContentTaskUtils.waitForEvent(content.document, "load", true); - content.document.querySelector("iframe").src = "http://test2.example.org/"; - yield iframe_loaded; - }); - - yield ensure_opentabs_match_db(); -}); - -add_task(function* step_5() { - info("Running step 5 - remove tab immediately"); - let tab = gBrowser.addTab("about:logo"); - yield BrowserTestUtils.removeTab(tab); - yield ensure_opentabs_match_db(); -}); - -add_task(function* step_6() { - info("Running step 6 - check swapBrowsersAndCloseOther preserves registered switch-to-tab result"); - let tabToKeep = gBrowser.addTab(); - let tab = gBrowser.addTab(); - tab.linkedBrowser.loadURI("about:mozilla"); - yield BrowserTestUtils.browserLoaded(tab.linkedBrowser); - - gBrowser.updateBrowserRemoteness(tabToKeep.linkedBrowser, tab.linkedBrowser.isRemoteBrowser); - gBrowser.swapBrowsersAndCloseOther(tabToKeep, tab); - - yield ensure_opentabs_match_db() - - yield BrowserTestUtils.removeTab(tabToKeep); - - yield ensure_opentabs_match_db(); -}); - -add_task(function* step_7() { - info("Running step 7 - close all tabs"); - - Services.prefs.clearUserPref("browser.sessionstore.restore_on_demand"); - - gBrowser.addTab("about:blank", {skipAnimation: true}); - while (gBrowser.tabs.length > 1) { - info("Removing tab: " + gBrowser.tabs[0].linkedBrowser.currentURI.spec); - gBrowser.selectTabAtIndex(0); - gBrowser.removeCurrentTab(); - } - - yield ensure_opentabs_match_db(); -}); - -add_task(function* cleanup() { - info("Cleaning up"); - - yield PlacesTestUtils.clearHistory(); -}); - -function loadTab(tab, url) { - // Because adding visits is async, we will not be notified immediately. - let loaded = BrowserTestUtils.browserLoaded(tab.linkedBrowser); - let visited = new Promise(resolve => { - Services.obs.addObserver( - function observer(aSubject, aTopic, aData) { - if (url != aSubject.QueryInterface(Ci.nsIURI).spec) - return; - Services.obs.removeObserver(observer, aTopic); - resolve(); - }, - "uri-visit-saved", - false - ); - }); - - info("Loading page: " + url); - tab.linkedBrowser.loadURI(url); - return Promise.all([ loaded, visited ]); -} - -function ensure_opentabs_match_db() { - var tabs = {}; - - var winEnum = Services.wm.getEnumerator("navigator:browser"); - while (winEnum.hasMoreElements()) { - let browserWin = winEnum.getNext(); - // skip closed-but-not-destroyed windows - if (browserWin.closed) - continue; - - for (let i = 0; i < browserWin.gBrowser.tabContainer.childElementCount; i++) { - let browser = browserWin.gBrowser.getBrowserAtIndex(i); - let url = browser.currentURI.spec; - if (browserWin.isBlankPageURL(url)) - continue; - if (!(url in tabs)) - tabs[url] = 1; - else - tabs[url]++; - } - } - - return new Promise(resolve => { - checkAutocompleteResults(tabs, resolve); - }); -} - -function checkAutocompleteResults(aExpected, aCallback) -{ - gController.input = { - timeout: 10, - textValue: "", - searches: ["unifiedcomplete"], - searchParam: "enable-actions", - popupOpen: false, - minResultsForPopup: 0, - invalidate: function() {}, - disableAutoComplete: false, - completeDefaultIndex: false, - get popup() { return this; }, - onSearchBegin: function() {}, - onSearchComplete: function () - { - info("Found " + gController.matchCount + " matches."); - // Check to see the expected uris and titles match up (in any order) - for (let i = 0; i < gController.matchCount; i++) { - if (gController.getStyleAt(i).includes("heuristic")) { - info("Skip heuristic match"); - continue; - } - let action = gURLBar.popup.input._parseActionUrl(gController.getValueAt(i)); - let uri = action.params.url; - - info("Search for '" + uri + "' in open tabs."); - let expected = uri in aExpected; - ok(expected, uri + " was found in autocomplete, was " + (expected ? "" : "not ") + "expected"); - // Remove the found entry from expected results. - delete aExpected[uri]; - } - - // Make sure there is no reported open page that is not open. - for (let entry in aExpected) { - ok(false, "'" + entry + "' should be found in autocomplete"); - } - - executeSoon(aCallback); - }, - setSelectedIndex: function() {}, - get searchCount() { return this.searches.length; }, - getSearchAt: function(aIndex) { return this.searches[aIndex]; }, - QueryInterface: XPCOMUtils.generateQI([ - Ci.nsIAutoCompleteInput, - Ci.nsIAutoCompletePopup, - ]) - }; - - info("Searching open pages."); - gController.startSearch(Services.prefs.getCharPref("browser.urlbar.restrict.openpage")); -} |