Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Unified Diff: third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-requestData.html

Issue 1448203002: Add layout tests for the audio component of MediaStream Recording. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698