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

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: peter@'s comments 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
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-basic-video.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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>
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-basic-video.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698