android: add rollback RTCSdpType
BUG=webrtc:11796,webrtc:11970 Change-Id: I0047c7a050c344ef58735d9d0d6534b1ddf6c4d6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/184263 Reviewed-by: Taylor <deadbeef@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com> Cr-Commit-Position: refs/heads/master@{#32243}
This commit is contained in:
committed by
Commit Bot
parent
df2a4654a0
commit
79d8df021c
@ -22,7 +22,8 @@ public class SessionDescription {
|
|||||||
public static enum Type {
|
public static enum Type {
|
||||||
OFFER,
|
OFFER,
|
||||||
PRANSWER,
|
PRANSWER,
|
||||||
ANSWER;
|
ANSWER,
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
public String canonicalForm() {
|
public String canonicalForm() {
|
||||||
return name().toLowerCase(Locale.US);
|
return name().toLowerCase(Locale.US);
|
||||||
|
|||||||
@ -1488,6 +1488,38 @@ public class PeerConnectionEndToEndTest {
|
|||||||
factory.dispose();
|
factory.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@SmallTest
|
||||||
|
public void testRollback() throws Exception {
|
||||||
|
PeerConnectionFactory factory = PeerConnectionFactory.builder().createPeerConnectionFactory();
|
||||||
|
PeerConnection.RTCConfiguration config = new PeerConnection.RTCConfiguration(Arrays.asList());
|
||||||
|
config.sdpSemantics = PeerConnection.SdpSemantics.UNIFIED_PLAN;
|
||||||
|
|
||||||
|
ObserverExpectations offeringExpectations = new ObserverExpectations("PCTest:offerer");
|
||||||
|
PeerConnection pc = factory.createPeerConnection(config, offeringExpectations);
|
||||||
|
|
||||||
|
SdpObserverLatch sdpLatch = new SdpObserverLatch();
|
||||||
|
pc.createOffer(sdpLatch, new MediaConstraints());
|
||||||
|
assertTrue(sdpLatch.await());
|
||||||
|
SessionDescription offer = sdpLatch.getSdp();
|
||||||
|
|
||||||
|
sdpLatch = new SdpObserverLatch();
|
||||||
|
offeringExpectations.expectSignalingChange(SignalingState.HAVE_LOCAL_OFFER);
|
||||||
|
pc.setLocalDescription(sdpLatch, offer);
|
||||||
|
assertTrue(sdpLatch.await());
|
||||||
|
|
||||||
|
SessionDescription rollback = new SessionDescription(SessionDescription.Type.ROLLBACK, "");
|
||||||
|
sdpLatch = new SdpObserverLatch();
|
||||||
|
offeringExpectations.expectSignalingChange(SignalingState.STABLE);
|
||||||
|
// TODO(bugs.webrtc.org/11970): determine if triggering ONN (twice even) is correct.
|
||||||
|
offeringExpectations.expectRenegotiationNeeded();
|
||||||
|
offeringExpectations.expectRenegotiationNeeded();
|
||||||
|
pc.setLocalDescription(sdpLatch, rollback);
|
||||||
|
assertTrue(sdpLatch.await());
|
||||||
|
|
||||||
|
assertTrue(offeringExpectations.waitForAllExpectationsToBeSatisfied(DEFAULT_TIMEOUT_SECONDS));
|
||||||
|
}
|
||||||
|
|
||||||
private static void negotiate(PeerConnection offeringPC,
|
private static void negotiate(PeerConnection offeringPC,
|
||||||
ObserverExpectations offeringExpectations, PeerConnection answeringPC,
|
ObserverExpectations offeringExpectations, PeerConnection answeringPC,
|
||||||
ObserverExpectations answeringExpectations) {
|
ObserverExpectations answeringExpectations) {
|
||||||
|
|||||||
Reference in New Issue
Block a user