| <!DOCTYPE html> |
| <script src=../../resources/testharness.js></script> |
| <script src=../../resources/testharnessreport.js></script> |
| <script> |
| |
| var test = async_test('checks the video-only MediaRecorder API.'); |
| var recorder; |
| |
| recorderOnDataAvailable = test.step_func(function(event) { |
| if (event) { |
| assert_greater_than(event.data.size, 0, 'Recorded data size should be > 0'); |
| assert_equals(recorder.state, "recording"); |
| } else { |
| assert_equals(recorder.state, "inactive"); |
| } |
| |
| // TODO(mcasas): Let the test record for a while. |
| // TODO(mcasas): Consider storing the recorded data and playing it back. |
| |
| recorder.onstop = recorderOnStopExpected; |
| recorder.stop(); |
| }); |
| |
| recorderOnStopExpected = test.step_func(function() { |
| test.done(); |
| }); |
| |
| recorderOnStopUnexpected = 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); |
| } |
| |
| assert_equals(recorder.state, "inactive"); |
| recorder.ondataavailable = recorderOnDataAvailable; |
| recorder.onstop = recorderOnStopUnexpected; |
| recorder.onerror = recorderOnError; |
| recorder.start(); |
| |
| assert_equals(recorder.state, "recording"); |
| test.done(); |
| }); |
| |
| onError = test.step_func(function() { |
| assert_unreached('Error creating MediaRecorder.'); |
| }); |
| |
| try { |
| navigator.webkitGetUserMedia({video:true}, gotStream, onError); |
| } catch(e) { |
| assert_unreached('Exception launching getUserMedia(): ' + e); |
| } |
| |
| </script> |