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

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/mediasession/mediametadata.html

Issue 2674793003: Media Session: move all tests but mojo/ ones to external/wpt/. (Closed)
Patch Set: comments Created 3 years, 10 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
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>MediaMetadata interface</title>
3 <script src=/resources/testharness.js></script>
4 <script src="/resources/testharnessreport.js"></script>
5 <script>
6
7 test(function() {
8 var metadata = new MediaMetadata({});
9 navigator.mediaSession.metadata = metadata;
10 assert_equals(navigator.mediaSession.metadata, metadata);
11 }, "Test that mediaSession.metadata is properly set");
12
13 test(function() {
14 var metadata = new MediaMetadata({});
15 navigator.mediaSession.metadata = metadata;
16 metadata.title = 'foo';
17 assert_equals(navigator.mediaSession.metadata.title, 'foo');
18 }, "Test that changes to metadata propagate properly");
19
20 test(function() {
21 var metadata = new MediaMetadata({});
22 navigator.mediaSession.metadata = metadata;
23 navigator.mediaSession.metadata = null;
24 assert_equals(navigator.mediaSession.metadata, null);
25 }, "Test that resetting metadata to null is reflected");
26
27 test(function() {
28 var metadata = new MediaMetadata({});
29 assert_not_equals(metadata, null);
30
31 assert_throws(new TypeError(), _ => new MediaMetadata('foobar'));
32 assert_throws(new TypeError(), _ => new MediaMetadata(42));
33 }, 'Test that MediaMetadata is constructed using a dictionary');
34
35 test(function() {
36 var metadata = new MediaMetadata();
37 assert_not_equals(metadata, null);
38 }, "Test that MediaMetadata constructor can take no parameter");
39
40 test(function() {
41 var image1 = { src: 'http://example.com/1', sizes: 'sizes1', type: 'type1' };
42 var image2 = { src: 'http://example.com/2', sizes: 'sizes2', type: 'type2' };
43 var metadata = new MediaMetadata({
44 title: 'foo', album: 'bar', artist: 'plop', artwork: [ image1, image2 ]
45 });
46
47 assert_equals(metadata.title, 'foo');
48 assert_equals(metadata.album, 'bar');
49 assert_equals(metadata.artist, 'plop');
50 assert_equals(metadata.artwork.length, 2);
51 assert_equals(metadata.artwork[0].src, image1.src);
52 assert_equals(metadata.artwork[0].sizes, image1.sizes);
53 assert_equals(metadata.artwork[0].type, image1.type);
54 assert_equals(metadata.artwork[1].src, image2.src);
55 assert_equals(metadata.artwork[1].sizes, image2.sizes);
56 assert_equals(metadata.artwork[1].type, image2.type);
57 }, 'Test the different values allowed in MediaMetadata init dictionary');
58
59 test(function() {
60 var metadata = new MediaMetadata({});
61 assert_equals(metadata.title, '');
62 assert_equals(metadata.artist, '');
63 assert_equals(metadata.album, '');
64 assert_equals(0, metadata.artwork.length);
65 }, 'Test the default values for MediaMetadata with empty init dictionary');
66
67 test(function() {
68 var metadata = new MediaMetadata();
69 assert_equals(metadata.title, '');
70 assert_equals(metadata.artist, '');
71 assert_equals(metadata.album, '');
72 assert_equals(0, metadata.artwork.length);
73 }, 'Test the default values for MediaMetadata with no init dictionary');
74
75 test(function() {
76 var metadata = new MediaMetadata({ randomValueThatWillNotBeAdded: '... hopeful ly ;)' });
77 assert_equals(metadata.randomValueThatWillNotBeAdded, undefined);
78 }, 'Test that passing unknown values to the dictionary is a no-op');
79
80 test(function() {
81 var image1 = { src: 'http://example.com/1', sizes: 'sizes1', type: 'type1' };
82 var image2 = { src: 'http://example.com/2', sizes: 'sizes2', type: 'type2' };
83 var metadata = new MediaMetadata({
84 title: 'foo', album: 'bar', artist: 'plop', artwork: [ image1, image2 ]
85 });
86
87 metadata.title = 'something else';
88 assert_equals(metadata.title, 'something else');
89
90 metadata.album = 'other value';
91 assert_equals(metadata.album, 'other value');
92
93 metadata.artist = 'someone else';
94 assert_equals(metadata.artist, 'someone else');
95
96 var image = { src: 'http://example.com/', sizes: '40x40', type: 'image/png' };
97 metadata.artwork = [ image ];
98 assert_equals(metadata.artwork.length, 1);
99 assert_equals(metadata.artwork[0].src, 'http://example.com/');
100 assert_equals(metadata.artwork[0].sizes, '40x40');
101 assert_equals(metadata.artwork[0].type, 'image/png');
102 }, "Test that MediaMetadata is read/write");
103
104 test(function() {
105 var metadata = new MediaMetadata({ artwork: [ { src: 'http://foo.com/' } ] });
106 assert_throws(new TypeError(), _ => {
107 metadata.artwork.push({
108 src: 'http://example.com/', sizes: '40x40', type: 'image/png',
109 });
110 });
111
112 metadata.artwork[0].src = 'bar';
113 assert_equals(metadata.artwork[0].src, 'http://foo.com/');
114 }, "Test that MediaMetadat.artwork can't be modified");
115
116 test(function() {
117 var metadata = new MediaMetadata({ artwork: [{
118 src: 'http://example.com/', sizes: '40x40', type: 'image/png',
119 some_other_value: 'foo',
120 }]});
121 assert_equals(metadata.artwork[0].src, 'http://example.com/');
122 assert_equals(metadata.artwork[0].sizes, '40x40');
123 assert_equals(metadata.artwork[0].type, 'image/png');
124 assert_false('some_other_value' in metadata.artwork[0]);
125
126 metadata.artwork[0].something_else = 'bar';
127 assert_false('something_else' in metadata.artwork[0]);
128 }, "Test that MediaMetadata.artwork will not expose unknown properties");
129
130 test(function() {
131 var metadata = new MediaMetadata({ artwork: [
132 { src: 'http://example.com/1', sizes: '40x40', type: 'image/png' },
133 { src: 'http://example.com/2', sizes: '40x40', type: 'image/png' },
134 ]});
135
136 assert_true(Object.isFrozen(metadata.artwork));
137 for (var i = 0; i < metadata.artwork.length; ++i)
138 assert_true(Object.isFrozen(metadata.artwork[i]));
139 }, "Test that MediaMetadata.artwork is Frozen");
140
141 test(function() {
142 var metadata = new MediaMetadata({ artwork: [
143 { src: 'http://example.com', sizes: '40x40', type: 'image/png' },
144 { src: '../foo', sizes: '40x40', type: 'image/png' },
145 { src: '/foo/bar', sizes: '40x40', type: 'image/png' },
146 ]});
147
148 assert_equals(metadata.artwork[0].src, new URL('http://example.com', document. URL).href)
149 assert_equals(metadata.artwork[1].src, new URL('../foo', document.URL).href)
150 assert_equals(metadata.artwork[2].src, new URL('/foo/bar', document.URL).href)
151 }, "Test that MediaMetadata.artwork returns parsed urls");
152
153 test(function() {
154 var metadata = 42;
155
156 assert_throws(new TypeError(), _ => {
157 metadata
158 new MediaMetadata({ artwork: [ { src: 'http://[example.com]' }] });
159 });
160 assert_equals(metadata, 42);
161
162 metadata = new MediaMetadata();
163 assert_throws(new TypeError(), _ => {
164 metadata.artwork = [
165 // Valid url.
166 { src: 'http://example.com' },
167 // Invalid url.
168 { src: 'http://example.com:demo' },
169 ];
170 });
171 assert_equals(metadata.artwork.length, 0);
172
173 }, "Test that MediaMetadata throws when setting an invalid url");
174
175 test(function() {
176 var metadata = new MediaMetadata({ artwork: [ { src: 'foo.jpg' } ] });
177 assert_equals(metadata.artwork[0].type, '');
178 assert_equals(metadata.artwork[0].sizes, '');
179 }, "Test MediaImage default values");
180
181 test(function() {
182 assert_throws(new TypeError(), _ => {
183 new MediaMetadata({ artwork: [ {} ] });
184 });
185
186 var metadata = new MediaMetadata();
187 assert_throws(new TypeError(), _ => {
188 metadata.artwork = [ { type: 'image/png', sizes: '40x40' } ];
189 });
190 }, "Test that MediaImage.src is required")
191
192 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698