| Index: third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/setmediakeys-to-multiple-video-elements.js
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/setmediakeys-to-multiple-video-elements.js b/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/setmediakeys-to-multiple-video-elements.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d98f33f0c1a1f2cc24775ae4a510f9e9ff4caa57
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/setmediakeys-to-multiple-video-elements.js
|
| @@ -0,0 +1,54 @@
|
| +function runTest(config, qualifier) {
|
| + var testname = testnamePrefix(qualifier, config.keysystem)
|
| + + ', setMediaKeys to multiple video elements';
|
| +
|
| + var configuration = getSimpleConfigurationForContent(config.content);
|
| +
|
| + if ( config.initDataType && config.initData ) {
|
| + configuration.initDataTypes = [ config.initDataType ];
|
| + }
|
| +
|
| + async_test (function (test) {
|
| + var _video1 = config.video1,
|
| + _video2 = config.video2,
|
| + _mediaKeys;
|
| +
|
| + function onFailure(error) {
|
| + forceTestFailureFromPromise(test, error);
|
| + }
|
| +
|
| + navigator.requestMediaKeySystemAccess(config.keysystem, [configuration]).then(function(access) {
|
| + assert_equals(access.keySystem, config.keysystem)
|
| + return access.createMediaKeys();
|
| + }).then(function(result) {
|
| + _mediaKeys = result;
|
| + assert_not_equals(_mediaKeys, null);
|
| + assert_equals(typeof _mediaKeys.createSession, 'function');
|
| + return _video1.setMediaKeys(_mediaKeys);
|
| + }).then(function(result) {
|
| + assert_not_equals(_video1.mediaKeys, null);
|
| + assert_true(_video1.mediaKeys === _mediaKeys);
|
| + // The specification allows this to fail, but it is not required to fail.
|
| + return _video2.setMediaKeys(_mediaKeys);
|
| + }).then(function(result) {
|
| + // Second setMediaKeys is not required to fail.
|
| + assert_true(_video2.mediaKeys === _mediaKeys);
|
| + return Promise.resolve();
|
| + }, function(error) {
|
| + assert_equals(error.name, 'QuotaExceededError');
|
| + assert_not_equals(error.message, '');
|
| + // Return something so the promise resolves properly.
|
| + return Promise.resolve();
|
| + }).then(function() {
|
| + // Now clear it from video1.
|
| + return _video1.setMediaKeys(null);
|
| + }).then(function() {
|
| + // Should be assignable to video2.
|
| + return _video2.setMediaKeys(_mediaKeys);
|
| + }).then(function(result) {
|
| + assert_not_equals(_video2.mediaKeys, null);
|
| + assert_true(_video2.mediaKeys === _mediaKeys);
|
| + test.done();
|
| + }).catch(onFailure);
|
| + }, testname);
|
| +}
|
|
|