test_mediatrack_parsing_ogg.html (2570B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test events of media track interfaces</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 <script type="text/javascript" src="manifest.js"></script> 8 </head> 9 <body> 10 <pre id="test"> 11 <script class="testbody" type="text/javascript"> 12 13 var manager = new MediaTestManager; 14 15 function localCheckMetadata(msg, e) { 16 ok(msg in gOggTrackInfoResults, "File: " + msg + " is in pre-parsed gOggTrackInfoResults list"); 17 var r = gOggTrackInfoResults[msg]; 18 19 var hasExpectedAudio = r && r.hasOwnProperty("audio_id"); 20 var hasExpectedVideo = r && r.hasOwnProperty("video_id"); 21 22 var hasParsedAudio = e.audioTracks.length >= 1; 23 var hasParsedVideo = e.videoTracks.length >= 1; 24 25 ok(!(hasExpectedAudio ^ hasParsedAudio), "Check availability of expected/parsed audio"); 26 ok(!(hasExpectedVideo ^ hasParsedVideo), "Check availability of expected/parsed video"); 27 if (hasParsedAudio) { 28 is(e.audioTracks.length, 1, "The length of audio track should be 1"); 29 is(e.audioTracks[0].id, r.audio_id, "File: " + msg + ", Audio track id"); 30 is(e.audioTracks[0].kind, r.audio_kind, "File: " + msg + ", Audio track kind"); 31 is(e.audioTracks[0].language, r.audio_language, "File: " + msg + ", Audio track language"); 32 is(e.audioTracks[0].label, r.audio_label, "File: " + msg + ", Audio track label"); 33 } 34 if (hasParsedVideo) { 35 is(e.videoTracks.length, 1, "The length of video track should be 1"); 36 is(e.videoTracks[0].id, r.video_id, "File: " + msg + ", Video track id"); 37 is(e.videoTracks[0].kind, r.video_kind, "File: " + msg + ", Video track kind"); 38 is(e.videoTracks[0].language, r.video_language, "File: " + msg + ", Video track language"); 39 is(e.videoTracks[0].label, r.video_label, "File: " + msg + ", Video track label"); 40 } 41 } 42 43 function startTest(test, token) { 44 var v = document.createElement('video'); 45 v.preload = "metadata"; 46 v.token = token; 47 manager.started(token); 48 49 v.src = test.name; 50 v.name = test.name; 51 52 v.onloadedmetadata = function(evt) { 53 localCheckMetadata(evt.target.name, evt.target); 54 evt.target.finished = true; 55 evt.target.onloadedmetadata = null; 56 removeNodeAndSource(evt.target); 57 manager.finished(evt.target.token); 58 }; 59 60 document.body.appendChild(v); 61 } 62 63 SimpleTest.waitForExplicitFinish(); 64 SpecialPowers.pushPrefEnv({"set": [["media.track.enabled", true]]}, 65 function() { 66 manager.runTests(gMultitrackInfoOggPlayList, startTest); 67 } 68 ); 69 </script> 70 </pre> 71 </body> 72 </html>