83 lines
3.6 KiB
HTML
83 lines
3.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script src="./resources/getUserMedia-helper.js"></script>
|
|
</head>
|
|
<script>
|
|
|
|
var mediaStream = null;
|
|
var mediaStreamTrack = null;
|
|
var timer = null;
|
|
|
|
window.jsTestIsAsync = true;
|
|
|
|
description("This tests the constructor for the MediaStreamTrackEvent DOM class.");
|
|
|
|
function endTest()
|
|
{
|
|
clearTimeout(timer);
|
|
finishJSTest();
|
|
}
|
|
|
|
function testMediaStreamTrackEvent()
|
|
{
|
|
debug("<br>*** No initializer passed ***");
|
|
shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent')", "TypeError");
|
|
|
|
debug("<br>*** Bubbles and cancelable true, track is missing ***");
|
|
shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true })", "TypeError");
|
|
|
|
debug("<br>*** Bubbles and cancelable true, invalid track ***");
|
|
shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: MediaStreamTrack })", "TypeError");
|
|
|
|
debug("<br>*** Initialize 'track' with a invalid values ***");
|
|
shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: 10 })", "TypeError");
|
|
shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: \'string\' })", "TypeError");
|
|
emptyObject = { };
|
|
shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: emptyObject })", "TypeError");
|
|
shouldThrowErrorName("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: document })", "TypeError");
|
|
|
|
debug("<br>*** Bubbles and cancelable true, valid track ***");
|
|
shouldBe("new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: mediaStreamTrack }).bubbles", "true");
|
|
shouldBe("new MediaStreamTrackEvent('MediaStreamTrackEvent', { bubbles: true, cancelable: true, track: mediaStreamTrack }).cancelable", "true");
|
|
|
|
debug("<br>*** Initialize 'track' with valid track object ***");
|
|
shouldBeNonNull("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: mediaStreamTrack }).track");
|
|
shouldBe("new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: mediaStreamTrack }).track", "mediaStreamTrack");
|
|
|
|
debug("");
|
|
endTest();
|
|
}
|
|
|
|
function gotStream(stream)
|
|
{
|
|
clearTimeout(timer);
|
|
|
|
debug("<br>*** getUserMedia() succeeded, test stream ***");
|
|
mediaStream = stream;
|
|
shouldBeNonNull("mediaStream");
|
|
shouldBeNonNull("mediaStream.getVideoTracks()[0]");
|
|
mediaStreamTrack = mediaStream.getVideoTracks()[0];
|
|
testMediaStreamTrackEvent();
|
|
}
|
|
|
|
function primeTimeout(msg)
|
|
{
|
|
clearTimeout(timer);
|
|
timer = setTimeout(function() { testFailed(msg); endTest() }, 4000);
|
|
}
|
|
|
|
function test()
|
|
{
|
|
primeTimeout("Timeout waiting for getUserMedia()");
|
|
getUserMedia("allow", {audio:true, video:true}, gotStream);
|
|
}
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
|
|
<body onload="test()">
|
|
</body>
|
|
</html>
|