summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/webextensions/test/browser/browser_CTP_plugins.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/webextensions/test/browser/browser_CTP_plugins.js')
-rw-r--r--toolkit/mozapps/webextensions/test/browser/browser_CTP_plugins.js172
1 files changed, 0 insertions, 172 deletions
diff --git a/toolkit/mozapps/webextensions/test/browser/browser_CTP_plugins.js b/toolkit/mozapps/webextensions/test/browser/browser_CTP_plugins.js
deleted file mode 100644
index dd2992f81..000000000
--- a/toolkit/mozapps/webextensions/test/browser/browser_CTP_plugins.js
+++ /dev/null
@@ -1,172 +0,0 @@
-const gHttpTestRoot = "http://127.0.0.1:8888/" + RELATIVE_DIR + "/";
-
-function updateBlocklist(aCallback) {
- var blocklistNotifier = Cc["@mozilla.org/extensions/blocklist;1"]
- .getService(Ci.nsITimerCallback);
- var observer = function() {
- Services.obs.removeObserver(observer, "blocklist-updated");
- SimpleTest.executeSoon(aCallback);
- };
- Services.obs.addObserver(observer, "blocklist-updated", false);
- blocklistNotifier.notify(null);
-}
-
-var _originalBlocklistURL = null;
-function setAndUpdateBlocklist(aURL, aCallback) {
- if (!_originalBlocklistURL) {
- _originalBlocklistURL = Services.prefs.getCharPref("extensions.blocklist.url");
- }
- Services.prefs.setCharPref("extensions.blocklist.url", aURL);
- updateBlocklist(aCallback);
-}
-
-function resetBlocklist(aCallback) {
- Services.prefs.setCharPref("extensions.blocklist.url", _originalBlocklistURL);
-}
-
-add_task(function*() {
- SpecialPowers.pushPrefEnv({"set": [
- ["plugins.click_to_play", true],
- ["extensions.blocklist.suppressUI", true]
- ]});
- registerCleanupFunction(function*() {
- let pluginTag = getTestPluginTag();
- pluginTag.enabledState = Ci.nsIPluginTag.STATE_ENABLED;
- yield new Promise(resolve => {
- setAndUpdateBlocklist(gHttpTestRoot + "blockNoPlugins.xml", resolve);
- });
- resetBlocklist();
- });
-
- let pluginTag = getTestPluginTag();
- pluginTag.enabledState = Ci.nsIPluginTag.STATE_CLICKTOPLAY;
- let managerWindow = yield new Promise(resolve => open_manager("addons://list/plugin", resolve));
-
- let plugins = yield new Promise(resolve => AddonManager.getAddonsByTypes(["plugin"], resolve));
-
- let testPluginId;
- for (let plugin of plugins) {
- if (plugin.name == "Test Plug-in") {
- testPluginId = plugin.id;
- break;
- }
- }
- ok(testPluginId, "part2: Test Plug-in should exist");
-
- let testPlugin = yield new Promise(resolve => AddonManager.getAddonByID(testPluginId, resolve));
-
- let pluginEl = get_addon_element(managerWindow, testPluginId);
- pluginEl.parentNode.ensureElementIsVisible(pluginEl);
- let enableButton = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "enable-btn");
- is_element_hidden(enableButton, "part3: enable button should not be visible");
- let disableButton = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "enable-btn");
- is_element_hidden(disableButton, "part3: disable button should not be visible");
- let menu = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "state-menulist");
- is_element_visible(menu, "part3: state menu should be visible");
- let askToActivateItem = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "ask-to-activate-menuitem");
- is(menu.selectedItem, askToActivateItem, "part3: state menu should have 'Ask To Activate' selected");
-
- let pluginTab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, gHttpTestRoot + "plugin_test.html");
- let pluginBrowser = pluginTab.linkedBrowser;
-
- let condition = () => PopupNotifications.getNotification("click-to-play-plugins", pluginBrowser);
- yield BrowserTestUtils.waitForCondition(condition, "part4: should have a click-to-play notification");
-
- yield BrowserTestUtils.removeTab(pluginTab);
-
- let alwaysActivateItem = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "always-activate-menuitem");
- menu.selectedItem = alwaysActivateItem;
- alwaysActivateItem.doCommand();
-
- pluginTab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, gHttpTestRoot + "plugin_test.html");
-
- yield ContentTask.spawn(pluginTab.linkedBrowser, null, function*() {
- let testPlugin = content.document.getElementById("test");
- ok(testPlugin, "part5: should have a plugin element in the page");
- let objLoadingContent = testPlugin.QueryInterface(Ci.nsIObjectLoadingContent);
- let condition = () => objLoadingContent.activated;
- yield ContentTaskUtils.waitForCondition(condition, "part5: waited too long for plugin to activate");
- ok(objLoadingContent.activated, "part6: plugin should be activated");
- });
-
- yield BrowserTestUtils.removeTab(pluginTab);
-
- let neverActivateItem = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "never-activate-menuitem");
- menu.selectedItem = neverActivateItem;
- neverActivateItem.doCommand();
-
- pluginTab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, gHttpTestRoot + "plugin_test.html");
- pluginBrowser = pluginTab.linkedBrowser;
-
- yield ContentTask.spawn(pluginTab.linkedBrowser, null, function*() {
- let testPlugin = content.document.getElementById("test");
- ok(testPlugin, "part7: should have a plugin element in the page");
- let objLoadingContent = testPlugin.QueryInterface(Ci.nsIObjectLoadingContent);
- ok(!objLoadingContent.activated, "part7: plugin should not be activated");
- });
-
- yield BrowserTestUtils.removeTab(pluginTab);
-
- let details = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "details-btn");
- is_element_visible(details, "part7: details link should be visible");
- EventUtils.synthesizeMouseAtCenter(details, {}, managerWindow);
- yield BrowserTestUtils.waitForEvent(managerWindow.document, "ViewChanged");
-
- is_element_hidden(enableButton, "part8: detail enable button should be hidden");
- is_element_hidden(disableButton, "part8: detail disable button should be hidden");
- is_element_visible(menu, "part8: detail state menu should be visible");
- is(menu.selectedItem, neverActivateItem, "part8: state menu should have 'Never Activate' selected");
-
- menu.selectedItem = alwaysActivateItem;
- alwaysActivateItem.doCommand();
-
- pluginTab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, gHttpTestRoot + "plugin_test.html");
- pluginBrowser = pluginTab.linkedBrowser;
-
- yield ContentTask.spawn(pluginTab.linkedBrowser, null, function*() {
- let testPlugin = content.document.getElementById("test");
- ok(testPlugin, "part9: should have a plugin element in the page");
- let objLoadingContent = testPlugin.QueryInterface(Ci.nsIObjectLoadingContent);
- let condition = () => objLoadingContent.activated;
- yield ContentTaskUtils.waitForCondition(condition, "part9: waited too long for plugin to activate");
- ok(objLoadingContent.activated, "part10: plugin should be activated");
- });
-
- yield BrowserTestUtils.removeTab(pluginTab);
-
- menu.selectedItem = askToActivateItem;
- askToActivateItem.doCommand();
-
- pluginTab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, gHttpTestRoot + "plugin_test.html");
- pluginBrowser = pluginTab.linkedBrowser;
-
- condition = () => PopupNotifications.getNotification("click-to-play-plugins", pluginBrowser);
- yield BrowserTestUtils.waitForCondition(condition, "part11: should have a click-to-play notification");
-
- yield BrowserTestUtils.removeTab(pluginTab);
-
- // causes appDisabled to be set
- managerWindow = yield new Promise(resolve => {
- setAndUpdateBlocklist(gHttpTestRoot + "blockPluginHard.xml",
- () => {
- close_manager(managerWindow, function() {
- open_manager("addons://list/plugin", resolve);
- });
- }
- );
- });
-
- pluginEl = get_addon_element(managerWindow, testPluginId);
- pluginEl.parentNode.ensureElementIsVisible(pluginEl);
- menu = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "state-menulist");
- is(menu.disabled, true, "part12: state menu should be disabled");
-
- details = managerWindow.document.getAnonymousElementByAttribute(pluginEl, "anonid", "details-btn");
- EventUtils.synthesizeMouseAtCenter(details, {}, managerWindow);
- yield BrowserTestUtils.waitForEvent(managerWindow.document, "ViewChanged");
-
- menu = managerWindow.document.getElementById("detail-state-menulist");
- is(menu.disabled, true, "part13: detail state menu should be disabled");
-
- managerWindow.close();
-});