diff options
Diffstat (limited to 'browser/base/content/test/general/browser_offlineQuotaNotification.js')
-rw-r--r-- | browser/base/content/test/general/browser_offlineQuotaNotification.js | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/browser/base/content/test/general/browser_offlineQuotaNotification.js b/browser/base/content/test/general/browser_offlineQuotaNotification.js deleted file mode 100644 index e56bfe9a8..000000000 --- a/browser/base/content/test/general/browser_offlineQuotaNotification.js +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -// Test offline quota warnings - must be run as a mochitest-browser test or -// else the test runner gets in the way of notifications due to bug 857897. - -const URL = "http://mochi.test:8888/browser/browser/base/content/test/general/offlineQuotaNotification.html"; - -registerCleanupFunction(function() { - // Clean up after ourself - let uri = Services.io.newURI(URL, null, null); - let principal = Services.scriptSecurityManager.createCodebasePrincipal(uri, {}); - Services.perms.removeFromPrincipal(principal, "offline-app"); - Services.prefs.clearUserPref("offline-apps.quota.warn"); - Services.prefs.clearUserPref("offline-apps.allow_by_default"); - let {OfflineAppCacheHelper} = Components.utils.import("resource:///modules/offlineAppCache.jsm", {}); - OfflineAppCacheHelper.clear(); -}); - -// Same as the other one, but for in-content preferences -function checkInContentPreferences(win) { - let doc = win.document; - let sel = doc.getElementById("categories").selectedItems[0].id; - let tab = doc.getElementById("advancedPrefs").selectedTab.id; - is(gBrowser.currentURI.spec, "about:preferences#advanced", "about:preferences loaded"); - is(sel, "category-advanced", "Advanced pane was selected"); - is(tab, "networkTab", "Network tab is selected"); - // all good, we are done. - win.close(); - finish(); -} - -function test() { - waitForExplicitFinish(); - - Services.prefs.setBoolPref("offline-apps.allow_by_default", false); - - // Open a new tab. - gBrowser.selectedTab = gBrowser.addTab(URL); - registerCleanupFunction(() => gBrowser.removeCurrentTab()); - - - Promise.all([ - // Wait for a notification that asks whether to allow offline storage. - promiseNotification(), - // Wait for the tab to load. - BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser), - ]).then(() => { - info("Loaded page, adding onCached handler"); - // Need a promise to keep track of when we've added our handler. - let mm = gBrowser.selectedBrowser.messageManager; - let onCachedAttached = BrowserTestUtils.waitForMessage(mm, "Test:OnCachedAttached"); - let gotCached = ContentTask.spawn(gBrowser.selectedBrowser, null, function*() { - return new Promise(resolve => { - content.window.applicationCache.oncached = function() { - setTimeout(resolve, 0); - }; - sendAsyncMessage("Test:OnCachedAttached"); - }); - }); - gotCached.then(function() { - // We got cached - now we should have provoked the quota warning. - let notification = PopupNotifications.getNotification('offline-app-usage'); - ok(notification, "have offline-app-usage notification"); - // select the default action - this should cause the preferences - // tab to open - which we track via an "Initialized" event. - PopupNotifications.panel.firstElementChild.button.click(); - let newTabBrowser = gBrowser.getBrowserForTab(gBrowser.selectedTab); - newTabBrowser.addEventListener("Initialized", function PrefInit() { - newTabBrowser.removeEventListener("Initialized", PrefInit, true); - executeSoon(function() { - checkInContentPreferences(newTabBrowser.contentWindow); - }) - }, true); - }); - onCachedAttached.then(function() { - Services.prefs.setIntPref("offline-apps.quota.warn", 1); - - // Click the notification panel's "Allow" button. This should kick - // off updates which will call our oncached handler above. - PopupNotifications.panel.firstElementChild.button.click(); - }); - }); -} - -function promiseNotification() { - return new Promise(resolve => { - PopupNotifications.panel.addEventListener("popupshown", function onShown() { - PopupNotifications.panel.removeEventListener("popupshown", onShown); - resolve(); - }); - }); -} |