diff options
Diffstat (limited to 'toolkit/mozapps/webextensions/test/browser/browser_bug523784.js')
-rw-r--r-- | toolkit/mozapps/webextensions/test/browser/browser_bug523784.js | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/toolkit/mozapps/webextensions/test/browser/browser_bug523784.js b/toolkit/mozapps/webextensions/test/browser/browser_bug523784.js new file mode 100644 index 000000000..e61fafd6b --- /dev/null +++ b/toolkit/mozapps/webextensions/test/browser/browser_bug523784.js @@ -0,0 +1,120 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +const URI_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul"; + +// This tests that the blocklist dialog still affects soft-blocked add-ons +// if the user clicks the "Restart Later" button. It also ensures that the +// "Cancel" button is correctly renamed (to "Restart Later"). +var args = { + restart: false, + list: [{ + name: "Bug 523784 softblocked addon", + version: "1", + icon: "chrome://mozapps/skin/plugins/pluginGeneric.png", + disable: false, + blocked: false, + url: 'http://example.com/bug523784_1', + }], +}; + +function test() { + waitForExplicitFinish(); + + let windowObserver = function(aSubject, aTopic, aData) { + if (aTopic != "domwindowopened") + return; + + Services.ww.unregisterNotification(windowObserver); + + let win = aSubject.QueryInterface(Ci.nsIDOMWindow); + win.addEventListener("load", function() { + win.removeEventListener("load", arguments.callee, false); + + executeSoon(() => bug523784_test1(win)); + }, false); + }; + Services.ww.registerNotification(windowObserver); + + args.wrappedJSObject = args; + Services.ww.openWindow(null, URI_BLOCKLIST_DIALOG, "", + "chrome,centerscreen,dialog,titlebar", args); +} + +function bug523784_test1(win) { + let bundle = Services.strings. + createBundle("chrome://mozapps/locale/update/updates.properties"); + let cancelButton = win.document.documentElement.getButton("cancel"); + let moreInfoLink = win.document.getElementById("moreInfo"); + + is(cancelButton.getAttribute("label"), + bundle.GetStringFromName("restartLaterButton"), + "Text should be changed on Cancel button"); + is(cancelButton.getAttribute("accesskey"), + bundle.GetStringFromName("restartLaterButton.accesskey"), + "Accesskey should also be changed on Cancel button"); + is(moreInfoLink.getAttribute("href"), + 'http://example.com/bug523784_1', + "More Info link should link to a detailed blocklist page."); + let windowObserver = function(aSubject, aTopic, aData) { + if (aTopic != "domwindowclosed") + return; + + Services.ww.unregisterNotification(windowObserver); + + ok(args.list[0].disable, "Should be blocking add-on"); + ok(!args.restart, "Should not restart browser immediately"); + + executeSoon(bug523784_test2); + }; + Services.ww.registerNotification(windowObserver); + + cancelButton.doCommand(); +} + +function bug523784_test2(win) { + let windowObserver = function(aSubject, aTopic, aData) { + if (aTopic != "domwindowopened") + return; + + Services.ww.unregisterNotification(windowObserver); + let win = aSubject.QueryInterface(Ci.nsIDOMWindow); + win.addEventListener("load", function() { + win.removeEventListener("load", arguments.callee, false); + + executeSoon(function() { + let moreInfoLink = win.document.getElementById("moreInfo"); + let cancelButton = win.document.documentElement.getButton("cancel"); + is(moreInfoLink.getAttribute("href"), + Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL"), + "More Info link should link to the general blocklist page."); + cancelButton.doCommand(); + executeSoon(finish); + }) + }, false); + }; + Services.ww.registerNotification(windowObserver); + + // Add 2 more addons to the blocked list to check that the more info link + // points to the general blocked list page. + args.list.push({ + name: "Bug 523784 softblocked addon 2", + version: "2", + icon: "chrome://mozapps/skin/plugins/pluginGeneric.png", + disable: false, + blocked: false, + url: 'http://example.com/bug523784_2' + }); + args.list.push({ + name: "Bug 523784 softblocked addon 3", + version: "4", + icon: "chrome://mozapps/skin/plugins/pluginGeneric.png", + disable: false, + blocked: false, + url: 'http://example.com/bug523784_3' + }); + + args.wrappedJSObject = args; + Services.ww.openWindow(null, URI_BLOCKLIST_DIALOG, "", + "chrome,centerscreen,dialog,titlebar", args); +} |