blob: ca635632bb6ba8ffeec6a7538039f60eda858251 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test.js"></script>
</head>
<body>
<script>
window.jsTestIsAsync = true;
description("This tests the constructor for the TrackEvent DOM class.");
function test()
{
// Make sure the track actually loaded.
shouldBe("trackElement.track.readyState", "TextTrack.LOADED", true);
debug("<br>*** No initializer passed ***");
shouldBe("new TrackEvent('TrackEvent').bubbles", "false");
shouldBe("new TrackEvent('TrackEvent').cancelable", "false");
shouldBeNull("new TrackEvent('TrackEvent').track");
debug("<br>*** Bubbles and cancelable true, track is missing ***");
shouldBe("new TrackEvent('TrackEvent', { bubbles: true, cancelable: true }).bubbles", "true");
shouldBe("new TrackEvent('TrackEvent', { bubbles: true, cancelable: true }).cancelable", "true");
shouldBeNull("new TrackEvent('TrackEvent', { bubbles: true, cancelable: true }).track");
debug("<br>*** Bubbles and cancelable true, invalid track ***");
shouldThrow("new TrackEvent('TrackEvent', { bubbles: true, cancelable: true, track: HTMLTrackElement }).bubbles");
shouldThrow("new TrackEvent('TrackEvent', { bubbles: true, cancelable: true, track: HTMLTrackElement }).cancelable");
shouldThrow("new TrackEvent('TrackEvent', { bubbles: true, cancelable: true, track: HTMLTrackElement }).track");
debug("<br>*** Initialize 'track' with a invalid values ***");
shouldThrow("new TrackEvent('TrackEvent', { track: 10 }).track");
shouldThrow("new TrackEvent('TrackEvent', { track: \'string\' }).track");
emptyObject = { };
shouldThrow("new TrackEvent('TrackEvent', { track: emptyObject }).track");
shouldThrow("new TrackEvent('TrackEvent', { track: document }).track");
debug("<br>*** Bubbles and cancelable true, valid track ***");
shouldBe("new TrackEvent('TrackEvent', { bubbles: true, cancelable: true, track: trackElement.track }).bubbles", "true");
shouldBe("new TrackEvent('TrackEvent', { bubbles: true, cancelable: true, track: trackElement.track }).cancelable", "true");
shouldBe("new TrackEvent('TrackEvent', { track: trackElement.track }).track", "trackElement.track");
debug("<br>*** Initialize 'track' with valid track object ***");
shouldBe("new TrackEvent('TrackEvent', { track: trackElement.track }).track", "trackElement.track");
debug("");
finishJSTest();
}
video = document.createElement('video');
document.body.appendChild(video);
trackElement = document.createElement('track');
video.appendChild(trackElement);
trackElement.track.mode = "hidden";
trackElement.addEventListener('load', test);
trackElement.src='data:text/vtt,WEBVTT FILE \r\r1\r00:00:00.000 --> 00:00:30.500\ronly one caption';
</script>
</body>
</html>