78 lines
2.0 KiB
HTML
78 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="media-file.js"></script>
|
|
<script src="video-test.js"></script>
|
|
<script>
|
|
function go()
|
|
{
|
|
runNextTest();
|
|
}
|
|
|
|
function runNextTest()
|
|
{
|
|
if (tests.length)
|
|
tests.shift()();
|
|
else
|
|
endTest();
|
|
}
|
|
|
|
function testPlaysInline(requiresPlaysInline, hasPlaysInline, expectedDisplayingFullscreen)
|
|
{
|
|
run('internals.settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute(' + requiresPlaysInline + ')');
|
|
video = media = document.createElement('video');
|
|
document.body.appendChild(video);
|
|
video.controls = true;
|
|
video.src = findMediaFile('video', 'content/test');
|
|
run('video.playsInline = ' + hasPlaysInline);
|
|
waitForEventOnce('canplaythrough', () => {
|
|
runWithKeyDown(() => {
|
|
run('video.play()');
|
|
});
|
|
})
|
|
waitForEventOnce('playing', async () => {
|
|
if (expectedDisplayingFullscreen) {
|
|
await testExpectedEventually('internals.isChangingPresentationMode(video)', false);
|
|
|
|
// The GTK/WPE ports take a while to complete the fullscreen change. Wait until the next mainloop iteration.
|
|
await new Promise(resolve => setTimeout(resolve, 0));
|
|
}
|
|
testExpected('video.webkitDisplayingFullscreen', expectedDisplayingFullscreen);
|
|
document.body.removeChild(video);
|
|
runNextTest();
|
|
});
|
|
}
|
|
|
|
function testRequiresPlaysInlineAndDoesntHaveIt()
|
|
{
|
|
testPlaysInline(true, false, true);
|
|
}
|
|
|
|
function testRequiresPlaysInlineAndDoesHaveIt()
|
|
{
|
|
testPlaysInline(true, true, false);
|
|
}
|
|
|
|
function testDoesNotRequirePlaysInlineAndDoesntHaveIt()
|
|
{
|
|
testPlaysInline(false, false, false);
|
|
}
|
|
|
|
function testDoesNotRequirePlaysInlineAndDoesHaveIt()
|
|
{
|
|
testPlaysInline(false, true, false);
|
|
}
|
|
|
|
var tests = [
|
|
testRequiresPlaysInlineAndDoesntHaveIt,
|
|
testRequiresPlaysInlineAndDoesHaveIt,
|
|
testDoesNotRequirePlaysInlineAndDoesntHaveIt,
|
|
testDoesNotRequirePlaysInlineAndDoesHaveIt,
|
|
];
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="go()">
|
|
</body>
|
|
</html>
|