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..f6e32d45869b669d624276c5f57bb03cf8cded81 |
--- /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 in this test, see MediaRecorder-basic-video.html for it. |
+ |
+function makeAsyncTest(constraints, verifyStream, message) { |
+ return async_test(function(test) { |
+ |
+ var gotStream = test.step_func(function(stream) { |
+ verifyStream(stream); |
+ |
+ try { |
+ recorder = new MediaRecorder(stream); |
+ } catch (e) { |
+ assert_unreached('Exception while creating MediaRecorder: ' + e); |
+ } |
+ assert_equals(recorder.state, "inactive"); |
+ test.done(); |
+ }); |
+ |
+ var 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> |