Chromium Code Reviews| 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..d409214635119d40db40f8d08e65b16a0be111d0 |
| --- /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) |
| + { |
| + if (kinds.length > 1) { |
|
wolenetz
2014/11/03 21:33:36
Hmm. This logic looks bad if kinds.length == 1 and
wolenetz
2014/11/03 21:39:51
Done.
|
| + 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 + "'"); |
| + } |
| + |
| + // If all of |kinds| are expected to succeed, also test each kind individually. |
| + if (!expectation) |
| + return; |
| + 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 + "'"); |
| + } |
| + } |
| + |
| + 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> |