| function runTest(config, qualifier) { |
| var testname = testnamePrefix(qualifier, config.keysystem) |
| + ', setmediakeys at same time'; |
| |
| var configuration = getSimpleConfigurationForContent(config.content); |
| |
| async_test(function(test) { |
| var _video = config.video, |
| _access, |
| _mediaKeys1, |
| _mediaKeys2, |
| _mediaKeys3, |
| _mediaKeys4, |
| _mediaKeys5; |
| |
| // Test MediaKeys assignment. |
| assert_equals(_video.mediaKeys, null); |
| assert_equals(typeof _video.setMediaKeys, 'function'); |
| |
| function onFailure(error) { |
| forceTestFailureFromPromise(test, error); |
| } |
| |
| function setMediaKeys(mediaKeys) { |
| return _video.setMediaKeys(mediaKeys) |
| .then(function() {return 1}, function() {return 0}) |
| } |
| |
| navigator.requestMediaKeySystemAccess(config.keysystem, [configuration]).then(function(access) { |
| _access = access; |
| return _access.createMediaKeys(); |
| }).then(function(result) { |
| _mediaKeys1 = result; |
| return _access.createMediaKeys(); |
| }).then(function(result) { |
| _mediaKeys2 = result; |
| return _access.createMediaKeys(); |
| }).then(function(result) { |
| _mediaKeys3 = result; |
| return _access.createMediaKeys(); |
| }).then(function(result) { |
| _mediaKeys4 = result; |
| return _access.createMediaKeys(); |
| }).then(function(result) { |
| _mediaKeys5 = result; |
| return Promise.all([ |
| setMediaKeys(_mediaKeys1), |
| setMediaKeys(_mediaKeys2), |
| setMediaKeys(_mediaKeys3), |
| setMediaKeys(_mediaKeys4), |
| setMediaKeys(_mediaKeys5) |
| ]); |
| }).then(function(results) { |
| var sum = results.reduce((a, b) => a + b, 0); |
| assert_in_array(sum,[1,5]); |
| test.done(); |
| }).catch(onFailure); |
| }, testname); |
| } |