146 lines
5.0 KiB
HTML
146 lines
5.0 KiB
HTML
<html>
|
|
<head>
|
|
<script src=media-file.js></script>
|
|
<script src=video-test.js></script>
|
|
<script>
|
|
var playCount = 0;
|
|
var pauseCount = 0;
|
|
var seekedCount = 0;
|
|
var playThroughCount = 0;
|
|
var videos = [];
|
|
|
|
function logEvent(evt)
|
|
{
|
|
consoleWrite("EVENT(" + evt.type + ")");
|
|
}
|
|
|
|
function ended(evt)
|
|
{
|
|
logEvent(evt);
|
|
}
|
|
|
|
function seeked(evt)
|
|
{
|
|
logEvent(evt);
|
|
|
|
switch (++seekedCount)
|
|
{
|
|
case 2:
|
|
consoleWrite("<br>** Send a play command, it should go to videos[0] because it was playing most recently.");
|
|
run("internals.postRemoteControlCommand('play')");
|
|
consoleWrite("");
|
|
break;
|
|
}
|
|
}
|
|
|
|
function pause(evt)
|
|
{
|
|
logEvent(evt);
|
|
|
|
switch (++pauseCount)
|
|
{
|
|
case 1:
|
|
testExpected("event.target.id", "two");
|
|
testExpected("videos[0].paused", false);
|
|
testExpected("videos[1].paused", true);
|
|
consoleWrite("<br>** Pause video[0], so they both stop playing...");
|
|
run("videos[0].pause()");
|
|
consoleWrite("");
|
|
break;
|
|
case 2:
|
|
testExpected("event.target.id", "one");
|
|
testExpected("videos[0].paused", true);
|
|
testExpected("videos[1].paused", true);
|
|
|
|
consoleWrite("<br>** Seek so video[1] will pause automatically when playback ends.");
|
|
|
|
var seekTime = (videos[1].duration - .5).toFixed(1);
|
|
run("videos[0].currentTime = 0");
|
|
run("videos[1].currentTime = " + seekTime);
|
|
consoleWrite("");
|
|
break;
|
|
case 3:
|
|
testExpected("event.target.id", "two");
|
|
testExpected("videos[0].paused", false);
|
|
testExpected("videos[1].paused", true);
|
|
|
|
consoleWrite("<br>** Send a pause command, videos[0] is still playing so it should get the command.");
|
|
run("internals.postRemoteControlCommand('pause')");
|
|
consoleWrite("");
|
|
break;
|
|
case 4:
|
|
testExpected("event.target.id", "one");
|
|
testExpected("videos[0].paused", true);
|
|
testExpected("videos[1].paused", true);
|
|
consoleWrite("");
|
|
endTest();
|
|
break;
|
|
case 4:
|
|
}
|
|
}
|
|
|
|
function playing(evt)
|
|
{
|
|
logEvent(evt);
|
|
|
|
switch (++playCount)
|
|
{
|
|
case 2:
|
|
consoleWrite("<br>** Send a pause command, it should go to video[1].");
|
|
run("internals.postRemoteControlCommand('pause')");
|
|
consoleWrite("");
|
|
break;
|
|
case 3:
|
|
testExpected("event.target.id", "one");
|
|
consoleWrite("<br>** Start videos[1], wait for it to pause at duration.");
|
|
run("videos[1].play()");
|
|
consoleWrite("");
|
|
break;
|
|
case 4:
|
|
testExpected("event.target.id", "two");
|
|
consoleWrite("");
|
|
break;
|
|
}
|
|
}
|
|
|
|
function canplaythrough(evt)
|
|
{
|
|
logEvent(evt);
|
|
|
|
if (++playThroughCount < 2)
|
|
return;
|
|
|
|
consoleWrite("<br>** Play both videos, the last one started (video[1]) should get focus...");
|
|
run("videos[0].play()");
|
|
run("videos[1].play()");
|
|
|
|
consoleWrite("");
|
|
}
|
|
|
|
function start()
|
|
{
|
|
if (!window.internals) {
|
|
failTest('This test requires window.internals.');
|
|
return;
|
|
}
|
|
|
|
videos = document.getElementsByTagName('video');
|
|
for (var i = 0; i < videos.length; ++i) {
|
|
video = videos[i];
|
|
video.addEventListener("canplaythrough", canplaythrough);
|
|
video.addEventListener('playing', playing);
|
|
video.addEventListener('pause', pause);
|
|
video.addEventListener('seeked', seeked);
|
|
video.src = findMediaFile("video", "content/test");
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="start()">
|
|
<video controls id="one"></video>
|
|
<video controls id="two"></video>
|
|
<p>Test play and pause with "remote control" interface.</p>
|
|
</body>
|
|
</html>
|