summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/browser/browser_console_webconsole_iframe_messages.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/webconsole/test/browser/browser_console_webconsole_iframe_messages.js')
-rw-r--r--devtools/client/webconsole/test/browser/browser_console_webconsole_iframe_messages.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser/browser_console_webconsole_iframe_messages.js b/devtools/client/webconsole/test/browser/browser_console_webconsole_iframe_messages.js
new file mode 100644
index 0000000000..e6ed5388ce
--- /dev/null
+++ b/devtools/client/webconsole/test/browser/browser_console_webconsole_iframe_messages.js
@@ -0,0 +1,61 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Check that cached messages from nested iframes are displayed in the
+// Web/Browser Console.
+
+"use strict";
+
+const TEST_URI =
+ "http://example.com/browser/devtools/client/webconsole/" +
+ "test/browser/test-console-iframes.html";
+
+const expectedMessages = [
+ ["main file", ".console-api"],
+ ["blah", ".error"],
+ ["iframe 2", ".console-api"],
+ ["iframe 3", ".console-api"],
+];
+
+// This log comes from test-iframe1.html, which is included from test-console-iframes.html
+// __and__ from test-iframe3.html as well, so we should see it twice.
+const expectedDupedMessage = "iframe 1";
+
+add_task(async function () {
+ // On e10s, the exception is triggered in child process
+ // and is ignored by test harness
+ if (!Services.appinfo.browserTabsRemoteAutostart) {
+ expectUncaughtException();
+ }
+
+ let hud = await openNewTabAndConsole(TEST_URI);
+
+ await testMessages(hud);
+ await closeConsole();
+ info("web console closed");
+
+ // Show the content messages
+ await pushPref("devtools.browsertoolbox.scope", "everything");
+ hud = await BrowserConsoleManager.toggleBrowserConsole();
+ ok(hud, "browser console opened");
+ await testMessages(hud);
+
+ // clear the browser console.
+ await clearOutput(hud);
+ await waitForTick();
+ await safeCloseBrowserConsole();
+});
+
+async function testMessages(hud) {
+ for (const [message, selector] of expectedMessages) {
+ info(`checking that the message "${message}" exists`);
+ await waitFor(() => findMessageByType(hud, message, selector));
+ }
+
+ ok(true, "Found expected unique messages");
+
+ await waitFor(
+ () => findConsoleAPIMessages(hud, expectedDupedMessage).length == 2
+ );
+ ok(true, `${expectedDupedMessage} is present twice`);
+}