summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/alerts/browser_notification_tab_switching.js
diff options
context:
space:
mode:
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.js80
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");
-});