summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/browser_net_stacktraces-visibility.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/netmonitor/test/browser_net_stacktraces-visibility.js')
-rw-r--r--devtools/client/netmonitor/test/browser_net_stacktraces-visibility.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_stacktraces-visibility.js b/devtools/client/netmonitor/test/browser_net_stacktraces-visibility.js
new file mode 100644
index 0000000000..2edb68c4c2
--- /dev/null
+++ b/devtools/client/netmonitor/test/browser_net_stacktraces-visibility.js
@@ -0,0 +1,86 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Tests that opening the stacktrace details panel in the netmonitor and console
+ * show the expected stacktraces.
+ */
+
+add_task(async function () {
+ const URL = EXAMPLE_URL + "html_single-get-page.html";
+ const REQUEST =
+ "http://example.com/browser/devtools/client/netmonitor/test/request_0";
+
+ const { monitor } = await initNetMonitor(URL, {
+ requestCount: 1,
+ });
+
+ const { document, store, windowRequire } = monitor.panelWin;
+ const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
+
+ store.dispatch(Actions.batchEnable(false));
+
+ info("Starting test... ");
+
+ const allRequestsVisible = waitUntil(
+ () => document.querySelectorAll(".request-list-item").length == 2
+ );
+
+ await waitForAllNetworkUpdateEvents();
+ await reloadBrowser();
+ await allRequestsVisible;
+
+ const onStackTracesVisible = waitUntil(
+ () => document.querySelector("#stack-trace-panel .stack-trace .frame-link"),
+ "Wait for the stacktrace to be rendered"
+ );
+
+ // Select the request initiated by html_single-get-page.html
+ EventUtils.sendMouseEvent(
+ { type: "mousedown" },
+ document.querySelector(
+ `.request-list-item .requests-list-file[title="${REQUEST}"]`
+ )
+ );
+
+ // Wait for the stack trace tab to show
+ await waitUntil(() =>
+ document.querySelector(".network-details-bar #stack-trace-tab")
+ );
+
+ clickOnSidebarTab(document, "stack-trace");
+
+ await onStackTracesVisible;
+
+ // Switch to the webconsole.
+ const { hud } = await monitor.toolbox.selectTool("webconsole");
+ await waitFor(
+ () =>
+ hud.ui.outputNode.querySelector(
+ ".webconsole-output .cm-s-mozilla.message.network"
+ ),
+ "Wait for the network request log to show"
+ );
+ const fetchRequestUrlNode = hud.ui.outputNode.querySelector(
+ `.webconsole-output .cm-s-mozilla.message.network a[title="${REQUEST}"]`
+ );
+ fetchRequestUrlNode.click();
+
+ const messageWrapper = fetchRequestUrlNode.closest(".message-body-wrapper");
+
+ await waitFor(
+ () => messageWrapper.querySelector(".network-info"),
+ "Wait for .network-info to be rendered"
+ );
+
+ // Select stacktrace details panel and check the content.
+ messageWrapper.querySelector("#stack-trace-tab").click();
+ await waitFor(
+ () => messageWrapper.querySelector("#stack-trace-panel .frame-link"),
+ "Wait for stacktrace to be rendered"
+ );
+
+ return teardown(monitor);
+});