| 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 |