dom/media/tests/mochitest/test_peerConnection_remoteReofferRollback.html
author Phil Ringnalda <philringnalda@gmail.com>
Fri, 09 Dec 2016 08:33:55 -0800
changeset 372781 a3fe137d4d47d0d8c897bcb81d6ed1201a5dde89
parent 372780 17ae85e95667253ed7cdef7f2f36d249e953b2d0
child 372817 ce72565dbefdc9256277f482c7bd7b0b8a2f44dd
permissions -rw-r--r--
Backed out 6 changesets (bug 1263312) for failures in test_exceptions_from_jsimplemented.html Backed out changeset 17ae85e95667 (bug 1263312) Backed out changeset 1814c92e203b (bug 1263312) Backed out changeset 6b71306765d2 (bug 1263312) Backed out changeset 33449a5d1676 (bug 1263312) Backed out changeset b311b7e439e8 (bug 1263312) Backed out changeset a667af08ffb5 (bug 1263312)

<!DOCTYPE HTML>
<html>
<head>
  <script type="application/javascript" src="pc.js"></script>
</head>
<body>
<pre id="test">
<script type="application/javascript">
  createHTML({
    bug: "952145",
    title: "Rollback remote reoffer"
  });

  var test;
  runNetworkTest(function (options) {
    test = new PeerConnectionTest(options);
    addRenegotiation(test.chain,
      [
        function PC_LOCAL_ADD_SECOND_STREAM(test) {
          test.setMediaConstraints([{audio: true}, {audio: true}],
                                   [{audio: true}]);
          return test.pcLocal.getAllUserMedia([{audio: true}]);
        },
      ]
    );
    test.chain.replaceAfter('PC_REMOTE_SET_REMOTE_DESCRIPTION',
      [
        function PC_LOCAL_SETUP_ICE_HANDLER(test) {
          test.pcLocal.setupIceCandidateHandler(test);
          if (test.testOptions.steeplechase) {
            test.pcLocal.endOfTrickleIce.then(() => {
              send_message({"type": "end_of_trickle_ice"});
            });
          }
        },

        function PC_REMOTE_ROLLBACK(test) {
          return test.setRemoteDescription(
              test.pcRemote,
              new RTCSessionDescription({ type: "rollback" }),
              STABLE)
            .then(() => test.pcRemote.rollbackRemoteTracksIfNotNegotiated());
        },

        function PC_LOCAL_ROLLBACK(test) {
          // We haven't negotiated the new stream yet.
          test.pcLocal.expectNegotiationNeeded();
          return test.setLocalDescription(
              test.pcLocal,
              new RTCSessionDescription({ type: "rollback", sdp: ""}),
              STABLE);
        },

        // Rolling back should shut down gathering
        function PC_LOCAL_WAIT_FOR_END_OF_TRICKLE(test) {
          return test.pcLocal.endOfTrickleIce;
        },
      ],
      1 // Second PC_REMOTE_SET_REMOTE_DESCRIPTION
    );
    test.chain.append(commandsPeerConnectionOfferAnswer);
    test.setMediaConstraints([{audio: true}], [{audio: true}]);
    test.run();
  });
</script>
</pre>
</body>
</html>