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

Unified Diff: third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-error.html

Issue 2697703003: MediaRecorder: make sure ondataavailable+onstop events are fired before onerror (Closed)
Patch Set: Created 3 years, 10 months 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
Index: third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-error.html
diff --git a/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-error.html b/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-error.html
new file mode 100644
index 0000000000000000000000000000000000000000..29a488b8343c8991714095a04e7a732934a061c7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-error.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<script src=../../resources/testharness.js></script>
+<script src=../../resources/testharnessreport.js></script>
+<body>
+ <!-- canvas cannot be arbitrarily small -->
+ <canvas id='canvas'/>
+</body>
+<script>
+
+var test = async_test('forces an error in the MediaRecorder API by changing ' +
+ 'the amount of tracks in the MediaStream, and checks that the correct ' +
+ 'sequence ondataavailable-stop-error is enforced');
+var recorder;
+var stream;
+
+function drawSomethingOnCanvas(canvas) {
+ // Drawing something on the canvas generates a frame in its captured stream.
+ var context = canvas.getContext("2d");
+ context.fillStyle = "red";
+ context.fillRect(0, 0, 10, 10);
+}
+
+recorderOnDataAvailable = test.step_func(function(event) {
+ recorder.onstop = recorderOnStop;
+
+ // Add another track to the MediaStream to force an error.
+ stream.addTrack(stream.getVideoTracks()[0].clone());
+ drawSomethingOnCanvas(document.getElementById('canvas'));
+});
+
+recorderOnStop = test.step_func(function() {
+ recorder.onstop = test.unreached_func('Unexpected stop event');
+ recorder.ondataavailable = test.unreached_func('Unexpected data event');
+ recorder.onerror = recorderOnError;
+});
+
+recorderOnError = test.step_func(function() {
+ test.done();
+});
+
+var step = test.step_func(function() {
+ var canvas = document.getElementById('canvas');
+ stream = canvas.captureStream();
+ assert_equals(stream.getVideoTracks()[0].readyState, 'live');
+
+ drawSomethingOnCanvas(canvas);
emircan 2017/02/17 00:19:07 Move this after l.56. Also, AFAIU first frame is
mcasas 2017/02/17 01:46:14 Done.
+
+ recorder = new MediaRecorder(stream);
+
+ recorder.onstop = test.unreached_func('Unexpected stop event');
+ recorder.onpause = test.unreached_func('Unexpected pause event');
+ recorder.onresume = test.unreached_func('Unexpected resume event');
+ recorder.onerror = test.unreached_func('Unexpected error event');
+ recorder.ondataavailable = recorderOnDataAvailable;
+
+ recorder.start(0);
+});
+
+step();
+
+</script>

Powered by Google App Engine
This is Rietveld 408576698