dom/plugins/test/mochitest/test_refresh_navigator_plugins.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 <!DOCTYPE html>
     2 <!-- bug 820708 -->
     3 <html>
     4   <head>
     5     <meta><charset="utf-8"/>
     6     <title>Test Refreshing navigator.plugins (bug 820708)</title>
     7     <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
     8     <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/ChromeUtils.js"></script>
     9     <script type="application/javascript" src="utils.js"></script>
    10   </head>
    11   <body>
    12     <script class="testbody" type="application/javascript">
    13       "use strict";
    15       SimpleTest.waitForExplicitFinish();
    16       setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED);
    18       var pluginHost = Components.classes["@mozilla.org/plugin/host;1"]
    19                        .getService(Components.interfaces.nsIPluginHost);
    20       var pluginTags = pluginHost.getPluginTags();
    21       var nextTest = null;
    22       var obsService = Components.classes["@mozilla.org/observer-service;1"]
    23                        .getService(Components.interfaces.nsIObserverService);
    24       var observer = {
    25         observe: function(aSubject, aTopic, aData) {
    26           if (aTopic == "plugin-info-updated") {
    27             SimpleTest.executeSoon(nextTest);
    28           }
    29         }
    30       };
    31       obsService.addObserver(observer, "plugin-info-updated", false);
    33       var navTestPlugin1 = navigator.plugins.namedItem("Test Plug-in");
    34       ok(navTestPlugin1, "navigator.plugins should have Test Plug-in");
    35       var tagTestPlugin = null;
    36       for (var plugin of pluginTags) {
    37         if (plugin.name == navTestPlugin1.name) {
    38           tagTestPlugin = plugin;
    39           break;
    40         }
    41       }
    42       ok(tagTestPlugin, "plugin tags should have Test Plug-in");
    43       var mimeType = tagTestPlugin.getMimeTypes()[0];
    44       ok(mimeType, "should have a MIME type for Test Plug-in");
    45       ok(navigator.mimeTypes[mimeType], "navigator.mimeTypes should have an entry for '" + mimeType + "'");
    46       ok(!tagTestPlugin.disabled, "test plugin should not be disabled");
    48       nextTest = testPart2;
    49       tagTestPlugin.enabledState = Components.interfaces.nsIPluginTag.STATE_DISABLED;
    51       function testPart2() {
    52         var navTestPlugin2 = navigator.plugins.namedItem("Test Plug-in");
    53         ok(!navTestPlugin2, "now navigator.plugins should not have Test Plug-in");
    54         ok(!navigator.mimeTypes[mimeType], "now navigator.mimeTypes should not have an entry for '" + mimeType + "'");
    56         nextTest = testPart3;
    57         tagTestPlugin.enabledState = Components.interfaces.nsIPluginTag.STATE_ENABLED;
    58       }
    60       function testPart3() {
    61         var navTestPlugin3 = navigator.plugins.namedItem("Test Plug-in");
    62         ok(navTestPlugin3, "now navigator.plugins should have Test Plug-in again");
    63         ok(navigator.mimeTypes[mimeType], "now navigator.mimeTypes should have an entry for '" + mimeType + "' again");
    64         obsService.removeObserver(observer, "plugin-info-updated");
    65         SimpleTest.finish();
    66       }
    67     </script>
    68   </body>
    69 </html>

mercurial