Bug 1093835 - Check video flow in test_pc_videoRenegotiationInactiveAnswer.html. r?jib
MozReview-Commit-ID: G9JIcAXuiWX
--- a/dom/media/tests/mochitest/test_peerConnection_videoRenegotiationInactiveAnswer.html
+++ b/dom/media/tests/mochitest/test_peerConnection_videoRenegotiationInactiveAnswer.html
@@ -10,62 +10,68 @@
<script type="application/javascript">
createHTML({
bug: "1213773",
title: "Renegotiation: answerer uses a=inactive for video"
});
var test;
runNetworkTest(function (options) {
- var helper;
+ const emitter = new VideoFrameEmitter();
+ const helper = new VideoStreamHelper();
test = new PeerConnectionTest(options);
test.chain.replace("PC_LOCAL_GUM", [
function PC_LOCAL_CANVAS_CAPTURESTREAM(test) {
- helper = new VideoStreamHelper();
- test.pcLocal.attachLocalStream(helper.stream());
+ test.pcLocal.attachLocalStream(emitter.stream());
}
]);
test.chain.append([
function PC_REMOTE_WAIT_FOR_FRAMES() {
var vremote = test.pcRemote.remoteMediaElements[0];
ok(vremote, "Should have remote video element for pcRemote");
- return helper.waitForFrames(vremote);
+ emitter.start();
+ return addFinallyToPromise(helper.checkVideoPlaying(vremote, 10, 10, 16))
+ .finally(() => emitter.stop());
}
]);
addRenegotiation(test.chain, []);
test.chain.insertAfter("PC_LOCAL_GET_ANSWER", [
function PC_LOCAL_REWRITE_REMOTE_SDP_INACTIVE(test) {
test._remote_answer.sdp =
sdputils.setAllMsectionsInactive(test._remote_answer.sdp);
}
], false, 1);
test.chain.append([
function PC_REMOTE_ENSURE_NO_FRAMES() {
var vremote = test.pcRemote.remoteMediaElements[0];
ok(vremote, "Should have remote video element for pcRemote");
- return helper.verifyNoFrames(vremote);
+ emitter.start();
+ return addFinallyToPromise(helper.checkVideoPaused(vremote, 10, 10, 16, 5000))
+ .finally(() => emitter.stop());
},
]);
test.chain.remove("PC_REMOTE_CHECK_STATS", 1);
test.chain.remove("PC_LOCAL_CHECK_STATS", 1);
addRenegotiation(test.chain, []);
test.chain.append([
function PC_REMOTE_WAIT_FOR_FRAMES_2() {
var vremote = test.pcRemote.remoteMediaElements[0];
ok(vremote, "Should have remote video element for pcRemote");
- return helper.waitForFrames(vremote);
+ emitter.start();
+ return addFinallyToPromise(helper.checkVideoPlaying(vremote, 10, 10, 16))
+ .finally(() => emitter.stop());
}
]);
test.setMediaConstraints([{video: true}], []);
test.run();
});
</script>
</pre>