70 lines
2.6 KiB
HTML
70 lines
2.6 KiB
HTML
<html>
|
|
<head>
|
|
<script src='media-file.js'></script>
|
|
<script src='video-test.js'></script>
|
|
<script>
|
|
var video1;
|
|
var video2;
|
|
|
|
function start()
|
|
{
|
|
video1 = document.getElementsByTagName('video')[0];
|
|
video2 = document.getElementsByTagName('video')[1];
|
|
|
|
if (window.internals)
|
|
internals.setMockMediaPlaybackTargetPickerEnabled(true);
|
|
|
|
video1.addEventListener('webkitplaybacktargetavailabilitychanged', noSource, true);
|
|
}
|
|
|
|
function noSource(event)
|
|
{
|
|
video1.removeEventListener('webkitplaybacktargetavailabilitychanged', noSource, true);
|
|
|
|
consoleWrite(`EVENT( ${event.type} )`);
|
|
testExpected('event.availability', 'not-available');
|
|
|
|
video1.addEventListener('webkitplaybacktargetavailabilitychanged', haveTarget, true);
|
|
|
|
consoleWrite('<br>** simulate device becoming available');
|
|
if (window.internals)
|
|
internals.setMockMediaPlaybackTargetPickerState('Sleepy TV', 'DeviceAvailable');
|
|
}
|
|
|
|
function haveTarget(event)
|
|
{
|
|
// setMockMediaPlaybackTargetPickerState happens asynchronously in WK2 and a
|
|
// 'webkitplaybacktargetavailabilitychanged' is always sent when an event listener
|
|
// is added, so we may get a "not available" event first.
|
|
if (event.availability == 'not-available')
|
|
return;
|
|
|
|
video1.removeEventListener('webkitplaybacktargetavailabilitychanged', haveTarget, true);
|
|
consoleWrite(`EVENT( ${event.type} )`);
|
|
|
|
consoleWrite('<br>** set src on video that does not have event listener');
|
|
|
|
video2.src = findMediaFile('video', 'content/test');
|
|
video1.addEventListener('webkitplaybacktargetavailabilitychanged', withSource, true);
|
|
}
|
|
|
|
function withSource(event)
|
|
{
|
|
consoleWrite(`EVENT( ${event.type} )`);
|
|
testExpected('event.availability', 'available');
|
|
consoleWrite('');
|
|
endTest();
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
|
|
<body onload='start()'>
|
|
<video controls></video>
|
|
<br>
|
|
<video controls></video>
|
|
<p>Test that 'webkitplaybacktargetavailabilitychanged' event is sent when at least one
|
|
video element has playable media.</p>
|
|
</body>
|
|
</html>
|