Bug 943461. Part 6: Fix test to handle automatic stop of MediaRecorder. r=rlin
--- a/content/media/test/test_mediarecorder_record_no_timeslice.html
+++ b/content/media/test/test_mediarecorder_record_no_timeslice.html
@@ -19,17 +19,17 @@ function startTest(test, token) {
var element = document.createElement('audio');
var expectedMimeType = test.type.substring(0, test.type.indexOf(';'));
element.token = token;
manager.started(token);
element.src = test.name;
element.test = test;
- element.stream = element.mozCaptureStream();
+ element.stream = element.mozCaptureStreamUntilEnded();
var mediaRecorder = new MediaRecorder(element.stream);
var onStopFired = false;
var onDataAvailableFired = false;
mediaRecorder.onerror = function () {
ok(false, 'Unexpected onerror callback fired');
};
@@ -42,16 +42,17 @@ function startTest(test, token) {
mediaRecorder.onstop = function () {
if (onStopFired) {
ok(false, 'onstop unexpectedly fired more than once');
} else {
onStopFired = true;
// ondataavailable should always fire before onstop
if (onDataAvailableFired) {
+ ok(true, 'onstop fired after ondataavailable');
manager.finished(token);
} else {
ok(false, 'onstop fired without an ondataavailable event first');
}
}
};
// This handler verifies that only a single ondataavailable event handler
@@ -90,25 +91,17 @@ function startTest(test, token) {
manager.finished(token);
} else {
// If content hasn't ended, start recording
mediaRecorder.start();
is(mediaRecorder.state, 'recording',
'Media recorder should be recording');
is(mediaRecorder.stream, element.stream,
'Media recorder stream = element stream at the start of recording');
-
- // When ended fires, stop recording
- element.onended = function () {
- mediaRecorder.stop();
- is(mediaRecorder.state, 'inactive',
- 'Media recorder is inactive afer being stopped');
- is(mediaRecorder.stream, element.stream,
- 'Media recorder stream = element stream post recording');
- }
+ // Recording will automatically stop when the stream ends.
}
}
element.play();
}
manager.runTests(gMediaRecorderTests, startTest);
</script>