summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/webextensions/test/xpcshell/test_plugins.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_plugins.js')
-rw-r--r--toolkit/mozapps/webextensions/test/xpcshell/test_plugins.js210
1 files changed, 0 insertions, 210 deletions
diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_plugins.js b/toolkit/mozapps/webextensions/test/xpcshell/test_plugins.js
deleted file mode 100644
index 3f0ac7ebe..000000000
--- a/toolkit/mozapps/webextensions/test/xpcshell/test_plugins.js
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-var TEST_PLUGIN_DESCRIPTION = "Flash plug-in for testing purposes.";
-
-// This verifies that plugins exist and can be enabled and disabled.
-var gID = null;
-
-function setTestPluginState(state) {
- let tags = AM_Cc["@mozilla.org/plugin/host;1"].getService(AM_Ci.nsIPluginHost)
- .getPluginTags();
- for (let tag of tags) {
- do_print("Checking tag: " + tag.description);
- if (tag.description == TEST_PLUGIN_DESCRIPTION) {
- tag.enabledState = state;
- return;
- }
- }
- throw Error("No plugin tag found for the test plugin");
-}
-
-function run_test() {
- do_test_pending();
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
- Services.prefs.setBoolPref("plugins.click_to_play", true);
- Services.prefs.setBoolPref("plugin.load_flash_only", false);
-
- setTestPluginState(AM_Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
- startupManager();
- AddonManager.addAddonListener(AddonListener);
- AddonManager.addInstallListener(InstallListener);
-
- run_test_1();
-}
-
-// Finds the test plugin library
-function get_test_plugin() {
- var pluginEnum = Services.dirsvc.get("APluginsDL", AM_Ci.nsISimpleEnumerator);
- while (pluginEnum.hasMoreElements()) {
- let dir = pluginEnum.getNext().QueryInterface(AM_Ci.nsILocalFile);
- let plugin = dir.clone();
- // OSX plugin
- plugin.append("npswftest.plugin");
- if (plugin.exists()) {
- plugin.normalize();
- return plugin;
- }
- plugin = dir.clone();
- // *nix plugin
- plugin.append("libnpswftest.so");
- if (plugin.exists()) {
- plugin.normalize();
- return plugin;
- }
- // Windows plugin
- plugin = dir.clone();
- plugin.append("npswftest.dll");
- if (plugin.exists()) {
- plugin.normalize();
- return plugin;
- }
- }
- return null;
-}
-
-function getFileSize(aFile) {
- if (!aFile.isDirectory())
- return aFile.fileSize;
-
- let size = 0;
- let entries = aFile.directoryEntries.QueryInterface(AM_Ci.nsIDirectoryEnumerator);
- let entry;
- while (entry = entries.nextFile)
- size += getFileSize(entry);
- entries.close();
- return size;
-}
-
-function getPluginLastModifiedTime(aPluginFile) {
- // On OS X we use the bundle contents last modified time as using
- // the package directories modified date may be outdated.
- // See bug 313700.
- try {
- let localFileMac = aPluginFile.QueryInterface(AM_Ci.nsILocalFileMac);
- if (localFileMac) {
- return localFileMac.bundleContentsLastModifiedTime;
- }
- } catch (e) {
- }
-
- return aPluginFile.lastModifiedTime;
-}
-
-// Tests that the test plugin exists
-function run_test_1() {
- var testPlugin = get_test_plugin();
- do_check_neq(testPlugin, null);
-
- AddonManager.getAddonsByTypes(["plugin"], function(addons) {
- do_check_true(addons.length > 0);
-
- addons.forEach(function(p) {
- if (p.description == TEST_PLUGIN_DESCRIPTION)
- gID = p.id;
- });
-
- do_check_neq(gID, null);
-
- AddonManager.getAddonByID(gID, function(p) {
- do_check_neq(p, null);
- do_check_eq(p.name, "Shockwave Flash");
- do_check_eq(p.description, TEST_PLUGIN_DESCRIPTION);
- do_check_eq(p.creator, null);
- do_check_eq(p.version, "1.0.0.0");
- do_check_eq(p.type, "plugin");
- do_check_eq(p.userDisabled, "askToActivate");
- do_check_false(p.appDisabled);
- do_check_true(p.isActive);
- do_check_true(p.isCompatible);
- do_check_true(p.providesUpdatesSecurely);
- do_check_eq(p.blocklistState, 0);
- do_check_eq(p.permissions, AddonManager.PERM_CAN_DISABLE | AddonManager.PERM_CAN_ENABLE);
- do_check_eq(p.pendingOperations, 0);
- do_check_true(p.size > 0);
- do_check_eq(p.size, getFileSize(testPlugin));
- do_check_true(p.updateDate > 0);
- do_check_true("isCompatibleWith" in p);
- do_check_true("findUpdates" in p);
-
- let lastModifiedTime = getPluginLastModifiedTime(testPlugin);
- do_check_eq(p.updateDate.getTime(), lastModifiedTime);
- do_check_eq(p.installDate.getTime(), lastModifiedTime);
-
- run_test_2(p);
- });
- });
-}
-
-// Tests that disabling a plugin works
-function run_test_2(p) {
- let test = {};
- test[gID] = [
- ["onDisabling", false],
- "onDisabled",
- ["onPropertyChanged", ["userDisabled"]]
- ];
- prepare_test(test);
-
- p.userDisabled = true;
-
- ensure_test_completed();
-
- do_check_true(p.userDisabled);
- do_check_false(p.appDisabled);
- do_check_false(p.isActive);
-
- AddonManager.getAddonByID(gID, function(p2) {
- do_check_neq(p2, null);
- do_check_true(p2.userDisabled);
- do_check_false(p2.appDisabled);
- do_check_false(p2.isActive);
- do_check_eq(p2.name, "Shockwave Flash");
-
- run_test_3(p2);
- });
-}
-
-// Tests that enabling a plugin works
-function run_test_3(p) {
- let test = {};
- test[gID] = [
- ["onEnabling", false],
- "onEnabled"
- ];
- prepare_test(test);
-
- p.userDisabled = false;
-
- ensure_test_completed();
-
- do_check_false(p.userDisabled);
- do_check_false(p.appDisabled);
- do_check_true(p.isActive);
-
- AddonManager.getAddonByID(gID, function(p2) {
- do_check_neq(p2, null);
- do_check_false(p2.userDisabled);
- do_check_false(p2.appDisabled);
- do_check_true(p2.isActive);
- do_check_eq(p2.name, "Shockwave Flash");
-
- do_execute_soon(run_test_4);
- });
-}
-
-// Verify that after a restart the test plugin has the same ID
-function run_test_4() {
- restartManager();
-
- AddonManager.getAddonByID(gID, function(p) {
- do_check_neq(p, null);
- do_check_eq(p.name, "Shockwave Flash");
-
- Services.prefs.clearUserPref("plugins.click_to_play");
-
- do_execute_soon(do_test_finished);
- });
-}