summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_bug514327_3.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_bug514327_3.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/test_bug514327_3.js57
1 files changed, 42 insertions, 15 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_bug514327_3.js b/toolkit/mozapps/extensions/test/xpcshell/test_bug514327_3.js
index 634361991..1267a8772 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug514327_3.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bug514327_3.js
@@ -2,13 +2,12 @@
* 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/. */
-var Cc = Components.classes;
-var Ci = Components.interfaces;
-var Cu = Components.utils;
-var Cr = Components.results;
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cu = Components.utils;
+const Cr = Components.results;
Cu.import("resource://testing-common/httpd.js");
-Cu.import("resource://testing-common/MockRegistrar.jsm");
const nsIBLS = Ci.nsIBlocklistService;
const URI_EXTENSION_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul";
@@ -52,21 +51,29 @@ var PluginHost = {
if (iid.equals(Ci.nsIPluginHost)
|| iid.equals(Ci.nsISupports))
return this;
-
+
throw Components.results.NS_ERROR_NO_INTERFACE;
}
}
+var PluginHostFactory = {
+ createInstance: function (outer, iid) {
+ if (outer != null)
+ throw Components.results.NS_ERROR_NO_AGGREGATION;
+ return PluginHost.QueryInterface(iid);
+ }
+};
+
// Don't need the full interface, attempts to call other methods will just
// throw which is just fine
var WindowWatcher = {
- openWindow: function(parent, url, name, features, args) {
+ openWindow: function(parent, url, name, features, arguments) {
// Should be called to list the newly blocklisted items
do_check_eq(url, URI_EXTENSION_BLOCKLIST_DIALOG);
// Should only include one item
- do_check_eq(args.wrappedJSObject.list.length, 1);
+ do_check_eq(arguments.wrappedJSObject.list.length, 1);
// And that item should be the blocked plugin, not the outdated one
- var item = args.wrappedJSObject.list[0];
+ var item = arguments.wrappedJSObject.list[0];
do_check_true(item.item instanceof Ci.nsIPluginTag);
do_check_neq(item.name, "test_bug514327_outdated");
@@ -83,8 +90,21 @@ var WindowWatcher = {
}
}
-MockRegistrar.register("@mozilla.org/plugin/host;1", PluginHost);
-MockRegistrar.register("@mozilla.org/embedcomp/window-watcher;1", WindowWatcher);
+var WindowWatcherFactory = {
+ createInstance: function createInstance(outer, iid) {
+ if (outer != null)
+ throw Components.results.NS_ERROR_NO_AGGREGATION;
+ return WindowWatcher.QueryInterface(iid);
+ }
+};
+
+var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
+registrar.registerFactory(Components.ID("{721c3e73-969e-474b-a6dc-059fd288c428}"),
+ "Fake Plugin Host",
+ "@mozilla.org/plugin/host;1", PluginHostFactory);
+registrar.registerFactory(Components.ID("{1dfeb90a-2193-45d5-9cb8-864928b2af55}"),
+ "Fake Window Watcher",
+ "@mozilla.org/embedcomp/window-watcher;1", WindowWatcherFactory);
function do_update_blocklist(aDatafile, aNextPart) {
@@ -106,13 +126,13 @@ function run_test() {
// initialize the blocklist with no entries
copyBlocklistToProfile(do_get_file("data/test_bug514327_3_empty.xml"));
-
+
gPrefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
gBlocklist = Cc["@mozilla.org/extensions/blocklist;1"].getService(nsIBLS);
-
+
// should NOT be marked as outdated by the blocklist
do_check_true(gBlocklist.getPluginBlocklistState(PLUGINS[0], "1", "1.9") == nsIBLS.STATE_NOT_BLOCKED);
-
+
do_test_pending();
// update blocklist with data that marks the plugin as outdated
@@ -122,7 +142,12 @@ function run_test() {
function test_part_1() {
// plugin should now be marked as outdated
do_check_true(gBlocklist.getPluginBlocklistState(PLUGINS[0], "1", "1.9") == nsIBLS.STATE_OUTDATED);
-
+ // and the notifyUser pref should be set to true
+ do_check_true(gPrefs.getBoolPref("plugins.update.notifyUser"));
+
+ // preternd the user has been notified, reset the pref
+ gPrefs.setBoolPref("plugins.update.notifyUser", false);
+
// update blocklist with data that marks the plugin as outdated
do_update_blocklist("test_bug514327_3_outdated_2.xml", test_part_2);
}
@@ -130,6 +155,8 @@ function test_part_1() {
function test_part_2() {
// plugin should still be marked as outdated
do_check_true(gBlocklist.getPluginBlocklistState(PLUGINS[0], "1", "1.9") == nsIBLS.STATE_OUTDATED);
+ // and the notifyUser pref should NOT be set to true, as the plugin was already outdated
+ do_check_false(gPrefs.getBoolPref("plugins.update.notifyUser"));
finish();
}