Bug 1281418 - Add testcase for changing the src of TrackElement. r=rillian
MozReview-Commit-ID: A7QB9ELEfp3
--- a/dom/media/test/mochitest.ini
+++ b/dom/media/test/mochitest.ini
@@ -850,16 +850,18 @@ tags = webvtt
tags = webvtt
[test_texttrackregion.html]
tags = webvtt
[test_texttrack_moz.html]
tags = webvtt
[test_timeupdate_small_files.html]
[test_trackelementevent.html]
tags = webvtt
+[test_trackelementsrc.html]
+tags = webvtt
[test_trackevent.html]
tags = webvtt
[test_unseekable.html]
skip-if = toolkit == 'gonk' # bug 1128845 on gonk
[test_video_to_canvas.html]
[test_video_in_audio_element.html]
[test_videoDocumentTitle.html]
[test_VideoPlaybackQuality.html]
new file mode 100644
--- /dev/null
+++ b/dom/media/test/test_trackelementsrc.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1281418 - Change the src attribue for TrackElement.</title>
+ <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
+ <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<p id="display"></p>
+<div id="content" style="display: none">
+</div>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+SimpleTest.waitForExplicitFinish();
+
+SpecialPowers.pushPrefEnv({"set": [["media.webvtt.enabled", true],
+ ["media.webvtt.regions.enabled", true]]}, function() {
+
+var video = document.createElement("video");
+video.src = "seek.webm";
+video.preload = "metadata";
+var trackElement = document.createElement("track");
+trackElement.src = "basic.vtt";
+trackElement.default = true;
+
+document.getElementById("content").appendChild(video);
+video.appendChild(trackElement);
+
+video.addEventListener("loadedmetadata", function metadata() {
+ if (trackElement.readyState <= 1) {
+ return setTimeout(metadata, 0);
+ }
+ is(video.textTracks.length, 1, "Length should be 1.");
+ is(video.textTracks[0].cues.length, 6, "Cue length should be 6.");
+
+ trackElement.src = "sequential.vtt";
+ trackElement.track.mode = "showing";
+ video.play();
+});
+
+video.addEventListener("ended", function end() {
+ is(trackElement.readyState, 2, "readyState should be 2.")
+ is(video.textTracks.length, 1, "Length should be 1.");
+ is(video.textTracks[0].cues.length, 3, "Cue length should be 3.");
+ SimpleTest.finish();
+});
+
+});
+</script>
+</pre>
+</body>
+</html>
+