summaryrefslogtreecommitdiffstats
path: root/toolkit/components/pictureinpicture/tests/browser_conflictingPips.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/pictureinpicture/tests/browser_conflictingPips.js')
-rw-r--r--toolkit/components/pictureinpicture/tests/browser_conflictingPips.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/toolkit/components/pictureinpicture/tests/browser_conflictingPips.js b/toolkit/components/pictureinpicture/tests/browser_conflictingPips.js
new file mode 100644
index 0000000000..cf9e27e327
--- /dev/null
+++ b/toolkit/components/pictureinpicture/tests/browser_conflictingPips.js
@@ -0,0 +1,46 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * If multiple PiPs try to open in the same place, they should not overlap.
+ */
+add_task(async () => {
+ await BrowserTestUtils.withNewTab(
+ {
+ url: TEST_PAGE,
+ gBrowser,
+ },
+ async browser => {
+ let firstPip = await triggerPictureInPicture(browser, "with-controls");
+ ok(firstPip, "Got first PiP window");
+
+ await ensureMessageAndClosePiP(browser, "with-controls", firstPip, false);
+ info("Closed first PiP to save location");
+
+ let secondPip = await triggerPictureInPicture(browser, "with-controls");
+ ok(secondPip, "Got second PiP window");
+
+ let thirdPip = await triggerPictureInPicture(browser, "no-controls");
+ ok(thirdPip, "Got third PiP window");
+
+ Assert.ok(
+ secondPip.screenX != thirdPip.screenX ||
+ secondPip.screenY != thirdPip.screenY,
+ "Conflicting PiPs were successfully opened in different locations"
+ );
+
+ await ensureMessageAndClosePiP(
+ browser,
+ "with-controls",
+ secondPip,
+ false
+ );
+ info("Second PiP was still open and is now closed");
+
+ await ensureMessageAndClosePiP(browser, "no-controls", thirdPip, false);
+ info("Third PiP was still open and is now closed");
+ }
+ );
+});