MediaRecorder-disabled-tracks.https.html (2004B)
1 <!doctype html> 2 <html> 3 <head> 4 <title>MediaRecorder Disabled Tracks</title> 5 <link rel="help" href="https://w3c.github.io/mediacapture-record/MediaRecorder.html#mediarecorder"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src=/resources/testdriver.js></script> 9 <script src=/resources/testdriver-vendor.js></script> 10 <script src='../mediacapture-streams/permission-helper.js'></script> 11 </head> 12 <script> 13 14 // This test verifies that MediaStream with disabled tracks can be correctly 15 // recorded. See crbug.com/878255 for more context. 16 17 [ ["video-only", {video: true, audio: false}], 18 ["audio-only", {video: false, audio: true}], 19 ["audio-video", {video: true, audio: true}]] 20 .forEach( function(args) { 21 async_test(function(test) { 22 let recorder; 23 const recorderOnDataAvailable = test.step_func(function(event) { 24 if (recorder.state != "recording") 25 return; 26 27 recorder.onstop = recorderOnStopExpected; 28 recorder.stop(); 29 }); 30 31 const recorderOnStopExpected = test.step_func_done(); 32 const recorderOnStopUnexpected = test.unreached_func('Recording stopped.'); 33 const recorderOnError = test.unreached_func('Recording error.'); 34 35 const gotStream = test.step_func(function(stream) { 36 for (track of stream.getTracks()) 37 track.enabled = false; 38 39 recorder = new MediaRecorder(stream); 40 41 assert_equals(recorder.state, "inactive"); 42 recorder.ondataavailable = recorderOnDataAvailable; 43 recorder.onstop = recorderOnStopUnexpected; 44 recorder.onerror = recorderOnError; 45 recorder.start(); 46 47 assert_equals(recorder.state, "recording"); 48 recorder.requestData(); 49 }); 50 51 const onError = test.unreached_func('Error creating MediaStream.'); 52 setMediaPermission().then(() => navigator.mediaDevices.getUserMedia(args[1])).then(gotStream, onError); 53 }, args[0]); 54 }); 55 56 </script>