| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Test multiple calls to MediaKeySession.close() sequentially</title> |
| <script src="encrypted-media-utils.js"></script> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| // This test verifies that calls to close() on a closed session |
| // succeed, and always return a promise. |
| |
| promise_test(function(test) |
| { |
| var initDataType; |
| var initData; |
| var mediaKeySession; |
| |
| return navigator.requestMediaKeySystemAccess( |
| 'org.w3.clearkey', |
| getSimpleConfiguration()).then(function(access) { |
| initDataType = access.getConfiguration().initDataTypes[0]; |
| initData = getInitData(initDataType); |
| return access.createMediaKeys(); |
| }).then(function(mediaKeys) { |
| mediaKeySession = mediaKeys.createSession(); |
| return mediaKeySession.generateRequest(initDataType, initData); |
| }).then(function() { |
| // Call close() multiple times sequentially. |
| var p = mediaKeySession.close(); |
| assert_true(p instanceof Promise); |
| return p; |
| }).then(function() { |
| var p = mediaKeySession.close(); |
| assert_true(p instanceof Promise); |
| return p; |
| }).then(function() { |
| var p = mediaKeySession.close(); |
| assert_true(p instanceof Promise); |
| return p; |
| }); |
| }, 'Test multiple calls to MediaKeySession.close() sequentially.'); |
| </script> |
| </body> |
| </html> |