Chromium Code Reviews| Index: LayoutTests/fast/mediarecorder/MediaRecorder-creation.html |
| diff --git a/LayoutTests/fast/mediarecorder/MediaRecorder-creation.html b/LayoutTests/fast/mediarecorder/MediaRecorder-creation.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3a68f2ead1d2f6dc7e44cd8adfeb967c0dbb8dfa |
| --- /dev/null |
| +++ b/LayoutTests/fast/mediarecorder/MediaRecorder-creation.html |
| @@ -0,0 +1,59 @@ |
| +<!DOCTYPE html> |
| +<script src=../../resources/testharness.js></script> |
| +<script src=../../resources/testharnessreport.js></script> |
| +<script> |
| +// This test verifies that MediaRecorder can be created with different Media |
| +// Stream Track combinations: 1 Video Track only, 1 Audio Track only and finally |
| +// a Media Stream with both a Video and an Audio Track. |
| +// Note that recording is _not_ started, for that we would need Mock sources. |
|
Peter Beverloo
2015/09/16 15:09:01
Is there a bug you could refer to, to clarify that
mcasas
2015/09/16 18:04:15
Hmm the wording was unfortunate. The point I wante
|
| + |
| +function makeAsyncTest(constraints, verifyStream, message) { |
| + return async_test(function(test) { |
| + |
| + gotStream = test.step_func(function(stream) { |
|
Peter Beverloo
2015/09/16 15:09:01
use "var gotStream" to not place these variables o
mcasas
2015/09/16 18:04:15
Done.
|
| + verifyStream(stream); |
| + |
| + try { |
| + recorder = new MediaRecorder(stream); |
| + } catch (e) { |
| + assert_unreached('Exception while creating MediaRecorder: ' + e); |
| + } |
| + assert_equals(recorder.state, "inactive"); |
| + test.done(); |
| + }); |
| + |
| + onError = test.step_func(function() { |
| + assert_unreached('Error creating MediaRecorder.'); |
| + }); |
| + |
| + try { |
| + navigator.webkitGetUserMedia(constraints, gotStream, onError); |
| + } catch(e) { |
| + assert_unreached('Exception launching getUserMedia(): ' + e); |
| + } |
| + }, message); |
| +} |
| + |
| +function verifyVideoOnlyStream(stream) { |
| + assert_equals(stream.getAudioTracks().length, 0); |
| + assert_equals(stream.getVideoTracks().length, 1); |
| + assert_equals(stream.getVideoTracks()[0].readyState, 'live'); |
| +} |
| +function verifyAudioOnlyStream(stream) { |
| + assert_equals(stream.getAudioTracks().length, 1); |
| + assert_equals(stream.getVideoTracks().length, 0); |
| + assert_equals(stream.getAudioTracks()[0].readyState, 'live'); |
| +} |
| +function verifyAudioVideoStream(stream) { |
| + assert_equals(stream.getAudioTracks().length, 1); |
| + assert_equals(stream.getVideoTracks().length, 1); |
| + assert_equals(stream.getVideoTracks()[0].readyState, 'live'); |
| + assert_equals(stream.getAudioTracks()[0].readyState, 'live'); |
| +} |
| + |
| +// Note: webkitGetUserMedia() must be called with at least video or audio true. |
| +makeAsyncTest({video:true}, verifyVideoOnlyStream, 'Video only MediaRecorder'); |
| +makeAsyncTest({audio:true}, verifyAudioOnlyStream, 'Audio only MediaRecorder'); |
| +makeAsyncTest({audio:true, video:true}, verifyAudioVideoStream, 'Video and Audio MediaRecorder'); |
| + |
| +</script> |