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

Side by Side Diff: LayoutTests/media/encrypted-media/encrypted-media-setmediakeys.html

Issue 423633002: Make HTMLMediaElement.setMediaKeys() asynchronous. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase + add comment Created 6 years, 3 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
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>MediaKeys</title> 4 <title>MediaKeys</title>
5 <script src="encrypted-media-utils.js"></script> 5 <script src="encrypted-media-utils.js"></script>
6 <script src="../../resources/testharness.js"></script> 6 <script src="../../resources/testharness.js"></script>
7 <script src="../../resources/testharnessreport.js"></script> 7 <script src="../../resources/testharnessreport.js"></script>
8 </head> 8 </head>
9 <body> 9 <body>
10 <video id="testVideo"></video> 10 <video id="testVideo"></video>
11 <div id="log"></div> 11 <div id="log"></div>
12 <p>This tests setting MediaKeys on a video object.</p> 12 <p>This tests setting MediaKeys on a video object.</p>
13 <script> 13 <script>
14 async_test(function(test) 14 async_test(function(test)
15 { 15 {
16 var mediaKeys; 16 var mediaKeys;
17 var mediaKeys2; 17 var mediaKeys2;
18 var video = document.getElementById('testVideo'); 18 var video = document.getElementById('testVideo');
19 assert_not_equals(video, null); 19 assert_not_equals(video, null);
20 20
21 // Test MediaKeys assignment. 21 // Test MediaKeys assignment.
22 assert_equals(video.mediaKeys, null); 22 assert_equals(video.mediaKeys, null);
23 assert_equals(typeof video.setMediaKeys, 'function'); 23 assert_equals(typeof video.setMediaKeys, 'function');
24 24
25 // Try setting mediaKeys to null. 25 // Try setting mediaKeys to null.
26 video.setMediaKeys(null); 26 video.setMediaKeys(null).then(function(result) {
27 assert_equals(video.mediaKeys, null); 27 assert_equals(video.mediaKeys, null);
28 28
29 // Try setting mediaKeys to the wrong type of object. 29 // Try setting mediaKeys to the wrong type of object.
30 assert_throws(new TypeError(), 30 return video.setMediaKeys(new Date());
31 function () { video.setMediaKeys(new Date()) }); 31 }).then(function(result) {
32 assert_unreached('setMediaKeys did not fail when setting to Date()');
33 }, function(error) {
34 // TypeError expected.
35 assert_equals(error.name, 'TypeError');
32 36
33 // Create a MediaKeys object and assign it to video. 37 // Create a MediaKeys object and assign it to video.
34 MediaKeys.create('org.w3.clearkey').then(function(result) { 38 return MediaKeys.create('org.w3.clearkey');
39 }).then(function(result) {
35 mediaKeys = result; 40 mediaKeys = result;
36 assert_not_equals(mediaKeys, null); 41 assert_not_equals(mediaKeys, null);
37 assert_equals(mediaKeys.keySystem, 'org.w3.clearkey'); 42 assert_equals(mediaKeys.keySystem, 'org.w3.clearkey');
38 video.setMediaKeys(mediaKeys); 43 return video.setMediaKeys(mediaKeys);
44 }).then(function(result) {
39 assert_not_equals(video.mediaKeys, null); 45 assert_not_equals(video.mediaKeys, null);
40 assert_true(video.mediaKeys === mediaKeys); 46 assert_true(video.mediaKeys === mediaKeys);
41 47
42 // Set it a second time. 48 // Set it a second time.
43 video.setMediaKeys(mediaKeys); 49 return video.setMediaKeys(mediaKeys);
50 }).then(function(result) {
44 assert_not_equals(video.mediaKeys, null); 51 assert_not_equals(video.mediaKeys, null);
45 assert_true(video.mediaKeys === mediaKeys); 52 assert_true(video.mediaKeys === mediaKeys);
46 53
47 // Create a second MediaKeys. 54 // Create a second MediaKeys.
48 return MediaKeys.create('org.w3.clearkey'); 55 return MediaKeys.create('org.w3.clearkey');
49 }).then(function(result) { 56 }).then(function(result) {
50 mediaKeys2 = result; 57 mediaKeys2 = result;
51 assert_not_equals(mediaKeys, null); 58 assert_not_equals(mediaKeys, null);
52 assert_not_equals(mediaKeys2, null); 59 assert_not_equals(mediaKeys2, null);
53 assert_not_equals(mediaKeys, mediaKeys2); 60 assert_not_equals(mediaKeys, mediaKeys2);
54 assert_equals(mediaKeys.keySystem, 'org.w3.clearkey'); 61 assert_equals(mediaKeys.keySystem, 'org.w3.clearkey');
55 assert_equals(mediaKeys2.keySystem, 'org.w3.clearkey'); 62 assert_equals(mediaKeys2.keySystem, 'org.w3.clearkey');
56 63
57 // Assign the second MediaKeys to video. 64 // Assign the second MediaKeys to video.
58 video.setMediaKeys(mediaKeys2); 65 return video.setMediaKeys(mediaKeys2);
66 }).then(function(result) {
59 assert_not_equals(video.mediaKeys, null); 67 assert_not_equals(video.mediaKeys, null);
60 assert_not_equals(video.mediaKeys, mediaKeys); 68 assert_not_equals(video.mediaKeys, mediaKeys);
61 assert_true(video.mediaKeys === mediaKeys2); 69 assert_true(video.mediaKeys === mediaKeys2);
62 70
63 // Set it back to first MediaKeys. 71 // Set it back to first MediaKeys.
64 video.setMediaKeys(mediaKeys); 72 return video.setMediaKeys(mediaKeys);
73 }, function(error) {
74 // Some implementations don't support changing MediaKeys
75 // once set, so this test is a success.
76 // FIXME: Allow this case to pass as necessary before
77 // submitting to W3C.
78 assert_equals(error.name, "NotSupportedError");
79 forceTestFailureFromPromise(test, error);
80 }).then(function(result) {
65 assert_true(video.mediaKeys === mediaKeys); 81 assert_true(video.mediaKeys === mediaKeys);
66 assert_not_equals(video.mediaKeys, mediaKeys2); 82 assert_not_equals(video.mediaKeys, mediaKeys2);
67 83
68 // Set mediaKeys to null. 84 // Set mediaKeys to null.
69 video.setMediaKeys(null); 85 return video.setMediaKeys(null);
86 }).then(function(result) {
70 assert_equals(video.mediaKeys, null); 87 assert_equals(video.mediaKeys, null);
71 88
72 // Set it to null a second time. 89 // Set it to null a second time.
73 video.setMediaKeys(null); 90 return video.setMediaKeys(null);
91 }).then(function(result) {
74 assert_equals(video.mediaKeys, null); 92 assert_equals(video.mediaKeys, null);
75 93
76 // Set it back to first MediaKeys again. 94 // Set it back to first MediaKeys again.
77 video.setMediaKeys(mediaKeys); 95 return video.setMediaKeys(mediaKeys);
96 }).then(function(result) {
78 assert_true(video.mediaKeys === mediaKeys); 97 assert_true(video.mediaKeys === mediaKeys);
79 assert_not_equals(video.mediaKeys, mediaKeys2); 98 assert_not_equals(video.mediaKeys, mediaKeys2);
80 test.done(); 99 test.done();
81 }).catch(function(error) { 100 }).catch(function(error) {
82 forceTestFailureFromPromise(test, error); 101 forceTestFailureFromPromise(test, error);
83 }); 102 });
84 }, 'Setting MediaKeys on a video object.'); 103 }, 'Setting MediaKeys on a video object.');
85 </script> 104 </script>
86 </body> 105 </body>
87 </html> 106 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698