setmediakeys-at-same-time.js (2071B)
1 function runTest(config, qualifier) { 2 var testname = testnamePrefix(qualifier, config.keysystem) 3 + ', setmediakeys at same time'; 4 5 var configuration = getSimpleConfigurationForContent(config.content); 6 7 async_test(function(test) { 8 var _video = config.video, 9 _access, 10 _mediaKeys1, 11 _mediaKeys2, 12 _mediaKeys3, 13 _mediaKeys4, 14 _mediaKeys5; 15 16 // Test MediaKeys assignment. 17 assert_equals(_video.mediaKeys, null); 18 assert_equals(typeof _video.setMediaKeys, 'function'); 19 20 function onFailure(error) { 21 forceTestFailureFromPromise(test, error); 22 } 23 24 function setMediaKeys(mediaKeys) { 25 return _video.setMediaKeys(mediaKeys) 26 .then(function() {return 1}, function() {return 0}) 27 } 28 29 navigator.requestMediaKeySystemAccess(config.keysystem, [configuration]).then(function(access) { 30 _access = access; 31 return _access.createMediaKeys(); 32 }).then(function(result) { 33 _mediaKeys1 = result; 34 return _access.createMediaKeys(); 35 }).then(function(result) { 36 _mediaKeys2 = result; 37 return _access.createMediaKeys(); 38 }).then(function(result) { 39 _mediaKeys3 = result; 40 return _access.createMediaKeys(); 41 }).then(function(result) { 42 _mediaKeys4 = result; 43 return _access.createMediaKeys(); 44 }).then(function(result) { 45 _mediaKeys5 = result; 46 return Promise.all([ 47 setMediaKeys(_mediaKeys1), 48 setMediaKeys(_mediaKeys2), 49 setMediaKeys(_mediaKeys3), 50 setMediaKeys(_mediaKeys4), 51 setMediaKeys(_mediaKeys5) 52 ]); 53 }).then(function(results) { 54 var sum = results.reduce((a, b) => a + b, 0); 55 assert_in_array(sum,[1,5]); 56 test.done(); 57 }).catch(onFailure); 58 }, testname); 59 }