diff options
Diffstat (limited to 'browser/base/content/test/alerts/browser_notification_tab_switching.js')
-rw-r--r-- | browser/base/content/test/alerts/browser_notification_tab_switching.js | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/browser/base/content/test/alerts/browser_notification_tab_switching.js b/browser/base/content/test/alerts/browser_notification_tab_switching.js deleted file mode 100644 index 7e46c0722..000000000 --- a/browser/base/content/test/alerts/browser_notification_tab_switching.js +++ /dev/null @@ -1,80 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -"use strict"; - -var tab; -var notification; -var notificationURL = "http://example.org/browser/browser/base/content/test/alerts/file_dom_notifications.html"; -var newWindowOpenedFromTab; - -add_task(function* test_notificationPreventDefaultAndSwitchTabs() { - let pm = Services.perms; - pm.add(makeURI(notificationURL), "desktop-notification", pm.ALLOW_ACTION); - - let originalTab = gBrowser.selectedTab; - yield BrowserTestUtils.withNewTab({ - gBrowser, - url: notificationURL - }, function* dummyTabTask(aBrowser) { - // Put new tab in background so it is obvious when it is re-focused. - yield BrowserTestUtils.switchTab(gBrowser, originalTab); - isnot(gBrowser.selectedBrowser, aBrowser, "Notification page loaded as a background tab"); - - // First, show a notification that will be have the tab-switching prevented. - function promiseNotificationEvent(evt) { - return ContentTask.spawn(aBrowser, evt, function* (evt) { - return yield new Promise(resolve => { - let notification = content.wrappedJSObject._notification; - notification.addEventListener(evt, function l(event) { - notification.removeEventListener(evt, l); - resolve({ defaultPrevented: event.defaultPrevented }); - }); - }); - }); - } - yield openNotification(aBrowser, "showNotification1"); - info("Notification alert showing"); - let alertWindow = Services.wm.getMostRecentWindow("alert:alert"); - if (!alertWindow) { - ok(true, "Notifications don't use XUL windows on all platforms."); - yield closeNotification(aBrowser); - return; - } - info("Clicking on notification"); - let promiseClickEvent = promiseNotificationEvent("click"); - - // NB: This executeSoon is needed to allow the non-e10s runs of this test - // a chance to set the event listener on the page. Otherwise, we - // synchronously fire the click event before we listen for the event. - executeSoon(() => { - EventUtils.synthesizeMouseAtCenter(alertWindow.document.getElementById("alertTitleLabel"), - {}, alertWindow); - }); - let clickEvent = yield promiseClickEvent; - ok(clickEvent.defaultPrevented, "The event handler for the first notification cancels the event"); - isnot(gBrowser.selectedBrowser, aBrowser, "Notification page still a background tab"); - let notificationClosed = promiseNotificationEvent("close"); - yield closeNotification(aBrowser); - yield notificationClosed; - - // Second, show a notification that will cause the tab to get switched. - yield openNotification(aBrowser, "showNotification2"); - alertWindow = Services.wm.getMostRecentWindow("alert:alert"); - let promiseTabSelect = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "TabSelect"); - EventUtils.synthesizeMouseAtCenter(alertWindow.document.getElementById("alertTitleLabel"), - {}, - alertWindow); - yield promiseTabSelect; - is(gBrowser.selectedBrowser.currentURI.spec, notificationURL, - "Clicking on the second notification should select its originating tab"); - notificationClosed = promiseNotificationEvent("close"); - yield closeNotification(aBrowser); - yield notificationClosed; - }); -}); - -add_task(function* cleanup() { - Services.perms.remove(makeURI(notificationURL), "desktop-notification"); -}); |