diff options
author | cpaulin <cpaulin@chromium.org> | 2015-12-15 16:29:38 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-16 00:30:26 +0000 |
commit | 4be9c46795da0228e51c1ae8f6e5c35152774eb0 (patch) | |
tree | e1a92d3a44bad24fa403770aaf5084e73758ed1f /content/test | |
parent | 3493e3e22cd5f2404239661f4108364e2be0cfe3 (diff) | |
download | chromium_src-4be9c46795da0228e51c1ae8f6e5c35152774eb0.zip chromium_src-4be9c46795da0228e51c1ae8f6e5c35152774eb0.tar.gz chromium_src-4be9c46795da0228e51c1ae8f6e5c35152774eb0.tar.bz2 |
MediaRecorder tests for Pause functionality
BUG=chromium:548914
Review URL: https://codereview.chromium.org/1504063003
Cr-Commit-Position: refs/heads/master@{#365403}
Diffstat (limited to 'content/test')
-rw-r--r-- | content/test/data/media/mediarecorder_test.html | 158 |
1 files changed, 127 insertions, 31 deletions
diff --git a/content/test/data/media/mediarecorder_test.html b/content/test/data/media/mediarecorder_test.html index f82f9bd..f75b68e 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> |