d70bff55c66a30217ff25e698610acaa8c322351
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / media / media-source / mediasource-is-type-supported.html
1 <!DOCTYPE html>
2 <html>
3     <head>
4         <script src="/w3c/resources/testharness.js"></script>
5         <script src="/w3c/resources/testharnessreport.js"></script>
6         <link rel='stylesheet' href='/w3c/resources/testharness.css'>
7     </head>
8     <body>
9         <div id="log"></div>
10         <script>
11           // Generate a distinct test for each type in types
12           function test_type_support(types, expectation, description)
13           {
14               for (var i = 0; i < types.length; ++i) {
15                   test(function()
16                   {
17                       assert_equals(MediaSource.isTypeSupported(types[i]),
18                                     expectation, 'supported');
19                   },  description + ' "' + types[i] + '"');
20               }
21           };
22
23           test_type_support([
24               'video',
25               'video/',
26               'video/webm',
27               'video/webm;',
28               'video/webm;codecs',
29               'video/webm;codecs=',
30               'video/webm;codecs="',
31               'video/webm;codecs=""',
32               'video/webm;codecs=","',
33           ], false, 'Test invalid MIME format');
34
35           test_type_support([
36               'audio/webm;codecs="vp8"',
37               'audio/mp4;codecs="avc1.4d001e"',
38           ], false, 'Test invalid mismatch between major type and codec ID');
39
40           test_type_support([
41               'audio/mp4;codecs="vorbis"',
42               'audio/webm;codecs="mp4a.40.2"',
43               'video/mp4;codecs="vp8"',
44               'video/webm;codecs="mp4a.40.2"',
45               'video/mp4;codecs="vorbis"',
46               'video/webm;codecs="mp4a.40.2"',
47           ], false, 'Test invalid mismatch between minor type and codec ID');
48
49           test_type_support([
50               'audio/mp4;codecs="mp4a"',
51               'audio/mp4;codecs="mp4a.40"',
52               'audio/mp4;codecs="mp4a.40."',
53               'audio/mp4;codecs="mp4a.67.3"'
54           ], false, 'Test invalid codec ID');
55
56           test_type_support([
57               'video/webm;codecs="vp8"',
58               'video/webm;codecs="vorbis"',
59               'video/webm;codecs="vp8,vorbis"',
60               'video/webm;codecs="vorbis, vp8"',
61               'audio/webm;codecs="vorbis"',
62           ], true, 'Test valid WebM type');
63
64           test_type_support([
65               'video/mp4;codecs="avc1.4d001e"', // H.264 Main Profile level 3.0
66               'video/mp4;codecs="avc1.42001e"', // H.264 Baseline Profile level 3.0
67               'audio/mp4;codecs="mp4a.40.2"',   // MPEG4 AAC-LC
68               'audio/mp4;codecs="mp4a.40.5"',   // MPEG4 HE-AAC
69               'audio/mp4;codecs="mp4a.67"',     // MPEG2 AAC-LC
70               'video/mp4;codecs="mp4a.40.2"',
71               'video/mp4;codecs="avc1.4d001e,mp4a.40.2"',
72               'video/mp4;codecs="mp4a.40.2 , avc1.4d001e "',
73               'video/mp4;codecs="avc1.4d001e,mp4a.40.5"',
74           ], true, 'Test valid MP4 type');
75         </script>
76     </body>
77 </html>