4 "github.com/anacrolix/log"
5 qt "github.com/frankban/quicktest"
6 "github.com/pion/webrtc/v3"
10 func TestClosingPeerConnectionDoesNotCloseUnopenedDataChannel(t *testing.T) {
13 pc, dc, _, err := tc.newOffer(log.Default, "", [20]byte{})
14 c.Assert(err, qt.IsNil)
17 peerConnClosed := make(chan struct{})
18 pc.OnConnectionStateChange(func(state webrtc.PeerConnectionState) {
19 if state == webrtc.PeerConnectionStateClosed {
24 // This should not be called because the DataChannel is never opened.
25 t.Fatal("DataChannel.OnClose handler called")
27 t.Logf("data channel ready state before close: %v", dc.ReadyState())
28 dc.OnError(func(err error) {
29 t.Logf("data channel error: %v", err)
32 c.Check(dc.ReadyState(), qt.Equals, webrtc.DataChannelStateClosed)