| Index: third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-requestData.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-requestData.html b/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-requestData.html
|
| index 99395e91efa0b6372e76a81e00250a66c3b742a0..1862c2a4d5beaf5b1d1057c26a705a4d608d424f 100644
|
| --- a/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-requestData.html
|
| +++ b/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-requestData.html
|
| @@ -3,58 +3,82 @@
|
| <script src=../../resources/testharnessreport.js></script>
|
| <script>
|
|
|
| -var test = async_test('checks requestData() for video-only MediaRecorder API.');
|
| -var recorder;
|
| -
|
| -recorderOnDataAvailable = test.step_func(function(event) {
|
| - assert_equals(event.data.size, 0, 'Recorded data size should be == 0');
|
| - test.done();
|
| -});
|
| -
|
| -recorderOnStop = test.step_func(function() {
|
| - assert_unreached('Recording stopped.');
|
| -});
|
| -
|
| -recorderOnError = test.step_func(function() {
|
| - assert_unreached('Recording error.');
|
| -});
|
| -
|
| -gotStream = test.step_func(function(stream) {
|
| - assert_equals(stream.getAudioTracks().length, 0);
|
| - assert_equals(stream.getVideoTracks().length, 1);
|
| - assert_equals(stream.getVideoTracks()[0].readyState, 'live');
|
| -
|
| - try {
|
| - recorder = new MediaRecorder(stream);
|
| - } catch (e) {
|
| - assert_unreached('Exception while creating MediaRecorder: ' + e);
|
| +// This test verifies we can successfully create a MediaRecorder and
|
| +// get data from a MediaStream with it.
|
| +
|
| +var checkStreamTracks = function(stream, has_video, has_audio) {
|
| + if (has_video) {
|
| + assert_equals(stream.getVideoTracks().length, 1);
|
| + assert_equals(stream.getVideoTracks()[0].readyState, 'live');
|
| + } else {
|
| + assert_equals(stream.getVideoTracks().length, 0);
|
| }
|
| - assert_equals(recorder.state, "inactive");
|
|
|
| - try {
|
| - recorder.requestData();
|
| - assert_unreached();
|
| - } catch (e) {
|
| - assert_equals(e.name, "InvalidStateError");
|
| + if (has_audio) {
|
| + assert_equals(stream.getAudioTracks().length, 1);
|
| + assert_equals(stream.getAudioTracks()[0].readyState, 'live');
|
| + } else {
|
| + assert_equals(stream.getAudioTracks().length, 0);
|
| }
|
| +};
|
| +
|
| +var makeAsyncTest = function(value, expected) {
|
| + var recorder;
|
| +
|
| + async_test(function() {
|
| + const recorderOnDataAvailable = this.step_func_done(function(event) {
|
| + assert_equals(event.data.size, 0,
|
| + 'Recorded data size should be == 0');
|
| + });
|
| +
|
| + const recorderOnStop = this.step_func(function() {
|
| + assert_unreached('Recording stopped.');
|
| + });
|
| +
|
| + const recorderOnError = this.step_func(function() {
|
| + assert_unreached('Recording error.');
|
| + });
|
| +
|
| + const gotStream = this.step_func_done(function(stream) {
|
| + checkStreamTracks(stream, value['video'], value['audio']);
|
| +
|
| + try {
|
| + recorder = new MediaRecorder(stream);
|
| + } catch (e) {
|
| + assert_unreached('Exception while creating MediaRecorder: ' + e);
|
| + }
|
| +
|
| + try {
|
| + recorder.requestData();
|
| + assert_unreached();
|
| + } catch (e) {
|
| + assert_equals(e.name, "InvalidStateError");
|
| + }
|
| +
|
| + recorder.ondataavailable = recorderOnDataAvailable;
|
| + recorder.onstop = recorderOnStop;
|
| + recorder.onerror = recorderOnError;
|
| + recorder.start();
|
|
|
| - recorder.ondataavailable = recorderOnDataAvailable;
|
| - recorder.onstop = recorderOnStop;
|
| - recorder.onerror = recorderOnError;
|
| - recorder.start();
|
| + assert_equals(recorder.state, "recording");
|
| + recorder.requestData();
|
| + });
|
|
|
| - assert_equals(recorder.state, "recording");
|
| - recorder.requestData();
|
| -});
|
| + const onError = this.step_func(function() {
|
| + assert_unreached('Error creating MediaRecorder.');
|
| + });
|
|
|
| -onError = test.step_func(function() {
|
| - assert_unreached('Error creating MediaRecorder.');
|
| -});
|
| + try {
|
| + navigator.webkitGetUserMedia(value, gotStream, onError);
|
| + } catch(e) {
|
| + assert_unreached('Exception launching getUserMedia(): ' + e);
|
| + }
|
| + });
|
| +};
|
|
|
| -try {
|
| - navigator.webkitGetUserMedia({video:true}, gotStream, onError);
|
| -} catch(e) {
|
| - assert_unreached('Exception launching getUserMedia(): ' + e);
|
| -}
|
| +generate_tests(makeAsyncTest,
|
| + [["video-only", {video: true, audio: false}],
|
| + ["audio-only", {video: false, audio: true}],
|
| + ["audio-video", {video: true, audio: true}]]);
|
|
|
| </script>
|
|
|