blob: 7021d36828689cb0fb5e7e1ebb821ae12b39a649 [file] [log] [blame]
<!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>