tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }