summaryrefslogtreecommitdiffstats
path: root/toolkit/components/pictureinpicture/tests/browser_aaa_telemetry_togglePiP.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/pictureinpicture/tests/browser_aaa_telemetry_togglePiP.js')
-rw-r--r--toolkit/components/pictureinpicture/tests/browser_aaa_telemetry_togglePiP.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/toolkit/components/pictureinpicture/tests/browser_aaa_telemetry_togglePiP.js b/toolkit/components/pictureinpicture/tests/browser_aaa_telemetry_togglePiP.js
new file mode 100644
index 0000000000..d6a7540e15
--- /dev/null
+++ b/toolkit/components/pictureinpicture/tests/browser_aaa_telemetry_togglePiP.js
@@ -0,0 +1,69 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+function getTelemetryToggleEnabled() {
+ const scalarData = Services.telemetry.getSnapshotForScalars(
+ "main",
+ false
+ ).parent;
+ return scalarData["pictureinpicture.toggle_enabled"];
+}
+
+/**
+ * Tests telemetry for user toggling on or off PiP.
+ */
+add_task(async () => {
+ const TOGGLE_PIP_ENABLED_PREF =
+ "media.videocontrols.picture-in-picture.video-toggle.enabled";
+
+ await SpecialPowers.pushPrefEnv({
+ set: [[TOGGLE_PIP_ENABLED_PREF, true]],
+ });
+
+ await BrowserTestUtils.withNewTab(
+ {
+ url: TEST_PAGE,
+ gBrowser,
+ },
+ async browser => {
+ await ensureVideosReady(browser);
+
+ let contextPiPDisable = document.getElementById(
+ "context_HidePictureInPictureToggle"
+ );
+ contextPiPDisable.click();
+ const enabled = Services.prefs.getBoolPref(
+ TOGGLE_PIP_ENABLED_PREF,
+ false
+ );
+
+ Assert.equal(enabled, false, "PiP is disabled.");
+
+ await TestUtils.waitForCondition(() => {
+ return getTelemetryToggleEnabled() === false;
+ });
+
+ Assert.equal(
+ getTelemetryToggleEnabled(),
+ false,
+ "PiP is disabled according to Telemetry."
+ );
+
+ await SpecialPowers.pushPrefEnv({
+ set: [[TOGGLE_PIP_ENABLED_PREF, true]],
+ });
+
+ await TestUtils.waitForCondition(() => {
+ return getTelemetryToggleEnabled() === true;
+ });
+
+ Assert.equal(
+ getTelemetryToggleEnabled(),
+ true,
+ "PiP is enabled according to Telemetry."
+ );
+ }
+ );
+});