Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2574)

Unified Diff: content/test/data/media/mediarecorder_test.html

Issue 1504063003: MediaRecorder tests for Pause functionality (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disable android for now and address comments Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/media/webrtc_media_recorder_browsertest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/test/data/media/mediarecorder_test.html
diff --git a/content/test/data/media/mediarecorder_test.html b/content/test/data/media/mediarecorder_test.html
index f82f9bd146a8068e5b1c877d2de061c963eed13a..f75b68ecaa654f54f8d5e516eaa38cb58e5d2ec0 100644
--- a/content/test/data/media/mediarecorder_test.html
+++ b/content/test/data/media/mediarecorder_test.html
@@ -19,32 +19,23 @@ const DEFAULT_CONSTRAINTS= {audio:true, video:true};
const DEFAULT_RECORDER_MIME_TYPE = 'video/vp8';
const DEFAULT_TIME_SLICE = 100;
-function createAndStartMediaRecorder(stream, mimeType) {
+function createAndStartMediaRecorder(stream, mimeType, slice) {
return new Promise(function(resolve, reject) {
- console.log('Starting MediaRecorder instance');
document.getElementById("video").src = URL.createObjectURL(stream);
var recorder = new MediaRecorder(stream, {"mimeType" : mimeType});
console.log('Recorder object created.');
- recorder.start();
- resolve(recorder);
- });
-}
-
-function createAndStartWithTimeSliceMediaRecorder(stream, mimeType, slice) {
- return new Promise(function(resolve, reject) {
- console.log('Starting MediaRecorder instance');
- document.getElementById("video").src = URL.createObjectURL(stream);
- var recorder = new MediaRecorder(stream, {"mimeType" : mimeType});
- console.log('Recorder object created.');
- recorder.start(slice);
- console.log('Recorder started with time slice', slice);
+ if (slice != undefined) {
+ recorder.start(slice);
+ console.log('Recorder started with time slice', slice);
+ } else {
+ recorder.start();
+ }
resolve(recorder);
});
}
function createMediaRecorder(stream, mimeType) {
return new Promise(function(resolve, reject) {
- console.log('Starting MediaRecorder instance');
document.getElementById("video").src = URL.createObjectURL(stream);
var recorder = new MediaRecorder(stream, {"mimeType" : mimeType});
console.log('Recorder object created.');
@@ -53,7 +44,6 @@ function createMediaRecorder(stream, mimeType) {
}
function testStartAndRecorderState() {
- console.log('testStartAndRecorderState started.');
navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
.then(function(stream) {
return createAndStartMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
@@ -70,7 +60,6 @@ function testStartAndRecorderState() {
}
function testStartStopAndRecorderState() {
- console.log('testStartStopAndRecorderState started.');
var theRecorder;
navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
.then(function(stream) {
@@ -92,7 +81,6 @@ function testStartStopAndRecorderState() {
}
function testStartAndDataAvailable() {
- console.log('testStartAndDataAvailable started.');
var videoSize = 0;
var emptyBlobs = 0;
var timeStamps = [];
@@ -129,14 +117,13 @@ function testStartAndDataAvailable() {
}
function testStartWithTimeSlice() {
- console.log('testStartWithTimeSlice started.');
var videoSize = 0;
var emptyBlobs = 0;
var timeStamps = [];
navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
.then(function(stream) {
- return createAndStartWithTimeSliceMediaRecorder(stream,
- DEFAULT_RECORDER_MIME_TYPE, DEFAULT_TIME_SLICE);
+ return createAndStartMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE,
+ DEFAULT_TIME_SLICE);
})
.then(function(recorder) {
recorder.ondataavailable = function(event) {
@@ -166,7 +153,6 @@ function testStartWithTimeSlice() {
}
function testStartAndStartEventTriggered() {
- console.log('testStartAndStartEventTriggered started.');
var theRecorder;
var startEventReceived = false;
navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
@@ -197,7 +183,6 @@ function testStartAndStartEventTriggered() {
}
function testStartStopAndStopEventTriggered() {
- console.log('testStartStopAndStopEventTriggered started.');
var theRecorder;
var stopEventReceived = false;
navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
@@ -226,7 +211,6 @@ function testStartStopAndStopEventTriggered() {
function testResumeAndRecorderState() {
var theRecorder;
- console.log('testResumeAndRecorderState started.');
navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
.then(function(stream) {
return createAndStartMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
@@ -252,7 +236,6 @@ function testResumeAndRecorderState() {
function testResumeAndResumeEventTriggered() {
var theRecorder;
var resumeEventReceived = false;
- console.log('testStartAndResumeEventTriggered started.');
navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
.then(function(stream) {
return createAndStartMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
@@ -282,7 +265,6 @@ function testResumeAndResumeEventTriggered() {
}
function testNoResumeWhileRecorderInactive() {
- console.log('testNoResumeWhileRecorderInactive started.');
navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
.then(function(stream) {
return createMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
@@ -290,16 +272,15 @@ function testNoResumeWhileRecorderInactive() {
.then(function(recorder) {
recorder.resume();
})
- .catch(function(err) {
- reportTestSuccess();
- })
.then(function() {
return failTest('Recorder resumed recording from inactive state.');
+ })
+ .catch(function(err) {
+ reportTestSuccess();
});
}
function testResumeAndDataAvailable() {
- console.log('testResumeAndDataAvailable started.');
var theRecorder;
var videoSize = 0;
var emptyBlobs = 0;
@@ -343,6 +324,121 @@ function testResumeAndDataAvailable() {
});
}
+function testPauseAndRecorderState() {
+ var theRecorder;
+ navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
+ .then(function(stream) {
+ return createAndStartMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
+ })
+ .then(function(recorder) {
+ theRecorder = recorder;
+ theRecorder.pause();
+ })
+ .then(function() {
+ assertEquals('paused', theRecorder.state);
+ })
+ .catch(function(err) {
+ return failTest(err.toString());
+ })
+ .then(function() {
+ reportTestSuccess();
+ });
+}
+
+function testPauseStopAndRecorderState() {
+ var theRecorder;
+ navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
+ .then(function(stream) {
+ return createAndStartMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
+ })
+ .then(function(recorder) {
+ theRecorder = recorder;
+ theRecorder.pause();
+ })
+ .then(function() {
+ theRecorder.stop();
+ })
+ .then(function() {
+ assertEquals('inactive', theRecorder.state);
+ })
+ .catch(function(err) {
+ return failTest(err.toString());
+ })
+ .then(function() {
+ reportTestSuccess();
+ });
+}
+
+function testPauseAndPauseEventTriggered() {
+ var pauseEventReceived = false;
+ navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
+ .then(function(stream) {
+ return createAndStartMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
+ })
+ .then(function(recorder) {
+ recorder.onpause = function(event) {
+ pauseEventReceived = true;
+ }
+ recorder.pause();
+ })
+ .then(function() {
+ return waitFor('Making sure the pause event has been received',
+ function() {
+ return pauseEventReceived == true;
+ });
+ })
+ .catch(function(err) {
+ return failTest(err.toString());
+ })
+ .then(function() {
+ reportTestSuccess();
+ });
+}
+
+function testPauseAndNoDataAvailable() {
+ var theRecorder;
+ var videoSize = 0;
+ var emptyBlobs = 0;
+ navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
+ .then(function(stream) {
+ return createAndStartMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
+ })
+ .then(function(recorder) {
+ theRecorder = recorder;
+ theRecorder.pause();
+ })
+ .then(function() {
+ theRecorder.ondataavailable = function(event) {
+ failTest("Received unexpected data after pause!");
+ };
+ })
+ .then(function() {
+ return waitDuration(2000);
+ })
+ .catch(function(err) {
+ return failTest(err.toString());
+ })
+ .then(function() {
+ reportTestSuccess();
+ });
+}
+
+function testNoPauseWhileRecorderInactive() {
+ navigator.mediaDevices.getUserMedia(DEFAULT_CONSTRAINTS)
+ .then(function(stream) {
+ return createMediaRecorder(stream, DEFAULT_RECORDER_MIME_TYPE);
+ })
+ .then(function(recorder) {
+ recorder.pause();
+ })
+ .then(function() {
+ return failTest('Recorder paused recording from inactive state.');
+ })
+ .catch(function(err) {
+ reportTestSuccess();
+ });
+}
+
</script>
</body>
</html>
« no previous file with comments | « content/browser/media/webrtc_media_recorder_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698