1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/media/test/test_trackevent.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,73 @@ 1.4 + 1.5 +<!DOCTYPE HTML> 1.6 +<html> 1.7 +<head> 1.8 + <title>Test for Bug 893309 - Implement TrackEvent</title> 1.9 + <script type="text/javascript" src="/MochiKit/MochiKit.js"></script> 1.10 + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.11 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 1.12 +</head> 1.13 +<body> 1.14 +<p id="display"></p> 1.15 +<div id="content" style="display: none"> 1.16 +</div> 1.17 +<pre id="test"> 1.18 +<script class="testbody" type="text/javascript"> 1.19 +SimpleTest.waitForExplicitFinish(); 1.20 +SpecialPowers.pushPrefEnv({"set": [["media.webvtt.enabled", true]]}, 1.21 + function() { 1.22 + var video = document.createElement("video"); 1.23 + isnot(video.textTracks, undefined, "HTMLMediaElement::TextTrack() property should be available.") 1.24 + ok(typeof video.addTextTrack == "function", "HTMLMediaElement::AddTextTrack() function should be available.") 1.25 + 1.26 + var trackList = video.textTracks; 1.27 + is(trackList.length, 0, "Length should be 0."); 1.28 + 1.29 + var evtTextTrack, numOfCalls = 0, tt; 1.30 + trackList.onaddtrack = function(event) { 1.31 + ok(event instanceof TrackEvent, "Fired event from onaddtrack should be a TrackEvent"); 1.32 + is(event.type, "addtrack", "Event type should be addtrack"); 1.33 + ok(event.isTrusted, "Event should be trusted!"); 1.34 + ok(!event.bubbles, "Event shouldn't bubble!"); 1.35 + ok(!event.cancelable, "Event shouldn't be cancelable!"); 1.36 + 1.37 + evtTextTrack = event.track; 1.38 + tt = textTrack[numOfCalls].track || textTrack[numOfCalls]; 1.39 + 1.40 + ok(tt === evtTextTrack, "Text tracks should be the same"); 1.41 + is(evtTextTrack.label, label[numOfCalls], "Label should be set to "+ label[numOfCalls]); 1.42 + is(evtTextTrack.language, language[numOfCalls], "Language should be " + language[numOfCalls]); 1.43 + is(evtTextTrack.kind, kind[numOfCalls], "Kind should be " + kind[numOfCalls]); 1.44 + 1.45 + if (++numOfCalls == 4) { 1.46 + SimpleTest.finish(); 1.47 + } 1.48 + }; 1.49 + 1.50 + var label = ["Oasis", "Coldplay", "t.A.T.u", ""]; 1.51 + language = ["en-CA", "en-GB", "ru", ""]; 1.52 + kind = ["subtitles", "captions", "chapters", "subtitles"]; 1.53 + 1.54 + var textTrack = new Array(4); 1.55 + for (var i = 0; i < 3; ++i) { 1.56 + textTrack[i] = video.addTextTrack(kind[i], label[i], language[i]); 1.57 + is(trackList.length, i + 1, "Length should be " + (i+1)); 1.58 + } 1.59 + 1.60 + video.src = "seek.webm"; 1.61 + video.preload = "auto"; 1.62 + var trackElement = document.createElement("track"); 1.63 + trackElement.src = "basic.vtt"; 1.64 + textTrack[3] = trackElement; 1.65 + 1.66 + document.getElementById("content").appendChild(video); 1.67 + video.appendChild(trackElement); 1.68 + 1.69 + //TODO: Tests for removetrack event to be added along with bug 882677 1.70 + } 1.71 +); 1.72 +</script> 1.73 +</pre> 1.74 +</body> 1.75 +</html> 1.76 +