diff options
Diffstat (limited to 'browser/base/content/test/popupNotifications/browser_popupNotification_2.js')
-rw-r--r-- | browser/base/content/test/popupNotifications/browser_popupNotification_2.js | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/browser/base/content/test/popupNotifications/browser_popupNotification_2.js b/browser/base/content/test/popupNotifications/browser_popupNotification_2.js deleted file mode 100644 index d77098895..000000000 --- a/browser/base/content/test/popupNotifications/browser_popupNotification_2.js +++ /dev/null @@ -1,266 +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/. */ - -function test() { - waitForExplicitFinish(); - - ok(PopupNotifications, "PopupNotifications object exists"); - ok(PopupNotifications.panel, "PopupNotifications panel exists"); - - setup(); - goNext(); -} - -var tests = [ - // Test optional params - { id: "Test#1", - run: function () { - this.notifyObj = new BasicNotification(this.id); - this.notifyObj.secondaryActions = undefined; - this.notification = showNotification(this.notifyObj); - }, - onShown: function (popup) { - checkPopup(popup, this.notifyObj); - dismissNotification(popup); - }, - onHidden: function (popup) { - ok(this.notifyObj.dismissalCallbackTriggered, "dismissal callback triggered"); - this.notification.remove(); - ok(this.notifyObj.removedCallbackTriggered, "removed callback triggered"); - } - }, - // Test that icons appear - { id: "Test#2", - run: function () { - this.notifyObj = new BasicNotification(this.id); - this.notifyObj.id = "geolocation"; - this.notifyObj.anchorID = "geo-notification-icon"; - this.notification = showNotification(this.notifyObj); - }, - onShown: function (popup) { - checkPopup(popup, this.notifyObj); - isnot(document.getElementById("geo-notification-icon").boxObject.width, 0, - "geo anchor should be visible"); - dismissNotification(popup); - }, - onHidden: function (popup) { - let icon = document.getElementById("geo-notification-icon"); - isnot(icon.boxObject.width, 0, - "geo anchor should be visible after dismissal"); - this.notification.remove(); - is(icon.boxObject.width, 0, - "geo anchor should not be visible after removal"); - } - }, - - // Test that persistence allows the notification to persist across reloads - { id: "Test#3", - run: function* () { - this.oldSelectedTab = gBrowser.selectedTab; - gBrowser.selectedTab = gBrowser.addTab("about:blank"); - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.com/"); - this.notifyObj = new BasicNotification(this.id); - this.notifyObj.addOptions({ - persistence: 2 - }); - this.notification = showNotification(this.notifyObj); - }, - onShown: function* (popup) { - this.complete = false; - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.org/"); - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.com/") - // Next load will remove the notification - this.complete = true; - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.org/"); - }, - onHidden: function (popup) { - ok(this.complete, "Should only have hidden the notification after 3 page loads"); - ok(this.notifyObj.removedCallbackTriggered, "removal callback triggered"); - gBrowser.removeTab(gBrowser.selectedTab); - gBrowser.selectedTab = this.oldSelectedTab; - } - }, - // Test that a timeout allows the notification to persist across reloads - { id: "Test#4", - run: function* () { - this.oldSelectedTab = gBrowser.selectedTab; - gBrowser.selectedTab = gBrowser.addTab("about:blank"); - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.com/"); - this.notifyObj = new BasicNotification(this.id); - // Set a timeout of 10 minutes that should never be hit - this.notifyObj.addOptions({ - timeout: Date.now() + 600000 - }); - this.notification = showNotification(this.notifyObj); - }, - onShown: function* (popup) { - this.complete = false; - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.org/"); - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.com/"); - // Next load will hide the notification - this.notification.options.timeout = Date.now() - 1; - this.complete = true; - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.org/"); - }, - onHidden: function (popup) { - ok(this.complete, "Should only have hidden the notification after the timeout was passed"); - this.notification.remove(); - gBrowser.removeTab(gBrowser.selectedTab); - gBrowser.selectedTab = this.oldSelectedTab; - } - }, - // Test that setting persistWhileVisible allows a visible notification to - // persist across location changes - { id: "Test#5", - run: function* () { - this.oldSelectedTab = gBrowser.selectedTab; - gBrowser.selectedTab = gBrowser.addTab("about:blank"); - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.com/"); - this.notifyObj = new BasicNotification(this.id); - this.notifyObj.addOptions({ - persistWhileVisible: true - }); - this.notification = showNotification(this.notifyObj); - }, - onShown: function* (popup) { - this.complete = false; - - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.org/"); - yield promiseTabLoadEvent(gBrowser.selectedTab, "http://example.com/"); - // Notification should persist across location changes - this.complete = true; - dismissNotification(popup); - }, - onHidden: function (popup) { - ok(this.complete, "Should only have hidden the notification after it was dismissed"); - this.notification.remove(); - gBrowser.removeTab(gBrowser.selectedTab); - gBrowser.selectedTab = this.oldSelectedTab; - } - }, - - // Test that nested icon nodes correctly activate popups - { id: "Test#6", - run: function() { - // Add a temporary box as the anchor with a button - this.box = document.createElement("box"); - PopupNotifications.iconBox.appendChild(this.box); - - let button = document.createElement("button"); - button.setAttribute("label", "Please click me!"); - this.box.appendChild(button); - - // The notification should open up on the box - this.notifyObj = new BasicNotification(this.id); - this.notifyObj.anchorID = this.box.id = "nested-box"; - this.notifyObj.addOptions({dismissed: true}); - this.notification = showNotification(this.notifyObj); - - // This test places a normal button in the notification area, which has - // standard GTK styling and dimensions. Due to the clip-path, this button - // gets clipped off, which makes it necessary to synthesize the mouse click - // a little bit downward. To be safe, I adjusted the x-offset with the same - // amount. - EventUtils.synthesizeMouse(button, 4, 4, {}); - }, - onShown: function(popup) { - checkPopup(popup, this.notifyObj); - dismissNotification(popup); - }, - onHidden: function(popup) { - this.notification.remove(); - this.box.parentNode.removeChild(this.box); - } - }, - // Test that popupnotifications without popups have anchor icons shown - { id: "Test#7", - run: function* () { - let notifyObj = new BasicNotification(this.id); - notifyObj.anchorID = "geo-notification-icon"; - notifyObj.addOptions({neverShow: true}); - let promiseTopic = promiseTopicObserved("PopupNotifications-updateNotShowing"); - showNotification(notifyObj); - yield promiseTopic; - isnot(document.getElementById("geo-notification-icon").boxObject.width, 0, - "geo anchor should be visible"); - goNext(); - } - }, - // Test notification "Not Now" menu item - { id: "Test#8", - run: function () { - this.notifyObj = new BasicNotification(this.id); - this.notification = showNotification(this.notifyObj); - }, - onShown: function (popup) { - checkPopup(popup, this.notifyObj); - triggerSecondaryCommand(popup, 1); - }, - onHidden: function (popup) { - ok(this.notifyObj.dismissalCallbackTriggered, "dismissal callback triggered"); - this.notification.remove(); - ok(this.notifyObj.removedCallbackTriggered, "removed callback triggered"); - } - }, - // Test notification close button - { id: "Test#9", - run: function () { - this.notifyObj = new BasicNotification(this.id); - this.notification = showNotification(this.notifyObj); - }, - onShown: function (popup) { - checkPopup(popup, this.notifyObj); - let notification = popup.childNodes[0]; - EventUtils.synthesizeMouseAtCenter(notification.closebutton, {}); - }, - onHidden: function (popup) { - ok(this.notifyObj.dismissalCallbackTriggered, "dismissal callback triggered"); - this.notification.remove(); - ok(this.notifyObj.removedCallbackTriggered, "removed callback triggered"); - } - }, - // Test notification when chrome is hidden - { id: "Test#10", - run: function () { - window.locationbar.visible = false; - this.notifyObj = new BasicNotification(this.id); - this.notification = showNotification(this.notifyObj); - }, - onShown: function (popup) { - checkPopup(popup, this.notifyObj); - is(popup.anchorNode.className, "tabbrowser-tab", "notification anchored to tab"); - dismissNotification(popup); - }, - onHidden: function (popup) { - ok(this.notifyObj.dismissalCallbackTriggered, "dismissal callback triggered"); - this.notification.remove(); - ok(this.notifyObj.removedCallbackTriggered, "removed callback triggered"); - window.locationbar.visible = true; - } - }, - // Test that dismissed popupnotifications can be opened on about:blank - // (where the rest of the identity block is disabled) - { id: "Test#11", - run: function() { - this.oldSelectedTab = gBrowser.selectedTab; - gBrowser.selectedTab = gBrowser.addTab("about:blank"); - - this.notifyObj = new BasicNotification(this.id); - this.notifyObj.anchorID = "geo-notification-icon"; - this.notifyObj.addOptions({dismissed: true}); - this.notification = showNotification(this.notifyObj); - - EventUtils.synthesizeMouse(document.getElementById("geo-notification-icon"), 0, 0, {}); - }, - onShown: function(popup) { - checkPopup(popup, this.notifyObj); - dismissNotification(popup); - }, - onHidden: function(popup) { - this.notification.remove(); - gBrowser.removeTab(gBrowser.selectedTab); - gBrowser.selectedTab = this.oldSelectedTab; - } - } -]; |