Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: LayoutTests/http/tests/media/media-source/mediasource-trackdefault.html

Issue 1110223002: Use and add layout tests for BCP 47 language tag syntax validation. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | LayoutTests/http/tests/media/media-source/mediasource-trackdefault-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="/w3c/resources/testharness.js"></script> 4 <script src="/w3c/resources/testharness.js"></script>
5 <script src="/w3c/resources/testharnessreport.js"></script> 5 <script src="/w3c/resources/testharnessreport.js"></script>
6 6
7 <link rel='stylesheet' href='/w3c/resources/testharness.css'> 7 <link rel='stylesheet' href='/w3c/resources/testharness.css'>
8 </head> 8 </head>
9 <body> 9 <body>
10 <div id="log"></div> 10 <div id="log"></div>
11 <script> 11 <script>
12 function checkConstructionSucceeds(type, language, label, kinds, byt eStreamTrackID) 12 function checkConstructionSucceeds(type, language, label, kinds, byt eStreamTrackID)
13 { 13 {
14 var trackDefault = new TrackDefault(type, language, label, kinds , byteStreamTrackID); 14 var trackDefault = new TrackDefault(type, language, label, kinds , byteStreamTrackID);
15 assert_equals(trackDefault.type, type, "type"); 15 assert_equals(trackDefault.type, type, "type");
16 assert_equals(trackDefault.language, language, "language"); 16 assert_equals(trackDefault.language, language, "language");
17 assert_equals(trackDefault.label, label, "label"); 17 assert_equals(trackDefault.label, label, "label");
18 assert_equals(trackDefault.byteStreamTrackID, byteStreamTrackID, "byteStreamTrackID"); 18 assert_equals(trackDefault.byteStreamTrackID, byteStreamTrackID, "byteStreamTrackID");
19 assert_array_equals(trackDefault.kinds, kinds, "kinds"); 19 assert_array_equals(trackDefault.kinds, kinds, "kinds");
20 } 20 }
21 21
22 function checkConstructionFails(type, language, label, kinds, byteSt reamTrackID) 22 function checkConstructionFails(type, language, label, kinds, byteSt reamTrackID, expectedException)
23 { 23 {
24 assert_throws(new TypeError(), 24 assert_throws(expectedException,
25 function() { new TrackDefault(type, language, label, kinds, byteStreamTrackID); }, 25 function() { new TrackDefault(type, language, label, kinds, byteStreamTrackID); },
26 "TrackDefault construction threw an exception"); 26 "TrackDefault construction threw an exception");
27 } 27 }
28 28
29 function trackDefaultConstructionTest(type, language, label, kinds, byteStreamTrackID, expectation, description) 29 function trackDefaultConstructionTest(type, language, label, kinds, byteStreamTrackID, expectation, description)
30 { 30 {
31 test(function() 31 test(function()
32 { 32 {
33 if (expectation) 33 if (expectation)
34 checkConstructionSucceeds(type, language, label, kinds, byteStreamTrackID); 34 checkConstructionSucceeds(type, language, label, kinds, byteStreamTrackID);
35 else 35 else
36 checkConstructionFails(type, language, label, kinds, byt eStreamTrackID); 36 checkConstructionFails(type, language, label, kinds, byt eStreamTrackID, new TypeError());
37 }, description + ": type '" + type + "', language '" + language + "', label '" + label + "', multiple kinds, byteStreamTrackID '" + byteStreamTr ackID + "'"); 37 }, description + ": type '" + type + "', language '" + language + "', label '" + label + "', multiple kinds, byteStreamTrackID '" + byteStreamTr ackID + "'");
38 38
39 // If all of |kinds| are expected to succeed, also test each kin d individually. 39 // If all of |kinds| are expected to succeed, also test each kin d individually.
40 if (!expectation || kinds.length <= 1) 40 if (!expectation || kinds.length <= 1)
41 return; 41 return;
42 for (var i = 0; i < kinds.length; ++i) { 42 for (var i = 0; i < kinds.length; ++i) {
43 test(function() 43 test(function()
44 { 44 {
45 checkConstructionSucceeds(type, language, label, new Arr ay(kinds[i]), byteStreamTrackID); 45 checkConstructionSucceeds(type, language, label, new Arr ay(kinds[i]), byteStreamTrackID);
46 }, description + ": type '" + type + "', language '" + langu age + "', label '" + label + "', kind '" + kinds[i] + "', byteStreamTrackID '" + byteStreamTrackID + "'"); 46 }, description + ": type '" + type + "', language '" + langu age + "', label '" + label + "', kind '" + kinds[i] + "', byteStreamTrackID '" + byteStreamTrackID + "'");
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 trackDefaultConstructionTest("audio", "en-US", "audio label", VALID_ VIDEO_TRACK_KINDS, "1", false, "Test mixed valid and invalid audio kinds"); 84 trackDefaultConstructionTest("audio", "en-US", "audio label", VALID_ VIDEO_TRACK_KINDS, "1", false, "Test mixed valid and invalid audio kinds");
85 85
86 trackDefaultConstructionTest("video", "en-US", "video label", VALID_ AUDIO_TRACK_KINDS, "1", false, "Test mixed valid and invalid video kinds"); 86 trackDefaultConstructionTest("video", "en-US", "video label", VALID_ AUDIO_TRACK_KINDS, "1", false, "Test mixed valid and invalid video kinds");
87 87
88 trackDefaultConstructionTest("text", "en-US", "text label", VALID_VI DEO_TRACK_KINDS, "1", false, "Test mixed valid and invalid text kinds"); 88 trackDefaultConstructionTest("text", "en-US", "text label", VALID_VI DEO_TRACK_KINDS, "1", false, "Test mixed valid and invalid text kinds");
89 89
90 trackDefaultConstructionTest("invalid type", "en-US", "label", VALID _AUDIO_TRACK_KINDS, "1", false, "Test invalid 'type' parameter type passed to Tr ackDefault constructor"); 90 trackDefaultConstructionTest("invalid type", "en-US", "label", VALID _AUDIO_TRACK_KINDS, "1", false, "Test invalid 'type' parameter type passed to Tr ackDefault constructor");
91 91
92 test(function() 92 test(function()
93 { 93 {
94 checkConstructionFails("audio", "en-US", "label", "this is not a valid sequence", "1"); 94 checkConstructionFails("audio", "invalid language", "audio label ", VALID_AUDIO_TRACK_KINDS, "1", 'InvalidAccessError');
95
96 }, "Test invalid 'language' parameter syntax passed to TrackDefault constructor");
97
98 test(function()
99 {
100 checkConstructionFails("audio", "en-US", "label", "this is not a valid sequence", "1", new TypeError());
95 }, "Test invalid 'kinds' parameter type passed to TrackDefault const ructor"); 101 }, "Test invalid 'kinds' parameter type passed to TrackDefault const ructor");
96 102
97 test(function() 103 test(function()
98 { 104 {
99 var trackDefault = new TrackDefault("audio", "en-US", "label", V ALID_AUDIO_TRACK_KINDS, "1"); 105 var trackDefault = new TrackDefault("audio", "en-US", "label", V ALID_AUDIO_TRACK_KINDS, "1");
100 var kinds = trackDefault.kinds; 106 var kinds = trackDefault.kinds;
101 kinds[0] = "invalid kind"; 107 kinds[0] = "invalid kind";
102 assert_equals(kinds[0], "invalid kind", "local kinds is updated" ); 108 assert_equals(kinds[0], "invalid kind", "local kinds is updated" );
103 assert_equals(VALID_AUDIO_TRACK_KINDS[0], "alternative", "local original kinds unchanged"); 109 assert_equals(VALID_AUDIO_TRACK_KINDS[0], "alternative", "local original kinds unchanged");
104 assert_array_equals(trackDefault.kinds, VALID_AUDIO_TRACK_KINDS, "trackDefault kinds unchanged"); 110 assert_array_equals(trackDefault.kinds, VALID_AUDIO_TRACK_KINDS, "trackDefault kinds unchanged");
105 }, "Test updating the retval of TrackDefault.kinds does not modify T rackDefault.kinds"); 111 }, "Test updating the retval of TrackDefault.kinds does not modify T rackDefault.kinds");
106 112
107 </script> 113 </script>
108 </body> 114 </body>
109 </html> 115 </html>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/http/tests/media/media-source/mediasource-trackdefault-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698