diff options
Diffstat (limited to 'browser/modules/test/browser_NetworkPrioritizer.js')
-rw-r--r-- | browser/modules/test/browser_NetworkPrioritizer.js | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/browser/modules/test/browser_NetworkPrioritizer.js b/browser/modules/test/browser_NetworkPrioritizer.js deleted file mode 100644 index 91557b0fd..000000000 --- a/browser/modules/test/browser_NetworkPrioritizer.js +++ /dev/null @@ -1,165 +0,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/. */ - -/** Tests for NetworkPrioritizer.jsm (Bug 514490) **/ - -const LOWEST = Ci.nsISupportsPriority.PRIORITY_LOWEST; -const LOW = Ci.nsISupportsPriority.PRIORITY_LOW; -const NORMAL = Ci.nsISupportsPriority.PRIORITY_NORMAL; -const HIGH = Ci.nsISupportsPriority.PRIORITY_HIGH; -const HIGHEST = Ci.nsISupportsPriority.PRIORITY_HIGHEST; - -const DELTA = NORMAL - LOW; // lower value means higher priority - -// Test helper functions. -// getPriority and setPriority can take a tab or a Browser -function* getPriority(aBrowser) { - if (aBrowser.localName == "tab") - aBrowser = aBrowser.linkedBrowser; - - return yield ContentTask.spawn(aBrowser, null, function* () { - return docShell.QueryInterface(Components.interfaces.nsIWebNavigation) - .QueryInterface(Components.interfaces.nsIDocumentLoader) - .loadGroup - .QueryInterface(Components.interfaces.nsISupportsPriority) - .priority; - }); -} - -function* setPriority(aBrowser, aPriority) { - if (aBrowser.localName == "tab") - aBrowser = aBrowser.linkedBrowser; - - yield ContentTask.spawn(aBrowser, aPriority, function* (aPriority) { - docShell.QueryInterface(Components.interfaces.nsIWebNavigation) - .QueryInterface(Components.interfaces.nsIDocumentLoader) - .loadGroup - .QueryInterface(Ci.nsISupportsPriority) - .priority = aPriority; - }); -} - -function* isWindowState(aWindow, aTabPriorities) { - let browsers = aWindow.gBrowser.browsers; - // Make sure we have the right number of tabs & priorities - is(browsers.length, aTabPriorities.length, - "Window has expected number of tabs"); - // aState should be in format [ priority, priority, priority ] - for (let i = 0; i < browsers.length; i++) { - is(yield getPriority(browsers[i]), aTabPriorities[i], - "Tab " + i + " had expected priority"); - } -} - -function promiseWaitForFocus(aWindow) { - return new Promise((resolve) => { - waitForFocus(resolve, aWindow); - }); -} - -add_task(function*() { - // This is the real test. It creates multiple tabs & windows, changes focus, - // closes windows/tabs to make sure we behave correctly. - // This test assumes that no priorities have been adjusted and the loadgroup - // priority starts at 0. - - // Call window "window_A" to make the test easier to follow - let window_A = window; - - // Test 1 window, 1 tab case. - yield isWindowState(window_A, [HIGH]); - - // Exising tab is tab_A1 - let tab_A2 = window_A.gBrowser.addTab("http://example.com"); - let tab_A3 = window_A.gBrowser.addTab("about:config"); - yield BrowserTestUtils.browserLoaded(tab_A3.linkedBrowser); - - // tab_A2 isn't focused yet - yield isWindowState(window_A, [HIGH, NORMAL, NORMAL]); - - // focus tab_A2 & make sure priority got updated - window_A.gBrowser.selectedTab = tab_A2; - yield isWindowState(window_A, [NORMAL, HIGH, NORMAL]); - - window_A.gBrowser.removeTab(tab_A2); - // Next tab is auto selected synchronously as part of removeTab, and we - // expect the priority to be updated immediately. - yield isWindowState(window_A, [NORMAL, HIGH]); - - // Open another window then play with focus - let window_B = yield BrowserTestUtils.openNewBrowserWindow(); - - yield promiseWaitForFocus(window_B); - yield isWindowState(window_A, [LOW, NORMAL]); - yield isWindowState(window_B, [HIGH]); - - yield promiseWaitForFocus(window_A); - yield isWindowState(window_A, [NORMAL, HIGH]); - yield isWindowState(window_B, [NORMAL]); - - yield promiseWaitForFocus(window_B); - yield isWindowState(window_A, [LOW, NORMAL]); - yield isWindowState(window_B, [HIGH]); - - // Cleanup - window_A.gBrowser.removeTab(tab_A3); - yield BrowserTestUtils.closeWindow(window_B); -}); - -add_task(function*() { - // This is more a test of nsLoadGroup and how it handles priorities. But since - // we depend on its behavior, it's good to test it. This is testing that there - // are no errors if we adjust beyond nsISupportsPriority's bounds. - - yield promiseWaitForFocus(); - - let tab1 = gBrowser.tabs[0]; - let oldPriority = yield getPriority(tab1); - - // Set the priority of tab1 to the lowest possible. Selecting the other tab - // will try to lower it - yield setPriority(tab1, LOWEST); - - let tab2 = gBrowser.addTab("http://example.com"); - yield BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - gBrowser.selectedTab = tab2; - is(yield getPriority(tab1), LOWEST - DELTA, "Can adjust priority beyond 'lowest'"); - - // Now set priority to "highest" and make sure that no errors occur. - yield setPriority(tab1, HIGHEST); - gBrowser.selectedTab = tab1; - - is(yield getPriority(tab1), HIGHEST + DELTA, "Can adjust priority beyond 'highest'"); - - // Cleanup - gBrowser.removeTab(tab2); - yield setPriority(tab1, oldPriority); -}); - -add_task(function*() { - // This tests that the priority doesn't get lost when switching the browser's remoteness - - if (!gMultiProcessBrowser) { - return; - } - - let browser = gBrowser.selectedBrowser; - - browser.loadURI("http://example.com"); - yield BrowserTestUtils.browserLoaded(browser); - ok(browser.isRemoteBrowser, "web page should be loaded in remote browser"); - is(yield getPriority(browser), HIGH, "priority of selected tab should be 'high'"); - - browser.loadURI("about:rights"); - yield BrowserTestUtils.browserLoaded(browser); - ok(!browser.isRemoteBrowser, "about:rights should switch browser to non-remote"); - is(yield getPriority(browser), HIGH, - "priority of selected tab should be 'high' when going from remote to non-remote"); - - browser.loadURI("http://example.com"); - yield BrowserTestUtils.browserLoaded(browser); - ok(browser.isRemoteBrowser, "going from about:rights to web page should switch browser to remote"); - is(yield getPriority(browser), HIGH, - "priority of selected tab should be 'high' when going from non-remote to remote"); -}); |