Chromium Code Reviews| 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> |