| Index: LayoutTests/http/tests/media/media-source/mediasource-trackdefault.html
|
| diff --git a/LayoutTests/http/tests/media/media-source/mediasource-trackdefault.html b/LayoutTests/http/tests/media/media-source/mediasource-trackdefault.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..47d26769d6210635d55775541a9f43df5573acfe
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/media/media-source/mediasource-trackdefault.html
|
| @@ -0,0 +1,101 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| + <head>
|
| + <script src="/w3c/resources/testharness.js"></script>
|
| + <script src="/w3c/resources/testharnessreport.js"></script>
|
| +
|
| + <link rel='stylesheet' href='/w3c/resources/testharness.css'>
|
| + </head>
|
| + <body>
|
| + <div id="log"></div>
|
| + <script>
|
| + function checkConstructionSucceeds(type, language, label, kinds, byteStreamTrackID)
|
| + {
|
| + var trackDefault = new TrackDefault(type, language, label, kinds, byteStreamTrackID);
|
| + assert_equals(trackDefault.type, type, "type()");
|
| + assert_equals(trackDefault.language, language, "language()");
|
| + assert_equals(trackDefault.label, label, "label()");
|
| + assert_equals(trackDefault.byteStreamTrackID, byteStreamTrackID, "byteStreamTrackID()");
|
| + assert_equals(trackDefault.kinds.length, kinds.length, "kinds().length");
|
| + for (var i = 0; i < kinds.length; ++i) {
|
| + assert_equals(trackDefault.kinds[i], kinds[i], "kinds() contents");
|
| + }
|
| + }
|
| +
|
| + function checkConstructionFails(type, language, label, kinds, byteStreamTrackID)
|
| + {
|
| + var trackDefault = null;
|
| + assert_throws("InvalidAccessError",
|
| + function() { trackDefault = new TrackDefault(type, language, label, kinds, byteStreamTrackID); },
|
| + "TrackDefault construction threw an exception");
|
| + }
|
| +
|
| + function trackDefaultConstructionTest(type, language, label, kinds, byteStreamTrackID, expectation, description)
|
| + {
|
| + // Test each kind, one by one.
|
| + for (var i = 0; i < kinds.length; ++i) {
|
| + test(function()
|
| + {
|
| + if (expectation) {
|
| + checkConstructionSucceeds(type, language, label, new Array(kinds[i]), byteStreamTrackID);
|
| + } else {
|
| + checkConstructionFails(type, language, label, new Array(kinds[i]), byteStreamTrackID);
|
| + }
|
| + }, description + ": type '" + type + "', language '" + language + "', label '" + label + "', kind '" + kinds[i] + "', byteStreamTrackID '" + byteStreamTrackID + "'");
|
| + }
|
| +
|
| + // Also test all kinds at once, if more than one are supplied.
|
| + if (kinds.length > 1) {
|
| + test(function()
|
| + {
|
| + if (expectation)
|
| + checkConstructionSucceeds(type, language, label, kinds, byteStreamTrackID);
|
| + else
|
| + checkConstructionFails(type, language, label, kinds, byteStreamTrackID);
|
| + }, description + ": type '" + type + "', language '" + language + "', label '" + label + "', multiple kinds, byteStreamTrackID '" + byteStreamTrackID + "'");
|
| + }
|
| + }
|
| +
|
| + var VALID_AUDIO_TRACK_KINDS = [
|
| + "alternative",
|
| + "descriptions",
|
| + "main",
|
| + "main-desc",
|
| + "translation",
|
| + "commentary",
|
| + "",
|
| + ];
|
| +
|
| + var VALID_VIDEO_TRACK_KINDS = [
|
| + "alternative",
|
| + "captions",
|
| + "main",
|
| + "sign",
|
| + "subtitles",
|
| + "commentary",
|
| + "",
|
| + ];
|
| +
|
| + var VALID_TEXT_TRACK_KINDS = [
|
| + "subtitles",
|
| + "captions",
|
| + "descriptions",
|
| + "chapters",
|
| + "metadata",
|
| + ];
|
| +
|
| +
|
| + trackDefaultConstructionTest("audio", "en-US", "audio label", VALID_AUDIO_TRACK_KINDS, "1", true, "Test valid audio kinds");
|
| +
|
| + trackDefaultConstructionTest("video", "en-US", "video label", VALID_VIDEO_TRACK_KINDS, "1", true, "Test valid video kinds");
|
| +
|
| + trackDefaultConstructionTest("text", "en-US", "text label", VALID_TEXT_TRACK_KINDS, "1", true, "Test valid text kinds");
|
| +
|
| + trackDefaultConstructionTest("audio", "en-US", "audio label", VALID_VIDEO_TRACK_KINDS, "1", false, "Test mixed valid and invalid audio kinds");
|
| +
|
| + trackDefaultConstructionTest("video", "en-US", "video label", VALID_AUDIO_TRACK_KINDS, "1", false, "Test mixed valid and invalid video kinds");
|
| +
|
| + trackDefaultConstructionTest("text", "en-US", "text label", VALID_VIDEO_TRACK_KINDS, "1", false, "Test mixed valid and invalid text kinds");
|
| + </script>
|
| + </body>
|
| +</html>
|
|
|