browser/components/preferences/in-content/tests/browser_bug410900.js

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/ */
     4 Components.utils.import("resource://gre/modules/PlacesUtils.jsm");
     5 Components.utils.import("resource://gre/modules/NetUtil.jsm");
     7 function test() {
     8   waitForExplicitFinish();
    10   // Setup a phony handler to ensure the app pane will be populated.
    11   var handler = Cc["@mozilla.org/uriloader/web-handler-app;1"].
    12                 createInstance(Ci.nsIWebHandlerApp);
    13   handler.name = "App pane alive test";
    14   handler.uriTemplate = "http://test.mozilla.org/%s";
    16   var extps = Cc["@mozilla.org/uriloader/external-protocol-service;1"].
    17               getService(Ci.nsIExternalProtocolService);
    18   var info = extps.getProtocolHandlerInfo("apppanetest");
    19   info.possibleApplicationHandlers.appendElement(handler, false);
    21   var hserv = Cc["@mozilla.org/uriloader/handler-service;1"].
    22               getService(Ci.nsIHandlerService);
    23   hserv.store(info);
    25   function observer(win, topic, data) {
    26     if (topic != "app-handler-pane-loaded")
    27       return;
    29     Services.obs.removeObserver(observer, "app-handler-pane-loaded");
    30     runTest(win);
    31   }
    32   Services.obs.addObserver(observer, "app-handler-pane-loaded", false);
    34   gBrowser.selectedTab = gBrowser.addTab("about:preferences");
    35 }
    37 function runTest(win) {
    38   win.gotoPref("applications");
    39   var sel = win.history.state;
    40   ok(sel == "applications", "Specified pane was opened");
    42   var rbox = win.document.getElementById("handlersView");
    43   ok(rbox, "handlersView is present");
    45   var items = rbox && rbox.getElementsByTagName("richlistitem");
    46   ok(items && items.length > 0, "App handler list populated");
    48   var handlerAdded = false;
    49   for (let i = 0; i < items.length; i++) {
    50     if (items[i].getAttribute('type') == "apppanetest")
    51       handlerAdded = true;
    52   }
    53   ok(handlerAdded, "apppanetest protocol handler was successfully added");
    55   gBrowser.removeCurrentTab();
    56   win.close();
    57   finish();
    58 }

mercurial