From 336e02ab4fbc6d29fc5fe00ef4e9b586750ba4af Mon Sep 17 00:00:00 2001 From: Jonas Olsson Date: Thu, 31 Jan 2019 19:00:17 +0000 Subject: [PATCH] Bug 1523562 [wpt PR 15038] - Reland "Switch to new ICE state implementation", a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests Reland "Switch to new ICE state implementation" This is a reland of e902e08dc0c67fd7598a4a4e431177f89c00f350 Original change's description: > Switch to new ICE state implementation > > With this change the ice/dtls connection states should finally be compliant to the spec. > > Bug: webrtc:6145 > Change-Id: I1e7c13f22e40b534e732ecd3fc103f617306f00a > Reviewed-on: https://chromium-review.googlesource.com/c/1371392 > Commit-Queue: Jonas Olsson > Reviewed-by: Henrik Boström > Cr-Commit-Position: refs/heads/master@{#617476} Bug: webrtc:6145 Change-Id: Ie4a09594e8a59c6598a9434c0132c1fd3543c76b Reviewed-on: https://chromium-review.googlesource.com/c/1433237 Reviewed-by: Henrik Boström Commit-Queue: Jonas Olsson Cr-Commit-Position: refs/heads/master@{#625611} -- wpt-commits: e8365d71bf3a36ba494fbc96898d09e48f11e021 wpt-pr: 15038 --- .../RTCPeerConnection-iceConnectionState.html | 47 +++++++++++++++++-- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/testing/web-platform/tests/webrtc/RTCPeerConnection-iceConnectionState.html b/testing/web-platform/tests/webrtc/RTCPeerConnection-iceConnectionState.html index 4071033a3c9e..b647b3d3e35e 100644 --- a/testing/web-platform/tests/webrtc/RTCPeerConnection-iceConnectionState.html +++ b/testing/web-platform/tests/webrtc/RTCPeerConnection-iceConnectionState.html @@ -64,6 +64,12 @@ assert_equals(pc.iceConnectionState, 'new'); }, 'Initial iceConnectionState should be new'); + test(t => { + const pc = new RTCPeerConnection(); + pc.close(); + assert_equals(pc.iceConnectionState, 'closed'); + }, 'Closing the connection should set iceConnectionState to closed'); + /* 4.4.4 RTCIceConnectionState Enum checking @@ -106,6 +112,35 @@ const pc1 = new RTCPeerConnection(); t.add_cleanup(() => pc1.close()); const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc2.close()); + + let had_checking = false; + + const onIceConnectionStateChange = t.step_func(() => { + const {iceConnectionState} = pc1; + if (iceConnectionState === 'checking') { + had_checking = true; + } else if (iceConnectionState === 'connected' || + iceConnectionState === 'completed') { + assert_true(had_checking, 'state should pass checking before' + + ' reaching connected or completed'); + t.done(); + } + }); + + pc1.createDataChannel('test'); + + pc1.addEventListener('iceconnectionstatechange', onIceConnectionStateChange); + + exchangeIceCandidates(pc1, pc2); + doSignalingHandshake(pc1, pc2); + }, 'connection with one data channel should eventually have connected or ' + + 'completed connection state'); + +async_test(t => { + const pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + const pc2 = new RTCPeerConnection(); t.add_cleanup(() => pc2.close()); @@ -116,19 +151,22 @@ const iceTransport = pc1.sctp.transport.transport; assert_equals(iceTransport.state, 'checking', - 'Expect ICE transport to be in checking state when iceConnectionState is checking'); + 'Expect ICE transport to be in checking state when' + + ' iceConnectionState is checking'); } else if(iceConnectionState === 'connected') { const iceTransport = pc1.sctp.transport.transport; assert_equals(iceTransport.state, 'connected', - 'Expect ICE transport to be in connected state when iceConnectionState is connected'); + 'Expect ICE transport to be in connected state when' + + ' iceConnectionState is connected'); } else if(iceConnectionState === 'completed') { const iceTransport = pc1.sctp.transport.transport; assert_equals(iceTransport.state, 'completed', - 'Expect ICE transport to be in connected state when iceConnectionState is completed'); + 'Expect ICE transport to be in connected state when' + + ' iceConnectionState is completed'); } }); @@ -141,7 +179,8 @@ exchangeIceCandidates(pc1, pc2); doSignalingHandshake(pc1, pc2); - }, 'connection with one data channel should eventually have connected connection state'); + }, 'connection with one data channel should eventually ' + + 'have connected connection state'); /* TODO