1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/devtools/framework/test/browser_toolbox_custom_host.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,60 @@ 1.4 +/* vim: set ts=2 et sw=2 tw=80: */ 1.5 +/* Any copyright is dedicated to the Public Domain. 1.6 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.7 + 1.8 +function test() { 1.9 + Cu.import("resource://gre/modules/Services.jsm"); 1.10 + let temp = {} 1.11 + Cu.import("resource:///modules/devtools/gDevTools.jsm", temp); 1.12 + let DevTools = temp.DevTools; 1.13 + Cu.import("resource://gre/modules/devtools/LayoutHelpers.jsm", temp); 1.14 + let LayoutHelpers = temp.LayoutHelpers; 1.15 + 1.16 + Cu.import("resource://gre/modules/devtools/Loader.jsm", temp); 1.17 + let devtools = temp.devtools; 1.18 + 1.19 + let Toolbox = devtools.Toolbox; 1.20 + 1.21 + let toolbox, iframe, target, tab; 1.22 + 1.23 + waitForExplicitFinish(); 1.24 + 1.25 + gBrowser.selectedTab = gBrowser.addTab(); 1.26 + target = TargetFactory.forTab(gBrowser.selectedTab); 1.27 + 1.28 + window.addEventListener("message", onMessage); 1.29 + 1.30 + iframe = document.createElement("iframe"); 1.31 + document.documentElement.appendChild(iframe); 1.32 + 1.33 + gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) { 1.34 + gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); 1.35 + let options = {customIframe: iframe}; 1.36 + gDevTools.showToolbox(target, null, Toolbox.HostType.CUSTOM, options) 1.37 + .then(testCustomHost, console.error) 1.38 + .then(null, console.error); 1.39 + }, true); 1.40 + 1.41 + content.location = "data:text/html,test custom host"; 1.42 + 1.43 + function onMessage(event) { 1.44 + info("onMessage: " + event.data); 1.45 + let json = JSON.parse(event.data); 1.46 + if (json.name == "toolbox-close") { 1.47 + ok("Got the `toolbox-close` message"); 1.48 + cleanup(); 1.49 + } 1.50 + } 1.51 + 1.52 + function testCustomHost(toolbox) { 1.53 + is(toolbox.doc.defaultView.top, window, "Toolbox is included in browser.xul"); 1.54 + is(toolbox.doc, iframe.contentDocument, "Toolbox is in the custom iframe"); 1.55 + executeSoon(() => gBrowser.removeCurrentTab()); 1.56 + } 1.57 + 1.58 + function cleanup() { 1.59 + window.removeEventListener("message", onMessage); 1.60 + iframe.remove(); 1.61 + finish(); 1.62 + } 1.63 +}