Bug 1514016 - Rework MediaRecorder-stop tests to use async-await. r=jib

Depends on D14891

Differential Revision: https://phabricator.services.mozilla.com/D14892

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Bryce Van Dyk 2019-01-14 18:32:55 +00:00
Родитель 9117cbe248
Коммит e48df97d26
2 изменённых файлов: 18 добавлений и 17 удалений

Просмотреть файл

@ -1,7 +1,7 @@
[MediaRecorder-stop.html]
expected: TIMEOUT
[MediaRecorder will stop recording and fire a stop event when stop() is called]
expected: FAIL
expected: NOTRUN
[MediaRecorder will stop recording and fire a stop event when all tracks are ended]
expected: TIMEOUT

Просмотреть файл

@ -16,35 +16,36 @@
return canvas.captureStream();
}
async_test(t => {
promise_test(async t => {
let video = createVideoStream();
let recorder = new MediaRecorder(video);
recorder.onstop = t.step_func(errorEvent => {
assert_equals(errorEvent.type, 'stop', 'the error type should be stop');
assert_true(errorEvent.isTrusted, 'isTrusted should be true when the event is created by C++');
assert_equals(recorder.state, "inactive", "MediaRecorder has been stopped when all tracks are ended");
t.done();
});
assert_equals(video.getVideoTracks().length, 1, "video mediastream starts with one track");
recorder.start();
assert_equals(recorder.state, "recording", "MediaRecorder has been started successfully");
video.getVideoTracks()[0].stop();
assert_equals(recorder.state, "recording", "MediaRecorder state should be recording immediately following last track ending");
let event = await new Promise(r => recorder.onstop = r);
assert_equals(event.type, "stop", "the event type should be stop");
assert_true(event.isTrusted, "isTrusted should be true when the event is created by C++");
assert_equals(recorder.state, "inactive", "MediaRecorder is inactive after stop event");
}, "MediaRecorder will stop recording and fire a stop event when all tracks are ended");
async_test(t => {
promise_test(async t => {
let video = createVideoStream();
let recorder = new MediaRecorder(video);
recorder.onstop = t.step_func(errorEvent => {
assert_equals(errorEvent.type, 'stop', 'the error type should be stop');
assert_true(errorEvent.isTrusted, 'isTrusted should be true when the event is created by C++');
assert_equals(recorder.state, "inactive", "MediaRecorder has been stopped when stop() is called");
t.done();
});
recorder.start();
assert_equals(recorder.state, "recording", "MediaRecorder has been started successfully");
recorder.stop();
assert_equals(recorder.state, "recording", "State should remain the same until stop event is fired");
assert_equals(recorder.state, "inactive", "MediaRecorder state should be inactive immediately following stop() call");
let event = await new Promise (r => recorder.onstop = r);
assert_equals(event.type, "stop", "the event type should be stop");
assert_true(event.isTrusted, "isTrusted should be true when the event is created by C++");
assert_equals(recorder.state, "inactive", "MediaRecorder is inactive after stop event");
}, "MediaRecorder will stop recording and fire a stop event when stop() is called");
</script>
</body>
</html>
</html>