summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/browser_net_telemetry_throttle_changed.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/netmonitor/test/browser_net_telemetry_throttle_changed.js')
-rw-r--r--devtools/client/netmonitor/test/browser_net_telemetry_throttle_changed.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_telemetry_throttle_changed.js b/devtools/client/netmonitor/test/browser_net_telemetry_throttle_changed.js
new file mode 100644
index 0000000000..ee27f5de2d
--- /dev/null
+++ b/devtools/client/netmonitor/test/browser_net_telemetry_throttle_changed.js
@@ -0,0 +1,50 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const ALL_CHANNELS = Ci.nsITelemetry.DATASET_ALL_CHANNELS;
+
+/**
+ * Test the throttle_change telemetry event.
+ */
+add_task(async function () {
+ const { monitor, toolbox } = await initNetMonitor(SIMPLE_URL, {
+ requestCount: 1,
+ });
+ info("Starting test... ");
+
+ const { document, store, windowRequire } = monitor.panelWin;
+ const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
+ store.dispatch(Actions.batchEnable(false));
+
+ // Remove all telemetry events.
+ Services.telemetry.clearEvents();
+
+ // Ensure no events have been logged
+ const snapshot = Services.telemetry.snapshotEvents(ALL_CHANNELS, true);
+ ok(!snapshot.parent, "No events have been logged for the main process");
+
+ document.getElementById("network-throttling-menu").click();
+ // Throttling menu items cannot be retrieved by id so we can't use getContextMenuItem
+ // here. Instead use querySelector on the toolbox top document, where the context menu
+ // will be rendered.
+ const item = toolbox.topWindow.document.querySelector(
+ "menuitem[label='GPRS']"
+ );
+ await BrowserTestUtils.waitForPopupEvent(item.parentNode, "shown");
+ item.parentNode.activateItem(item);
+ await monitor.panelWin.api.once(TEST_EVENTS.THROTTLING_CHANGED);
+
+ // Verify existence of the telemetry event.
+ checkTelemetryEvent(
+ {
+ mode: "GPRS",
+ },
+ {
+ method: "throttle_changed",
+ }
+ );
+
+ return teardown(monitor);
+});