Bug 1093835 - Check video flow in test_pc_videoRenegotiationInactiveAnswer.html. r?jib draft
authorAndreas Pehrson <pehrsons@gmail.com>
Fri, 28 Apr 2017 11:15:11 +0200
changeset 572688 894f9627162cf6d7f6c7f8c43e8f7e8618870dad
parent 572687 129f19fc1f28657d6483ddb9a0bd2c53f36354ba
child 572689 cd42c1072f131bb57679a7a0748359aae50bfc48
push id57141
push userbmo:pehrson@telenordigital.com
push dateThu, 04 May 2017 13:31:56 +0000
reviewersjib
bugs1093835
milestone55.0a1
Bug 1093835 - Check video flow in test_pc_videoRenegotiationInactiveAnswer.html. r?jib MozReview-Commit-ID: G9JIcAXuiWX
dom/media/tests/mochitest/test_peerConnection_videoRenegotiationInactiveAnswer.html
--- 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>