Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE HTML>
<html>
<head>
<title>Test events of media track interfaces</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<script type="text/javascript" src="manifest.js"></script>
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
var manager = new MediaTestManager;
function localCheckMetadata(msg, e) {
ok(msg in gOggTrackInfoResults, "File: " + msg + " is in pre-parsed gOggTrackInfoResults list");
var r = gOggTrackInfoResults[msg];
var hasExpectedAudio = r && r.hasOwnProperty("audio_id");
var hasExpectedVideo = r && r.hasOwnProperty("video_id");
var hasParsedAudio = e.audioTracks.length >= 1;
var hasParsedVideo = e.videoTracks.length >= 1;
ok(!(hasExpectedAudio ^ hasParsedAudio), "Check availability of expected/parsed audio");
ok(!(hasExpectedVideo ^ hasParsedVideo), "Check availability of expected/parsed video");
if (hasParsedAudio) {
is(e.audioTracks.length, 1, "The length of audio track should be 1");
is(e.audioTracks[0].id, r.audio_id, "File: " + msg + ", Audio track id");
is(e.audioTracks[0].kind, r.audio_kind, "File: " + msg + ", Audio track kind");
is(e.audioTracks[0].language, r.audio_language, "File: " + msg + ", Audio track language");
is(e.audioTracks[0].label, r.audio_label, "File: " + msg + ", Audio track label");
}
if (hasParsedVideo) {
is(e.videoTracks.length, 1, "The length of video track should be 1");
is(e.videoTracks[0].id, r.video_id, "File: " + msg + ", Video track id");
is(e.videoTracks[0].kind, r.video_kind, "File: " + msg + ", Video track kind");
is(e.videoTracks[0].language, r.video_language, "File: " + msg + ", Video track language");
is(e.videoTracks[0].label, r.video_label, "File: " + msg + ", Video track label");
}
}
function startTest(test, token) {
var v = document.createElement('video');
v.preload = "metadata";
v.token = token;
manager.started(token);
v.src = test.name;
v.name = test.name;
v.onloadedmetadata = function(evt) {
localCheckMetadata(evt.target.name, evt.target);
evt.target.finished = true;
evt.target.onloadedmetadata = null;
removeNodeAndSource(evt.target);
manager.finished(evt.target.token);
};
document.body.appendChild(v);
}
SimpleTest.waitForExplicitFinish();
SpecialPowers.pushPrefEnv({"set": [["media.track.enabled", true]]},
function() {
manager.runTests(gMultitrackInfoOggPlayList, startTest);
}
);
</script>
</pre>
</body>
</html>