summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/src/har/test/head.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/netmonitor/src/har/test/head.js')
-rw-r--r--devtools/client/netmonitor/src/har/test/head.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/src/har/test/head.js b/devtools/client/netmonitor/src/har/test/head.js
new file mode 100644
index 0000000000..b41ea580fd
--- /dev/null
+++ b/devtools/client/netmonitor/src/har/test/head.js
@@ -0,0 +1,45 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/* eslint no-unused-vars: [2, {"vars": "local", "args": "none"}] */
+/* import-globals-from ../../../test/head.js */
+
+// Load the NetMonitor head.js file to share its API.
+var netMonitorHead =
+ "chrome://mochitests/content/browser/devtools/client/netmonitor/test/head.js";
+Services.scriptloader.loadSubScript(netMonitorHead, this);
+
+// Directory with HAR related test files.
+const HAR_EXAMPLE_URL =
+ "http://example.com/browser/devtools/client/netmonitor/src/har/test/";
+
+/**
+ * Trigger a "copy all as har" from the context menu of the requests list.
+
+ * @param {Object} monitor
+ * The network monitor object
+ */
+async function copyAllAsHARWithContextMenu(monitor, { asString = false } = {}) {
+ const { HarMenuUtils } = monitor.panelWin.windowRequire(
+ "devtools/client/netmonitor/src/har/har-menu-utils"
+ );
+
+ info("Open the context menu on the first visible request.");
+ const firstRequest =
+ monitor.panelWin.document.querySelectorAll(".request-list-item")[0];
+
+ EventUtils.sendMouseEvent({ type: "mousedown" }, firstRequest);
+ EventUtils.sendMouseEvent({ type: "contextmenu" }, firstRequest);
+
+ info("Trigger Copy All As HAR from the context menu");
+ const onHarCopyDone = HarMenuUtils.once("copy-all-as-har-done");
+ await selectContextMenuItem(monitor, "request-list-context-copy-all-as-har");
+ const jsonString = await onHarCopyDone;
+
+ if (asString) {
+ return jsonString;
+ }
+ return JSON.parse(jsonString);
+}