1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/components/preferences/in-content/tests/browser_bug410900.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,58 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +Components.utils.import("resource://gre/modules/PlacesUtils.jsm"); 1.8 +Components.utils.import("resource://gre/modules/NetUtil.jsm"); 1.9 + 1.10 +function test() { 1.11 + waitForExplicitFinish(); 1.12 + 1.13 + // Setup a phony handler to ensure the app pane will be populated. 1.14 + var handler = Cc["@mozilla.org/uriloader/web-handler-app;1"]. 1.15 + createInstance(Ci.nsIWebHandlerApp); 1.16 + handler.name = "App pane alive test"; 1.17 + handler.uriTemplate = "http://test.mozilla.org/%s"; 1.18 + 1.19 + var extps = Cc["@mozilla.org/uriloader/external-protocol-service;1"]. 1.20 + getService(Ci.nsIExternalProtocolService); 1.21 + var info = extps.getProtocolHandlerInfo("apppanetest"); 1.22 + info.possibleApplicationHandlers.appendElement(handler, false); 1.23 + 1.24 + var hserv = Cc["@mozilla.org/uriloader/handler-service;1"]. 1.25 + getService(Ci.nsIHandlerService); 1.26 + hserv.store(info); 1.27 + 1.28 + function observer(win, topic, data) { 1.29 + if (topic != "app-handler-pane-loaded") 1.30 + return; 1.31 + 1.32 + Services.obs.removeObserver(observer, "app-handler-pane-loaded"); 1.33 + runTest(win); 1.34 + } 1.35 + Services.obs.addObserver(observer, "app-handler-pane-loaded", false); 1.36 + 1.37 + gBrowser.selectedTab = gBrowser.addTab("about:preferences"); 1.38 +} 1.39 + 1.40 +function runTest(win) { 1.41 + win.gotoPref("applications"); 1.42 + var sel = win.history.state; 1.43 + ok(sel == "applications", "Specified pane was opened"); 1.44 + 1.45 + var rbox = win.document.getElementById("handlersView"); 1.46 + ok(rbox, "handlersView is present"); 1.47 + 1.48 + var items = rbox && rbox.getElementsByTagName("richlistitem"); 1.49 + ok(items && items.length > 0, "App handler list populated"); 1.50 + 1.51 + var handlerAdded = false; 1.52 + for (let i = 0; i < items.length; i++) { 1.53 + if (items[i].getAttribute('type') == "apppanetest") 1.54 + handlerAdded = true; 1.55 + } 1.56 + ok(handlerAdded, "apppanetest protocol handler was successfully added"); 1.57 + 1.58 + gBrowser.removeCurrentTab(); 1.59 + win.close(); 1.60 + finish(); 1.61 +}