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

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: sync method Created 6 years, 4 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 video.src = '../content/test-encrypted.webm';
ddorwin 2014/08/08 02:50:50 Is this necessary?
jrummell 2014/08/08 23:15:11 Nope. Removed.
44 return video.setMediaKeys(mediaKeys);
45 }).then(function(result) {
39 assert_not_equals(video.mediaKeys, null); 46 assert_not_equals(video.mediaKeys, null);
40 assert_true(video.mediaKeys === mediaKeys); 47 assert_true(video.mediaKeys === mediaKeys);
41 48
42 // Set it a second time. 49 // Set it a second time.
43 video.setMediaKeys(mediaKeys); 50 return video.setMediaKeys(mediaKeys);
51 }).then(function(result) {
44 assert_not_equals(video.mediaKeys, null); 52 assert_not_equals(video.mediaKeys, null);
45 assert_true(video.mediaKeys === mediaKeys); 53 assert_true(video.mediaKeys === mediaKeys);
46 54
47 // Create a second MediaKeys. 55 // Create a second MediaKeys.
48 return MediaKeys.create('org.w3.clearkey'); 56 return MediaKeys.create('org.w3.clearkey');
49 }).then(function(result) { 57 }).then(function(result) {
50 mediaKeys2 = result; 58 mediaKeys2 = result;
51 assert_not_equals(mediaKeys, null); 59 assert_not_equals(mediaKeys, null);
52 assert_not_equals(mediaKeys2, null); 60 assert_not_equals(mediaKeys2, null);
53 assert_not_equals(mediaKeys, mediaKeys2); 61 assert_not_equals(mediaKeys, mediaKeys2);
54 assert_equals(mediaKeys.keySystem, 'org.w3.clearkey'); 62 assert_equals(mediaKeys.keySystem, 'org.w3.clearkey');
55 assert_equals(mediaKeys2.keySystem, 'org.w3.clearkey'); 63 assert_equals(mediaKeys2.keySystem, 'org.w3.clearkey');
56 64
57 // Assign the second MediaKeys to video. 65 // Assign the second MediaKeys to video.
58 video.setMediaKeys(mediaKeys2); 66 return video.setMediaKeys(mediaKeys2);
67 }).then(function(result) {
59 assert_not_equals(video.mediaKeys, null); 68 assert_not_equals(video.mediaKeys, null);
60 assert_not_equals(video.mediaKeys, mediaKeys); 69 assert_not_equals(video.mediaKeys, mediaKeys);
61 assert_true(video.mediaKeys === mediaKeys2); 70 assert_true(video.mediaKeys === mediaKeys2);
62 71
63 // Set it back to first MediaKeys. 72 // Set it back to first MediaKeys.
64 video.setMediaKeys(mediaKeys); 73 return video.setMediaKeys(mediaKeys);
74 }, function(error) {
75 // Some implementations don't support changing MediaKeys
76 // once set, so this test is a success.
77 assert_equals(error.name, "NotSupportedError");
78 test.done();
ddorwin 2014/08/08 02:50:50 If we return, we can still run the null test at l8
jrummell 2014/08/08 23:15:11 Updated test to fail, along with a FIXME as a remi
79 }).then(function(result) {
80
ddorwin 2014/08/08 02:50:50 remove
jrummell 2014/08/08 23:15:11 Done.
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