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..010e32a380f7fa2d04942cc96adfcd5d43e7a138 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> |
Peter Beverloo
2015/11/20 14:05:02
dito re: comment
ajose
2015/11/20 21:37:06
Done.
|
-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); |
+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); |
} |
+}; |
- recorder.ondataavailable = recorderOnDataAvailable; |
- recorder.onstop = recorderOnStop; |
- recorder.onerror = recorderOnError; |
- recorder.start(); |
+var makeAsyncTest = function(value, expected) { |
+ var recorder; |
+ var has_video = value['video'] || false; |
+ var has_audio = value['audio'] || false; |
- assert_equals(recorder.state, "recording"); |
- recorder.requestData(); |
-}); |
+ async_test(function() { |
+ recorderOnDataAvailable = this.step_func_done(function(event) { |
Peter Beverloo
2015/11/20 14:05:02
dito re: constness
ajose
2015/11/20 21:37:06
Done.
|
+ assert_equals(event.data.size, 0, |
+ 'Recorded data size should be == 0'); |
+ }); |
-onError = test.step_func(function() { |
- assert_unreached('Error creating MediaRecorder.'); |
-}); |
+ recorderOnStop = this.step_func(function() { |
+ assert_unreached('Recording stopped.'); |
+ }); |
-try { |
- navigator.webkitGetUserMedia({video:true}, gotStream, onError); |
-} catch(e) { |
- assert_unreached('Exception launching getUserMedia(): ' + e); |
-} |
+ recorderOnError = this.step_func(function() { |
+ assert_unreached('Recording error.'); |
+ }); |
+ |
+ gotStream = this.step_func_done(function(stream) { |
+ checkStreamTracks(stream, has_video, has_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(); |
+ |
+ assert_equals(recorder.state, "recording"); |
+ recorder.requestData(); |
+ }); |
+ |
+ onError = this.step_func(function() { |
+ assert_unreached('Error creating MediaRecorder.'); |
+ }); |
+ |
+ try { |
+ navigator.webkitGetUserMedia(value, gotStream, onError); |
+ } catch(e) { |
+ assert_unreached('Exception launching getUserMedia(): ' + e); |
+ } |
+ }); |
+}; |
+ |
+generate_tests(makeAsyncTest, |
+ [["video-only", {video:true}], |
Peter Beverloo
2015/11/20 14:05:02
dito re: values
ajose
2015/11/20 21:37:07
Done.
|
+ ["audio-only", {audio:true}], |
+ ["audio-video", {video:true, audio:true}]]); |
</script> |