browser/base/content/test/plugins/browser_bug820497.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  *  License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 var gTestBrowser = null;
     6 var gNumPluginBindingsAttached = 0;
     8 Components.utils.import("resource://gre/modules/Services.jsm");
    10 function test() {
    11   waitForExplicitFinish();
    12   registerCleanupFunction(function() {
    13     Services.prefs.clearUserPref("plugins.click_to_play");
    14     gTestBrowser.removeEventListener("PluginBindingAttached", pluginBindingAttached, true, true);
    15     gBrowser.removeCurrentTab();
    16     window.focus();
    17   });
    19   Services.prefs.setBoolPref("plugins.click_to_play", true);
    20   setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
    21   setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Second Test Plug-in");
    23   gBrowser.selectedTab = gBrowser.addTab();
    24   gTestBrowser = gBrowser.selectedBrowser;
    25   gTestBrowser.addEventListener("PluginBindingAttached", pluginBindingAttached, true, true);
    26   var gHttpTestRoot = getRootDirectory(gTestPath).replace("chrome://mochitests/content/", "http://127.0.0.1:8888/");
    27   gTestBrowser.contentWindow.location = gHttpTestRoot + "plugin_bug820497.html";
    28 }
    30 function pluginBindingAttached() {
    31   gNumPluginBindingsAttached++;
    33   if (gNumPluginBindingsAttached == 1) {
    34     var doc = gTestBrowser.contentDocument;
    35     var testplugin = doc.getElementById("test");
    36     ok(testplugin, "should have test plugin");
    37     var secondtestplugin = doc.getElementById("secondtest");
    38     ok(!secondtestplugin, "should not yet have second test plugin");
    39     var notification = PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser);
    40     ok(notification, "should have popup notification");
    41     // We don't set up the action list until the notification is shown
    42     notification.reshow();
    43     is(notification.options.pluginData.size, 1, "should be 1 type of plugin in the popup notification");
    44     XPCNativeWrapper.unwrap(gTestBrowser.contentWindow).addSecondPlugin();
    45   } else if (gNumPluginBindingsAttached == 2) {
    46     var doc = gTestBrowser.contentDocument;
    47     var testplugin = doc.getElementById("test");
    48     ok(testplugin, "should have test plugin");
    49     var secondtestplugin = doc.getElementById("secondtest");
    50     ok(secondtestplugin, "should have second test plugin");
    51     var notification = PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser);
    52     ok(notification, "should have popup notification");
    53     notification.reshow();
    54     is(notification.options.pluginData.size, 2, "should be 2 types of plugin in the popup notification");
    55     finish();
    56   } else {
    57     ok(false, "if we've gotten here, something is quite wrong");
    58   }
    59 }

mercurial