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

Side by Side Diff: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-keystatuses-multiple-sessions.html

Issue 2847803005: Cleanup verifyKeyStatuses() to take KeyId/status pairs (Closed)
Patch Set: Created 3 years, 7 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>Verify MediaKeySession.keyStatuses with multiple sessions</title> 4 <title>Verify MediaKeySession.keyStatuses with multiple sessions</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 <script> 10 <script>
(...skipping 12 matching lines...) Expand all
23 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4 , 0xae, 0x3c]); 23 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4 , 0xae, 0x3c]);
24 var rawKey2 = new Uint8Array([0x3c, 0xae, 0xe4, 0xfc, 0x2a, 0x12 , 0xef, 0x68, 24 var rawKey2 = new Uint8Array([0x3c, 0xae, 0xe4, 0xfc, 0x2a, 0x12 , 0xef, 0x68,
25 0x7b, 0xd2, 0x14, 0x68, 0xf1, 0x62 , 0xdd, 0xeb]); 25 0x7b, 0xd2, 0x14, 0x68, 0xf1, 0x62 , 0xdd, 0xeb]);
26 26
27 function processMessage1(event) 27 function processMessage1(event)
28 { 28 {
29 // This should only be called for session1. 29 // This should only be called for session1.
30 assert_equals(event.target, mediaKeySession1); 30 assert_equals(event.target, mediaKeySession1);
31 31
32 // No keys added yet. 32 // No keys added yet.
33 verifyKeyStatuses(mediaKeySession1.keyStatuses, { expected: [], unexpected: [key1, key2] }); 33 verifyKeyStatuses(mediaKeySession1.keyStatuses, []);
34 34
35 // Add key1 to session1. 35 // Add key1 to session1.
36 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1))); 36 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1)));
37 mediaKeySession1.update(jwkSet).catch(function(error) { 37 mediaKeySession1.update(jwkSet).catch(function(error) {
38 forceTestFailureFromPromise(test, error); 38 forceTestFailureFromPromise(test, error);
39 }); 39 });
40 } 40 }
41 41
42 function processKeyStatusesChange1(event) 42 function processKeyStatusesChange1(event)
43 { 43 {
44 // This should only be called for session1. 44 // This should only be called for session1.
45 assert_equals(event.target, mediaKeySession1); 45 assert_equals(event.target, mediaKeySession1);
46 46
47 // Check that keyStatuses contains the expected key1 only. 47 // Check that keyStatuses contains the expected key1 only.
48 dumpKeyStatuses(mediaKeySession1.keyStatuses); 48 dumpKeyStatuses(mediaKeySession1.keyStatuses);
49 verifyKeyStatuses(mediaKeySession1.keyStatuses, { expected: [key1], unexpected: [key2] }); 49 verifyKeyStatuses(mediaKeySession1.keyStatuses,
50 [ { keyId: key1, status: 'usable' } ]);
50 51
51 // Now trigger a message event on session2. 52 // Now trigger a message event on session2.
52 mediaKeySession2.generateRequest(initDataType, initData).cat ch(function(error) { 53 mediaKeySession2.generateRequest(initDataType, initData).cat ch(function(error) {
53 forceTestFailureFromPromise(test, error); 54 forceTestFailureFromPromise(test, error);
54 }); 55 });
55 } 56 }
56 57
57 function processMessage2(event) 58 function processMessage2(event)
58 { 59 {
59 // This should only be called for session2. 60 // This should only be called for session2.
60 assert_equals(event.target, mediaKeySession2); 61 assert_equals(event.target, mediaKeySession2);
61 62
62 // session2 has no keys added yet. 63 // session2 has no keys added yet.
63 verifyKeyStatuses(mediaKeySession2.keyStatuses, { expected: [], unexpected: [key1, key2] }); 64 verifyKeyStatuses(mediaKeySession2.keyStatuses, []);
64 65
65 // session1 should still have 1 key. 66 // session1 should still have 1 key.
66 verifyKeyStatuses(mediaKeySession1.keyStatuses, { expected: [key1], unexpected: [key2] }); 67 verifyKeyStatuses(mediaKeySession1.keyStatuses,
68 [ { keyId: key1, status: 'usable' } ]);
67 69
68 // Add key2 to session2. 70 // Add key2 to session2.
69 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key2, rawKey2))); 71 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key2, rawKey2)));
70 mediaKeySession2.update(jwkSet).catch(function(error) { 72 mediaKeySession2.update(jwkSet).catch(function(error) {
71 forceTestFailureFromPromise(test, error); 73 forceTestFailureFromPromise(test, error);
72 }); 74 });
73 } 75 }
74 76
75 function processKeyStatusesChange2(event) 77 function processKeyStatusesChange2(event)
76 { 78 {
77 // This should only be called for session2. 79 // This should only be called for session2.
78 assert_equals(event.target, mediaKeySession2); 80 assert_equals(event.target, mediaKeySession2);
79 81
80 // Check that keyStatuses contains the expected key2 only. 82 // Check that keyStatuses contains the expected key2 only.
81 dumpKeyStatuses(mediaKeySession2.keyStatuses); 83 dumpKeyStatuses(mediaKeySession2.keyStatuses);
82 verifyKeyStatuses(mediaKeySession2.keyStatuses, { expected: [key2], unexpected: [key1] }); 84 verifyKeyStatuses(mediaKeySession2.keyStatuses,
85 [ { keyId: key2, status: 'usable' } ]);
83 86
84 // session1 should still have 1 key. 87 // session1 should still have 1 key.
85 verifyKeyStatuses(mediaKeySession1.keyStatuses, { expected: [key1], unexpected: [key2] }); 88 verifyKeyStatuses(mediaKeySession1.keyStatuses,
89 [ { keyId: key1, status: 'usable' } ]);
86 90
87 test.done(); 91 test.done();
88 } 92 }
89 93
90 navigator.requestMediaKeySystemAccess('org.w3.clearkey', getSimp leConfiguration()).then(function(access) { 94 navigator.requestMediaKeySystemAccess('org.w3.clearkey', getSimp leConfiguration()).then(function(access) {
91 initDataType = access.getConfiguration().initDataTypes[0]; 95 initDataType = access.getConfiguration().initDataTypes[0];
92 initData = getInitData(initDataType); 96 initData = getInitData(initDataType);
93 return access.createMediaKeys(); 97 return access.createMediaKeys();
94 }).then(function(mediaKeys) { 98 }).then(function(mediaKeys) {
95 mediaKeySession1 = mediaKeys.createSession(); 99 mediaKeySession1 = mediaKeys.createSession();
96 mediaKeySession2 = mediaKeys.createSession(); 100 mediaKeySession2 = mediaKeys.createSession();
97 101
98 // There should be no keys defined on either session. 102 // There should be no keys defined on either session.
99 verifyKeyStatuses(mediaKeySession1.keyStatuses, { expected: [], unexpected: [key1, key2] }); 103 verifyKeyStatuses(mediaKeySession1.keyStatuses, []);
100 verifyKeyStatuses(mediaKeySession2.keyStatuses, { expected: [], unexpected: [key1, key2] }); 104 verifyKeyStatuses(mediaKeySession2.keyStatuses, []);
101 105
102 // Bind all the event handlers now. 106 // Bind all the event handlers now.
103 waitForEventAndRunStep('message', mediaKeySession1, processM essage1, test); 107 waitForEventAndRunStep('message', mediaKeySession1, processM essage1, test);
104 waitForEventAndRunStep('message', mediaKeySession2, processM essage2, test); 108 waitForEventAndRunStep('message', mediaKeySession2, processM essage2, test);
105 waitForEventAndRunStep('keystatuseschange', mediaKeySession1 , processKeyStatusesChange1, test); 109 waitForEventAndRunStep('keystatuseschange', mediaKeySession1 , processKeyStatusesChange1, test);
106 waitForEventAndRunStep('keystatuseschange', mediaKeySession2 , processKeyStatusesChange2, test); 110 waitForEventAndRunStep('keystatuseschange', mediaKeySession2 , processKeyStatusesChange2, test);
107 111
108 // Generate a request on session1. 112 // Generate a request on session1.
109 return mediaKeySession1.generateRequest(initDataType, initDa ta); 113 return mediaKeySession1.generateRequest(initDataType, initDa ta);
110 }).catch(function(error) { 114 }).catch(function(error) {
111 forceTestFailureFromPromise(test, error); 115 forceTestFailureFromPromise(test, error);
112 }); 116 });
113 }, 'Verify MediaKeySession.keyStatuses with multiple sessions.'); 117 }, 'Verify MediaKeySession.keyStatuses with multiple sessions.');
114 </script> 118 </script>
115 </body> 119 </body>
116 </html> 120 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698