67 lines
2.1 KiB
JavaScript
67 lines
2.1 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Tests functionality of arrow keys in Picture-in-Picture window
|
|
* for seeking and volume adjustment
|
|
*/
|
|
add_task(async () => {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
[
|
|
"media.videocontrols.picture-in-picture.keyboard-controls.enabled",
|
|
true,
|
|
],
|
|
],
|
|
});
|
|
let videoID = "with-controls";
|
|
info(`Testing ${videoID} case.`);
|
|
|
|
await BrowserTestUtils.withNewTab(
|
|
{
|
|
url: TEST_PAGE,
|
|
gBrowser,
|
|
},
|
|
async browser => {
|
|
let waitForVideoEvent = eventType => {
|
|
return BrowserTestUtils.waitForContentEvent(browser, eventType, true);
|
|
};
|
|
|
|
await ensureVideosReady(browser);
|
|
|
|
// Open the video in PiP
|
|
let pipWin = await triggerPictureInPicture(browser, videoID);
|
|
ok(pipWin, "Got Picture-in-Picture window.");
|
|
|
|
// run the next tests 4 times to ensure that they work for each PiP button, including none
|
|
for (var i = 0; i < 4; i++) {
|
|
// Try seek forward
|
|
let seekedForwardPromise = waitForVideoEvent("seeked");
|
|
EventUtils.synthesizeKey("KEY_ArrowRight", {}, pipWin);
|
|
ok(await seekedForwardPromise, "The time seeked forward");
|
|
|
|
// Try seek backward
|
|
let seekedBackwardPromise = waitForVideoEvent("seeked");
|
|
EventUtils.synthesizeKey("KEY_ArrowLeft", {}, pipWin);
|
|
ok(await seekedBackwardPromise, "The time seeked backward");
|
|
|
|
// Try volume down
|
|
let volumeDownPromise = waitForVideoEvent("volumechange");
|
|
EventUtils.synthesizeKey("KEY_ArrowDown", {}, pipWin);
|
|
ok(await volumeDownPromise, "The volume went down");
|
|
|
|
// Try volume up
|
|
let volumeUpPromise = waitForVideoEvent("volumechange");
|
|
EventUtils.synthesizeKey("KEY_ArrowUp", {}, pipWin);
|
|
ok(await volumeUpPromise, "The volume went up");
|
|
|
|
// Tab to get to the next button
|
|
EventUtils.synthesizeKey("KEY_Tab", {}, pipWin);
|
|
}
|
|
|
|
await BrowserTestUtils.closeWindow(pipWin);
|
|
}
|
|
);
|
|
});
|