michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: // Tests that the developer toolbar works properly michael@0: michael@0: const TEST_URI = "http://example.com/browser/browser/devtools/shared/test/browser_toolbar_basic.html"; michael@0: michael@0: function test() { michael@0: addTab(TEST_URI, function(browser, tab) { michael@0: info("Starting browser_toolbar_basic.js"); michael@0: runTest(); michael@0: }); michael@0: } michael@0: michael@0: function runTest() { michael@0: ok(!DeveloperToolbar.visible, "DeveloperToolbar is not visible in runTest"); michael@0: michael@0: oneTimeObserve(DeveloperToolbar.NOTIFICATIONS.SHOW, catchFail(checkOpen)); michael@0: document.getElementById("Tools:DevToolbar").doCommand(); michael@0: } michael@0: michael@0: function isChecked(b) { michael@0: return b.getAttribute("checked") == "true"; michael@0: } michael@0: michael@0: function checkOpen() { michael@0: ok(DeveloperToolbar.visible, "DeveloperToolbar is visible in checkOpen"); michael@0: let close = document.getElementById("developer-toolbar-closebutton"); michael@0: ok(close, "Close button exists"); michael@0: michael@0: let toggleToolbox = michael@0: document.getElementById("devtoolsMenuBroadcaster_DevToolbox"); michael@0: ok(!isChecked(toggleToolbox), "toggle toolbox button is not checked"); michael@0: michael@0: let target = TargetFactory.forTab(gBrowser.selectedTab); michael@0: gDevTools.showToolbox(target, "inspector").then(function(toolbox) { michael@0: ok(isChecked(toggleToolbox), "toggle toolbox button is checked"); michael@0: michael@0: addTab("about:blank", function(browser, tab) { michael@0: info("Opened a new tab"); michael@0: michael@0: ok(!isChecked(toggleToolbox), "toggle toolbox button is not checked"); michael@0: michael@0: gBrowser.removeCurrentTab(); michael@0: michael@0: oneTimeObserve(DeveloperToolbar.NOTIFICATIONS.HIDE, catchFail(checkClosed)); michael@0: document.getElementById("Tools:DevToolbar").doCommand(); michael@0: }); michael@0: }); michael@0: } michael@0: michael@0: function checkClosed() { michael@0: ok(!DeveloperToolbar.visible, "DeveloperToolbar is not visible in checkClosed"); michael@0: michael@0: oneTimeObserve(DeveloperToolbar.NOTIFICATIONS.SHOW, catchFail(checkReOpen)); michael@0: document.getElementById("Tools:DevToolbar").doCommand(); michael@0: } michael@0: michael@0: function checkReOpen() { michael@0: ok(DeveloperToolbar.visible, "DeveloperToolbar is visible in checkReOpen"); michael@0: michael@0: let toggleToolbox = michael@0: document.getElementById("devtoolsMenuBroadcaster_DevToolbox"); michael@0: ok(isChecked(toggleToolbox), "toggle toolbox button is checked"); michael@0: michael@0: oneTimeObserve(DeveloperToolbar.NOTIFICATIONS.HIDE, catchFail(checkReClosed)); michael@0: document.getElementById("developer-toolbar-closebutton").doCommand(); michael@0: } michael@0: michael@0: function checkReClosed() { michael@0: ok(!DeveloperToolbar.visible, "DeveloperToolbar is not visible in checkReClosed"); michael@0: michael@0: finish(); michael@0: }