OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <title>MediaMetadata interface</title> | 2 <title>MediaMetadata interface</title> |
3 <script src="../../resources/testharness.js"></script> | 3 <script src="../../resources/testharness.js"></script> |
4 <script src="../../resources/testharnessreport.js"></script> | 4 <script src="../../resources/testharnessreport.js"></script> |
5 <script> | 5 <script> |
6 | 6 |
7 test(function() { | 7 test(function() { |
8 var metadata = new MediaMetadata({}); | 8 var metadata = new MediaMetadata({}); |
9 assert_not_equals(metadata, null); | 9 assert_not_equals(metadata, null); |
10 | 10 |
11 assert_throws(new TypeError(), _ => new MediaMetadata('foobar')); | 11 assert_throws(new TypeError(), _ => new MediaMetadata('foobar')); |
12 assert_throws(new TypeError(), _ => new MediaMetadata(42)); | 12 assert_throws(new TypeError(), _ => new MediaMetadata(42)); |
13 }, 'Test that MediaMetadata is constructed using a dictionary'); | 13 }, 'Test that MediaMetadata is constructed using a dictionary'); |
14 | 14 |
15 test(function() { | 15 test(function() { |
16 var metadata = new MediaMetadata(); | 16 var metadata = new MediaMetadata(); |
17 assert_not_equals(metadata, null); | 17 assert_not_equals(metadata, null); |
18 }, "Test that MediaMetadata constructor can take no parameter"); | 18 }, "Test that MediaMetadata constructor can take no parameter"); |
19 | 19 |
20 test(function() { | 20 test(function() { |
| 21 var image1 = { src: 'src1', sizes: 'sizes1', type: 'type1' }; |
| 22 var image2 = { src: 'src2', sizes: 'sizes2', type: 'type2'}; |
21 var metadata = new MediaMetadata({ | 23 var metadata = new MediaMetadata({ |
22 title: 'foo', album: 'bar', artist: 'plop', | 24 title: 'foo', album: 'bar', artist: 'plop', artwork: [ image1, image2 ] |
23 artwork: [ { src: 'src1', sizes: 'sizes1', type: 'type1'}, | 25 }); |
24 { src: 'src2', sizes: 'sizes2', type: 'type2'} ] }); | 26 |
25 assert_equals(metadata.title, 'foo'); | 27 assert_equals(metadata.title, 'foo'); |
26 assert_equals(metadata.album, 'bar'); | 28 assert_equals(metadata.album, 'bar'); |
27 assert_equals(metadata.artist, 'plop'); | 29 assert_equals(metadata.artist, 'plop'); |
28 assert_equals(2, metadata.artwork.length); | 30 assert_equals(metadata.artwork.length, 2); |
29 | |
30 var image1 = new MediaImage({ src: 'src1', sizes: 'sizes1', type: 'type1'}); | |
31 var image2 = new MediaImage({ src: 'src2', sizes: 'sizes2', type: 'type2'}); | |
32 assert_equals(metadata.artwork[0].src, image1.src); | 31 assert_equals(metadata.artwork[0].src, image1.src); |
33 assert_equals(metadata.artwork[0].sizes, image1.sizes); | 32 assert_equals(metadata.artwork[0].sizes, image1.sizes); |
34 assert_equals(metadata.artwork[0].type, image1.type); | 33 assert_equals(metadata.artwork[0].type, image1.type); |
35 assert_equals(metadata.artwork[1].src, image2.src); | 34 assert_equals(metadata.artwork[1].src, image2.src); |
36 assert_equals(metadata.artwork[1].sizes, image2.sizes); | 35 assert_equals(metadata.artwork[1].sizes, image2.sizes); |
37 assert_equals(metadata.artwork[1].type, image2.type); | 36 assert_equals(metadata.artwork[1].type, image2.type); |
38 }, 'Test the different values allowed in MediaMetadata init dictionary'); | 37 }, 'Test the different values allowed in MediaMetadata init dictionary'); |
39 | 38 |
40 test(function() { | 39 test(function() { |
41 var metadata = new MediaMetadata({}); | 40 var metadata = new MediaMetadata({}); |
(...skipping 24 matching lines...) Expand all Loading... |
66 | 65 |
67 metadata.title = 'something else'; | 66 metadata.title = 'something else'; |
68 assert_equals(metadata.title, 'something else'); | 67 assert_equals(metadata.title, 'something else'); |
69 | 68 |
70 metadata.album = 'other value'; | 69 metadata.album = 'other value'; |
71 assert_equals(metadata.album, 'other value'); | 70 assert_equals(metadata.album, 'other value'); |
72 | 71 |
73 metadata.artist = 'someone else'; | 72 metadata.artist = 'someone else'; |
74 assert_equals(metadata.artist, 'someone else'); | 73 assert_equals(metadata.artist, 'someone else'); |
75 | 74 |
76 var image = new MediaImage({ src: 'http://example.com/', sizes: '40x40', typ
e: 'image/png' }); | 75 var image = { src: 'http://example.com/', sizes: '40x40', type: 'image/png'
}; |
77 metadata.artwork = [ image ]; | 76 metadata.artwork = [ image ]; |
78 assert_equals(metadata.artwork.length, 1); | 77 assert_equals(metadata.artwork.length, 1); |
79 assert_equals(metadata.artwork[0].src, 'http://example.com/'); | 78 assert_equals(metadata.artwork[0].src, 'http://example.com/'); |
80 assert_equals(metadata.artwork[0].sizes, '40x40'); | 79 assert_equals(metadata.artwork[0].sizes, '40x40'); |
81 assert_equals(metadata.artwork[0].type, 'image/png'); | 80 assert_equals(metadata.artwork[0].type, 'image/png'); |
82 }, "Test that MediaMetadata is read/write"); | 81 }, "Test that MediaMetadata is read/write"); |
83 | 82 |
| 83 test(function() { |
| 84 var metadata = new MediaMetadata({ artwork: [ { src: 'foo' } ] }); |
| 85 assert_throws(new TypeError(), _ => { |
| 86 metadata.artwork.push({ |
| 87 src: 'http://example.com/', sizes: '40x40', type: 'image/png', |
| 88 }); |
| 89 }); |
| 90 |
| 91 metadata.artwork[0].src = 'bar'; |
| 92 assert_equals(metadata.artwork[0].src, 'foo'); |
| 93 }, "Test that MediaMetadat.artwork can't be modified"); |
| 94 |
| 95 test(function() { |
| 96 var metadata = new MediaMetadata({ artwork: [{ |
| 97 src: 'http://example.com/', sizes: '40x40', type: 'image/png', |
| 98 some_other_value: 'foo', |
| 99 }]}); |
| 100 assert_equals(metadata.artwork[0].src, 'http://example.com/'); |
| 101 assert_equals(metadata.artwork[0].sizes, '40x40'); |
| 102 assert_equals(metadata.artwork[0].type, 'image/png'); |
| 103 assert_false('some_other_value' in metadata.artwork[0]); |
| 104 |
| 105 metadata.artwork[0].something_else = 'bar'; |
| 106 assert_false('something_else' in metadata.artwork[0]); |
| 107 }, "Test that MediaMetadata.artwork will not expose unknown properties"); |
| 108 |
84 </script> | 109 </script> |
OLD | NEW |