1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/components/preferences/tests/browser_bug410900.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,51 @@ 1.4 +function test() { 1.5 + waitForExplicitFinish(); 1.6 + 1.7 + // Setup a phony handler to ensure the app pane will be populated. 1.8 + var handler = Cc["@mozilla.org/uriloader/web-handler-app;1"]. 1.9 + createInstance(Ci.nsIWebHandlerApp); 1.10 + handler.name = "App pane alive test"; 1.11 + handler.uriTemplate = "http://test.mozilla.org/%s"; 1.12 + 1.13 + var extps = Cc["@mozilla.org/uriloader/external-protocol-service;1"]. 1.14 + getService(Ci.nsIExternalProtocolService); 1.15 + var info = extps.getProtocolHandlerInfo("apppanetest"); 1.16 + info.possibleApplicationHandlers.appendElement(handler, false); 1.17 + 1.18 + var hserv = Cc["@mozilla.org/uriloader/handler-service;1"]. 1.19 + getService(Ci.nsIHandlerService); 1.20 + hserv.store(info); 1.21 + 1.22 + function observer(win, topic, data) { 1.23 + if (topic != "app-handler-pane-loaded") 1.24 + return; 1.25 + 1.26 + Services.obs.removeObserver(observer, "app-handler-pane-loaded"); 1.27 + runTest(win); 1.28 + } 1.29 + Services.obs.addObserver(observer, "app-handler-pane-loaded", false); 1.30 + 1.31 + openDialog("chrome://browser/content/preferences/preferences.xul", "Preferences", 1.32 + "chrome,titlebar,toolbar,centerscreen,dialog=no", "paneApplications"); 1.33 +} 1.34 + 1.35 +function runTest(win) { 1.36 + var sel = win.document.documentElement.getAttribute("lastSelected"); 1.37 + ok(sel == "paneApplications", "Specified pane was opened"); 1.38 + 1.39 + var rbox = win.document.getElementById("handlersView"); 1.40 + ok(rbox, "handlersView is present"); 1.41 + 1.42 + var items = rbox && rbox.getElementsByTagName("richlistitem"); 1.43 + ok(items && items.length > 0, "App handler list populated"); 1.44 + 1.45 + var handlerAdded = false; 1.46 + for (let i = 0; i < items.length; i++) { 1.47 + if (items[i].type == "apppanetest") 1.48 + handlerAdded = true; 1.49 + } 1.50 + ok(handlerAdded, "apppanetest protocol handler was successfully added"); 1.51 + 1.52 + win.close(); 1.53 + finish(); 1.54 +}