blob: 2779fcdb932d7dfae559680cc26573b517236f68 [file] [log] [blame]
<!DOCTYPE html>
<head>
<script src="video-test.js"></script>
<script src="media-file.js"></script>
<script>
function go()
{
nextTest();
}
function nextTest()
{
if (tests.length)
tests.shift()();
else
endTest();
}
function timeoutFor(time)
{
return new Promise(resolve => {
setTimeout(resolve, time);
});
}
function waitFor(eventName)
{
return new Promise(resolve => {
waitForEventOnce(eventName, resolve);
});
}
var tests = [
function initializeTests() {
findMediaElement();
run('internals.setMediaSessionRestrictions("videoaudio", "")');
run('video.src = findMediaFile("video", "content/test")');
waitFor('canplaythrough').then(nextTest);
},
function testPlaybackContinuesWhenInactive() {
run('video.play()');
waitFor('playing').then(() => {
run("internals.applicationWillBecomeInactive()");
timeoutFor(100).then(() => {
testExpected('video.paused', false);
}).then(nextTest);
})
},
function testPlaybackPausesWhenInactive() {
run('internals.setMediaSessionRestrictions("videoaudio", "inactiveprocessplaybackrestricted")');
run('internals.applicationWillBecomeInactive()');
waitFor('pause').then(nextTest);
},
function testPlaybackResumesWhenActive() {
run('internals.applicationDidBecomeActive()');
waitFor('playing').then(nextTest);
},
];
</script>
</head>
<body onload="go()">
<video controls></video>
</body>