1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/devtools/webconsole/test/browser_webconsole_bug_618311_close_panels.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,88 @@ 1.4 +/* vim:set ts=2 sw=2 sts=2 et: */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +const TEST_URI = "http://example.com/browser/browser/devtools/webconsole/test/test-console.html"; 1.10 + 1.11 +function test() { 1.12 + addTab(TEST_URI); 1.13 + browser.addEventListener("load", function onLoad() { 1.14 + browser.removeEventListener("load", onLoad, true); 1.15 + 1.16 + openConsole(null, function(hud) { 1.17 + content.location.reload(); 1.18 + 1.19 + waitForMessages({ 1.20 + webconsole: hud, 1.21 + messages: [{ 1.22 + text: "test-console.html", 1.23 + category: CATEGORY_NETWORK, 1.24 + severity: SEVERITY_LOG, 1.25 + }], 1.26 + }).then(performTest); 1.27 + }); 1.28 + }, true); 1.29 +} 1.30 + 1.31 +function performTest(results) { 1.32 + let HUD = HUDService.getHudByWindow(content); 1.33 + 1.34 + let networkMessage = [...results[0].matched][0]; 1.35 + ok(networkMessage, "network message element"); 1.36 + 1.37 + let networkLink = networkMessage.querySelector(".url"); 1.38 + ok(networkLink, "found network message link"); 1.39 + 1.40 + let popupset = document.getElementById("mainPopupSet"); 1.41 + ok(popupset, "found #mainPopupSet"); 1.42 + 1.43 + let popupsShown = 0; 1.44 + let hiddenPopups = 0; 1.45 + 1.46 + let onpopupshown = function() { 1.47 + document.removeEventListener("popupshown", onpopupshown, false); 1.48 + popupsShown++; 1.49 + 1.50 + executeSoon(function() { 1.51 + let popups = popupset.querySelectorAll("panel[hudId=" + HUD.hudId + "]"); 1.52 + is(popups.length, 1, "found one popup"); 1.53 + 1.54 + document.addEventListener("popuphidden", onpopuphidden, false); 1.55 + 1.56 + registerCleanupFunction(function() { 1.57 + is(hiddenPopups, 1, "correct number of popups hidden"); 1.58 + if (hiddenPopups != 1) { 1.59 + document.removeEventListener("popuphidden", onpopuphidden, false); 1.60 + } 1.61 + }); 1.62 + 1.63 + executeSoon(closeConsole); 1.64 + }); 1.65 + }; 1.66 + 1.67 + let onpopuphidden = function() { 1.68 + document.removeEventListener("popuphidden", onpopuphidden, false); 1.69 + hiddenPopups++; 1.70 + 1.71 + executeSoon(function() { 1.72 + let popups = popupset.querySelectorAll("panel[hudId=" + HUD.hudId + "]"); 1.73 + is(popups.length, 0, "no popups found"); 1.74 + 1.75 + executeSoon(finishTest); 1.76 + }); 1.77 + }; 1.78 + 1.79 + document.addEventListener("popupshown", onpopupshown, false); 1.80 + 1.81 + registerCleanupFunction(function() { 1.82 + is(popupsShown, 1, "correct number of popups shown"); 1.83 + if (popupsShown != 1) { 1.84 + document.removeEventListener("popupshown", onpopupshown, false); 1.85 + } 1.86 + }); 1.87 + 1.88 + EventUtils.sendMouseEvent({ type: "mousedown" }, networkLink, HUD.iframeWindow); 1.89 + EventUtils.sendMouseEvent({ type: "mouseup" }, networkLink, HUD.iframeWindow); 1.90 + EventUtils.sendMouseEvent({ type: "click" }, networkLink, HUD.iframeWindow); 1.91 +}