tor-browser

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

setmediakeys-multiple-times-with-the-same-mediakeys.js (1860B)


      1 function runTest(config, qualifier) {
      2    var testname = testnamePrefix( qualifier, config.keysystem )
      3                         + ', setmediakeys multiple times with the same mediakeys';
      4 
      5    var configuration = getSimpleConfigurationForContent( config.content );
      6 
      7    if ( config.initDataType && config.initData ) {
      8        configuration.initDataTypes = [ config.initDataType ];
      9    }
     10 
     11    async_test (function (test) {
     12        var _video = config.video,
     13            _mediaKeys;
     14 
     15        // Test MediaKeys assignment.
     16        assert_equals(_video.mediaKeys, null);
     17        assert_equals(typeof _video.setMediaKeys, 'function');
     18 
     19        function onFailure(error) {
     20            forceTestFailureFromPromise(test, error);
     21        }
     22 
     23        navigator.requestMediaKeySystemAccess(config.keysystem, [configuration]).then(function(access) {
     24            return access.createMediaKeys();
     25        }).then(function(result) {
     26            _mediaKeys = result;
     27            // Set mediaKeys for first time on video should work.
     28            return _video.setMediaKeys(_mediaKeys);
     29        }).then(function(result) {
     30            assert_equals(_video.mediaKeys, _mediaKeys);
     31            // Set mediaKeys on video again should return a resolved promise.
     32            return _video.setMediaKeys(_mediaKeys);
     33        }).then(function (result) {
     34            assert_equals(_video.mediaKeys, _mediaKeys);
     35            return testmediasource(config);
     36        }).then(function(source) {
     37            // Set src attribute on Video Element
     38            _video.src = URL.createObjectURL(source);
     39            // Set mediaKeys again on video should still return a resolved promise.
     40            return _video.setMediaKeys(_mediaKeys);
     41        }).then(function() {
     42            assert_equals(_video.mediaKeys, _mediaKeys);
     43            test.done();
     44        }).catch(onFailure);
     45    }, testname);
     46 }