Bug 1093835 - Check video flow in test_pc_addSecondVideoStream.html. r?jib draft
authorAndreas Pehrson <pehrsons@gmail.com>
Tue, 02 May 2017 12:01:04 +0200
changeset 572683 4d02ea67d25cd058e1293bb8c585a719f5c2c2a7
parent 572682 e2ccec34dc7f92299227c3abbdd9149d5cb15e79
child 572684 5874f779e30c805cf4e6d95359eebc6a2fd3ceed
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_addSecondVideoStream.html. r?jib MozReview-Commit-ID: Aqd4VYhlbBb
dom/media/tests/mochitest/test_peerConnection_addSecondVideoStream.html
--- a/dom/media/tests/mochitest/test_peerConnection_addSecondVideoStream.html
+++ b/dom/media/tests/mochitest/test_peerConnection_addSecondVideoStream.html
@@ -1,34 +1,44 @@
 <!DOCTYPE HTML>
 <html>
 <head>
   <script type="application/javascript" src="pc.js"></script>
+  <script type="application/javascript" src="/tests/dom/canvas/test/captureStream_common.js"></script>
 </head>
 <body>
 <pre id="test">
 <script type="application/javascript">
   createHTML({
     bug: "1017888",
     title: "Renegotiation: add second video stream"
   });
 
-  var test;
   runNetworkTest(function (options) {
-    test = new PeerConnectionTest(options);
+    const test = new PeerConnectionTest(options);
     addRenegotiation(test.chain,
       [
         function PC_LOCAL_ADD_SECOND_STREAM(test) {
           test.setMediaConstraints([{video: true}, {video: true}],
                                    [{video: true}]);
-          return test.pcLocal.getAllUserMedia([{video: true}]);
+          // Use fake:true here since the native fake device on linux doesn't
+          // change color as needed by checkVideoPlaying() below.
+          return test.pcLocal.getAllUserMedia([{video: true, fake: true}]);
+        },
+      ],
+      [
+        function PC_REMOTE_CHECK_VIDEO_FLOW(test) {
+          const h = new VideoStreamHelper();
+          is(test.pcRemote.remoteMediaElements.length, 2,
+             "Should have two remote media elements after renegotiation");
+          return Promise.all(test.pcRemote.remoteMediaElements.map(video =>
+            h.checkVideoPlaying(video, 10, 10, 16)));
         },
       ]
     );
 
-    // TODO(bug 1093835): figure out how to verify if media flows through the new stream
-    test.setMediaConstraints([{video: true}], [{video: true}]);
+    test.setMediaConstraints([{video: true, fake: true}], [{video: true}]);
     test.run();
   });
 </script>
 </pre>
 </body>
 </html>