diff options
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_duplicateplugins.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/xpcshell/test_duplicateplugins.js | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_duplicateplugins.js b/toolkit/mozapps/extensions/test/xpcshell/test_duplicateplugins.js deleted file mode 100644 index bad560306..000000000 --- a/toolkit/mozapps/extensions/test/xpcshell/test_duplicateplugins.js +++ /dev/null @@ -1,185 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -const Ci = Components.interfaces; - -// This verifies that duplicate plugins are coalesced and maintain their ID -// across restarts. - -var PLUGINS = [{ - name: "Duplicate Plugin 1", - description: "A duplicate plugin", - version: "1", - blocklisted: false, - enabledState: Ci.nsIPluginTag.STATE_ENABLED, - get disabled() this.enabledState == Ci.nsIPluginTag.STATE_DISABLED, - filename: "/home/mozilla/.plugins/dupplugin1.so" -}, { - name: "Duplicate Plugin 1", - description: "A duplicate plugin", - version: "1", - blocklisted: false, - enabledState: Ci.nsIPluginTag.STATE_ENABLED, - get disabled() this.enabledState == Ci.nsIPluginTag.STATE_DISABLED, - filename: "", - filename: "/usr/lib/plugins/dupplugin1.so" -}, { - name: "Duplicate Plugin 2", - description: "Another duplicate plugin", - version: "1", - blocklisted: false, - enabledState: Ci.nsIPluginTag.STATE_ENABLED, - get disabled() this.enabledState == Ci.nsIPluginTag.STATE_DISABLED, - filename: "/home/mozilla/.plugins/dupplugin2.so" -}, { - name: "Duplicate Plugin 2", - description: "Another duplicate plugin", - version: "1", - blocklisted: false, - enabledState: Ci.nsIPluginTag.STATE_ENABLED, - get disabled() this.enabledState == Ci.nsIPluginTag.STATE_DISABLED, - filename: "", - filename: "/usr/lib/plugins/dupplugin2.so" -}, { - name: "Non-duplicate Plugin", // 3 - description: "Not a duplicate plugin", - version: "1", - blocklisted: false, - enabledState: Ci.nsIPluginTag.STATE_ENABLED, - get disabled() this.enabledState == Ci.nsIPluginTag.STATE_DISABLED, - filename: "/home/mozilla/.plugins/dupplugin3.so" -}, { - name: "Non-duplicate Plugin", // 4 - description: "Not a duplicate because the descriptions are different", - version: "1", - blocklisted: false, - enabledState: Ci.nsIPluginTag.STATE_ENABLED, - get disabled() this.enabledState == Ci.nsIPluginTag.STATE_DISABLED, - filename: "", - filename: "/usr/lib/plugins/dupplugin4.so" -}, { - name: "Another Non-duplicate Plugin", // 5 - description: "Not a duplicate plugin", - version: "1", - blocklisted: false, - enabledState: Ci.nsIPluginTag.STATE_ENABLED, - get disabled() this.enabledState == Ci.nsIPluginTag.STATE_DISABLED, - filename: "/home/mozilla/.plugins/dupplugin5.so" -}]; - -// A fake plugin host to return the plugins defined above -var PluginHost = { - getPluginTags: function(countRef) { - countRef.value = PLUGINS.length; - return PLUGINS; - }, - - QueryInterface: function(iid) { - if (iid.equals(Components.interfaces.nsIPluginHost) - || iid.equals(Components.interfaces.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); - } -}; - -var registrar = Components.manager.QueryInterface(Components.interfaces.nsIComponentRegistrar); -registrar.registerFactory(Components.ID("{721c3e73-969e-474b-a6dc-059fd288c428}"), - "Fake Plugin Host", - "@mozilla.org/plugin/host;1", PluginHostFactory); - -var gPluginIDs = [null, null, null, null, null]; - -function run_test() { - do_test_pending(); - createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2"); - Services.prefs.setBoolPref("media.gmp-provider.enabled", false); - - startupManager(); - - run_test_1(); -} - -function found_plugin(aNum, aId) { - if (gPluginIDs[aNum]) - do_throw("Found duplicate of plugin " + aNum); - gPluginIDs[aNum] = aId; -} - -// Test that the plugins were coalesced and all appear in the returned list -function run_test_1() { - AddonManager.getAddonsByTypes(["plugin"], function(aAddons) { - do_check_eq(aAddons.length, 5); - aAddons.forEach(function(aAddon) { - if (aAddon.name == "Duplicate Plugin 1") { - found_plugin(0, aAddon.id); - do_check_eq(aAddon.description, "A duplicate plugin"); - } - else if (aAddon.name == "Duplicate Plugin 2") { - found_plugin(1, aAddon.id); - do_check_eq(aAddon.description, "Another duplicate plugin"); - } - else if (aAddon.name == "Another Non-duplicate Plugin") { - found_plugin(5, aAddon.id); - do_check_eq(aAddon.description, "Not a duplicate plugin"); - } - else if (aAddon.name == "Non-duplicate Plugin") { - if (aAddon.description == "Not a duplicate plugin") - found_plugin(3, aAddon.id); - else if (aAddon.description == "Not a duplicate because the descriptions are different") - found_plugin(4, aAddon.id); - else - do_throw("Found unexpected plugin with description " + aAddon.description); - } - else { - do_throw("Found unexpected plugin " + aAddon.name); - } - }); - - run_test_2(); - }); -} - -// Test that disabling a coalesced plugin disables all its tags -function run_test_2() { - AddonManager.getAddonByID(gPluginIDs[0], function(p) { - do_check_false(p.userDisabled); - p.userDisabled = true; - do_check_true(PLUGINS[0].disabled); - do_check_true(PLUGINS[1].disabled); - - do_execute_soon(run_test_3); - }); -} - -// Test that IDs persist across restart -function run_test_3() { - restartManager(); - - AddonManager.getAddonByID(gPluginIDs[0], callback_soon(function(p) { - do_check_neq(p, null); - do_check_eq(p.name, "Duplicate Plugin 1"); - do_check_eq(p.description, "A duplicate plugin"); - - // Reorder the plugins and restart again - [PLUGINS[0], PLUGINS[1]] = [PLUGINS[1], PLUGINS[0]]; - restartManager(); - - AddonManager.getAddonByID(gPluginIDs[0], function(p) { - do_check_neq(p, null); - do_check_eq(p.name, "Duplicate Plugin 1"); - do_check_eq(p.description, "A duplicate plugin"); - - do_execute_soon(do_test_finished); - }); - })); -} |