Skip to content

Commit 1ee938e

Browse files
committed
Split up test a bit
1 parent 964df52 commit 1ee938e

File tree

4 files changed

+186
-168
lines changed

4 files changed

+186
-168
lines changed

configuration_test.go

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package webrtc
2+
3+
import (
4+
. "github.com/smartystreets/goconvey/convey"
5+
"testing"
6+
)
7+
8+
func TestConfiguration(t *testing.T) {
9+
SetLoggingVerbosity(0)
10+
11+
Convey("Go enum values should correspond to native C++ values.", t, func() {
12+
// Ensure the Go "enums" generated in the idiomatic iota const way actually
13+
// match up with actual int values of the underlying native WebRTC Enums.
14+
15+
Convey("Enum: BundlePolicy", func() {
16+
So(BundlePolicyBalanced, ShouldEqual, _cgoBundlePolicyBalanced)
17+
So(BundlePolicyMaxCompat, ShouldEqual, _cgoBundlePolicyMaxCompat)
18+
So(BundlePolicyMaxBundle, ShouldEqual, _cgoBundlePolicyMaxBundle)
19+
})
20+
21+
Convey("Enum: IceTransportPolicy", func() {
22+
So(IceTransportPolicyNone, ShouldEqual, IceTransportPolicyNone)
23+
So(IceTransportPolicyRelay, ShouldEqual, IceTransportPolicyRelay)
24+
So(IceTransportPolicyAll, ShouldEqual, IceTransportPolicyAll)
25+
})
26+
27+
Convey("Enum: SignalingState", func() {
28+
So(SignalingStateStable, ShouldEqual, _cgoSignalingStateStable)
29+
So(SignalingStateHaveLocalOffer, ShouldEqual, _cgoSignalingStateHaveLocalOffer)
30+
So(SignalingStateHaveLocalPrAnswer, ShouldEqual, _cgoSignalingStateHaveLocalPrAnswer)
31+
So(SignalingStateHaveRemoteOffer, ShouldEqual, _cgoSignalingStateHaveRemoteOffer)
32+
So(SignalingStateHaveRemotePrAnswer, ShouldEqual, _cgoSignalingStateHaveRemotePrAnswer)
33+
So(SignalingStateClosed, ShouldEqual, _cgoSignalingStateClosed)
34+
})
35+
36+
// TODO: [ED]
37+
// SkipConvey("Enum: RtcpMuxPolicy", func() {
38+
// So(RtcpMuxPolicyNegotiate, ShouldEqual, _cgoRtcpMuxPolicyNegotiate)
39+
// So(RtcpMuxPolicyRequire, ShouldEqual, _cgoRtcpMuxPolicyRequire)
40+
// })
41+
42+
}) // Enums
43+
44+
Convey("New IceServer", t, func() {
45+
s, err := NewIceServer()
46+
So(err, ShouldNotBeNil) // 0 params
47+
So(s, ShouldBeNil)
48+
49+
s, err = NewIceServer("")
50+
So(err, ShouldNotBeNil) // empty URL
51+
So(s, ShouldBeNil)
52+
53+
s, err = NewIceServer("stun:12345, badurl")
54+
So(err, ShouldNotBeNil) // malformed URL
55+
So(s, ShouldBeNil)
56+
57+
s, err = NewIceServer("stun:12345, stun:ok")
58+
So(err, ShouldBeNil)
59+
So(s, ShouldNotBeNil)
60+
61+
s, err = NewIceServer("stun:a, turn:b")
62+
So(err, ShouldBeNil)
63+
So(s, ShouldNotBeNil)
64+
65+
s, err = NewIceServer("stun:a, turn:b", "alice")
66+
So(err, ShouldBeNil)
67+
So(s, ShouldNotBeNil)
68+
69+
s, err = NewIceServer("stun:a, turn:b", "alice", "secret")
70+
So(err, ShouldBeNil)
71+
So(s, ShouldNotBeNil)
72+
73+
s, err = NewIceServer("stun:a, turn:b", "alice", "secret", "extra")
74+
So(err, ShouldBeNil) // NewIceServer shouldn't fail, only WARN on too many params
75+
So(s, ShouldNotBeNil)
76+
})
77+
78+
Convey("New Configuration", t, func() {
79+
config := NewConfiguration()
80+
So(config, ShouldNotBeNil)
81+
82+
config = NewConfiguration(OptionIceServer("stun:a"))
83+
So(len(config.IceServers), ShouldEqual, 1)
84+
85+
config = NewConfiguration(
86+
OptionIceServer("stun:a"),
87+
OptionIceServer("stun:b, turn:c"))
88+
So(len(config.IceServers), ShouldEqual, 2)
89+
90+
config = NewConfiguration(
91+
OptionIceServer("stun:d"),
92+
OptionIceTransportPolicy(IceTransportPolicyAll))
93+
So(config.IceTransportPolicy, ShouldEqual, IceTransportPolicyAll)
94+
95+
config = NewConfiguration(
96+
OptionIceServer("stun:d"),
97+
OptionBundlePolicy(BundlePolicyMaxCompat))
98+
So(config.BundlePolicy, ShouldEqual, BundlePolicyMaxCompat)
99+
})
100+
}

ice_test.go

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package webrtc
2+
3+
import (
4+
. "github.com/smartystreets/goconvey/convey"
5+
"testing"
6+
)
7+
8+
func TestIceCandidate(t *testing.T) {
9+
Convey("IceCandidate", t, func() {
10+
SetLoggingVerbosity(0)
11+
12+
Convey("Serialize and Deserialize", func() {
13+
ice := IceCandidate{
14+
"fake",
15+
"not real",
16+
1337,
17+
}
18+
expected := `{"candidate":"fake","sdpMid":"not real","sdpMLineIndex":1337}`
19+
So(ice.Serialize(), ShouldEqual, expected)
20+
21+
r := DeserializeIceCandidate(`{"candidate":"still fake","sdpMid":"illusory","sdpMLineIndex":1337}`)
22+
So(r, ShouldNotBeNil)
23+
So(r.Candidate, ShouldEqual, "still fake")
24+
So(r.SdpMid, ShouldEqual, "illusory")
25+
So(r.SdpMLineIndex, ShouldEqual, 1337)
26+
27+
r = DeserializeIceCandidate(`not valid {{{`)
28+
So(r, ShouldBeNil)
29+
30+
// Missing fields should result in errors.
31+
r = DeserializeIceCandidate(`{"sdpMid":"foo","sdpMLineIndex":1234}`)
32+
So(r, ShouldBeNil)
33+
r = DeserializeIceCandidate(`{"candidate":"something","sdpMLineIndex":1234}`)
34+
So(r, ShouldBeNil)
35+
r = DeserializeIceCandidate(`{"candidate":"something","sdpMid":"bar"}`)
36+
So(r, ShouldBeNil)
37+
38+
Convey("Roundtrip", func() {
39+
ice := IceCandidate{
40+
"totally fake",
41+
"fabricated",
42+
1337,
43+
}
44+
r := DeserializeIceCandidate(ice.Serialize())
45+
So(r, ShouldNotBeNil)
46+
So(r.Candidate, ShouldEqual, ice.Candidate)
47+
So(r.SdpMid, ShouldEqual, ice.SdpMid)
48+
So(r.SdpMLineIndex, ShouldEqual, ice.SdpMLineIndex)
49+
})
50+
})
51+
})
52+
}

sdp_test.go

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package webrtc
2+
3+
import (
4+
. "github.com/smartystreets/goconvey/convey"
5+
"testing"
6+
)
7+
8+
func TestSessionDescription(t *testing.T) {
9+
Convey("SessionDescription", t, func() {
10+
Convey("Serialize and Deserialize", func() {
11+
expected := `{"type":"answer","sdp":"fake"}`
12+
r := DeserializeSessionDescription(expected)
13+
So(r, ShouldNotBeNil)
14+
So(r.Type, ShouldEqual, "answer")
15+
So(r.Sdp, ShouldEqual, "fake")
16+
s := r.Serialize()
17+
So(s, ShouldEqual, expected)
18+
19+
r = DeserializeSessionDescription(`invalid json{{`)
20+
So(r, ShouldBeNil)
21+
r = DeserializeSessionDescription(`{"sdp":"fake"}`)
22+
So(r, ShouldBeNil)
23+
r = DeserializeSessionDescription(`{"type":"answer"}`)
24+
So(r, ShouldBeNil)
25+
26+
Convey("Roundtrip", func() {
27+
sdp := SessionDescription{"pranswer", "not real"}
28+
r = DeserializeSessionDescription(sdp.Serialize())
29+
So(r.Type, ShouldEqual, sdp.Type)
30+
So(r.Sdp, ShouldEqual, sdp.Sdp)
31+
})
32+
})
33+
})
34+
}

webrtc_test.go

-168
Original file line numberDiff line numberDiff line change
@@ -256,171 +256,3 @@ func TestPeerConnection(t *testing.T) {
256256
})
257257
})
258258
}
259-
260-
func TestConfiguration(t *testing.T) {
261-
262-
Convey("Go enum values should correspond to native C++ values.", t, func() {
263-
// Ensure the Go "enums" generated in the idiomatic iota const way actually
264-
// match up with actual int values of the underlying native WebRTC Enums.
265-
266-
Convey("Enum: BundlePolicy", func() {
267-
So(BundlePolicyBalanced, ShouldEqual, _cgoBundlePolicyBalanced)
268-
So(BundlePolicyMaxCompat, ShouldEqual, _cgoBundlePolicyMaxCompat)
269-
So(BundlePolicyMaxBundle, ShouldEqual, _cgoBundlePolicyMaxBundle)
270-
})
271-
272-
Convey("Enum: IceTransportPolicy", func() {
273-
So(IceTransportPolicyNone, ShouldEqual, IceTransportPolicyNone)
274-
So(IceTransportPolicyRelay, ShouldEqual, IceTransportPolicyRelay)
275-
So(IceTransportPolicyAll, ShouldEqual, IceTransportPolicyAll)
276-
})
277-
278-
Convey("Enum: SignalingState", func() {
279-
So(SignalingStateStable, ShouldEqual, _cgoSignalingStateStable)
280-
So(SignalingStateHaveLocalOffer, ShouldEqual, _cgoSignalingStateHaveLocalOffer)
281-
So(SignalingStateHaveLocalPrAnswer, ShouldEqual, _cgoSignalingStateHaveLocalPrAnswer)
282-
So(SignalingStateHaveRemoteOffer, ShouldEqual, _cgoSignalingStateHaveRemoteOffer)
283-
So(SignalingStateHaveRemotePrAnswer, ShouldEqual, _cgoSignalingStateHaveRemotePrAnswer)
284-
So(SignalingStateClosed, ShouldEqual, _cgoSignalingStateClosed)
285-
})
286-
287-
// TODO: [ED]
288-
// SkipConvey("Enum: RtcpMuxPolicy", func() {
289-
// So(RtcpMuxPolicyNegotiate, ShouldEqual, _cgoRtcpMuxPolicyNegotiate)
290-
// So(RtcpMuxPolicyRequire, ShouldEqual, _cgoRtcpMuxPolicyRequire)
291-
// })
292-
293-
}) // Enums
294-
295-
Convey("New IceServer", t, func() {
296-
s, err := NewIceServer()
297-
So(err, ShouldNotBeNil) // 0 params
298-
So(s, ShouldBeNil)
299-
300-
s, err = NewIceServer("")
301-
So(err, ShouldNotBeNil) // empty URL
302-
So(s, ShouldBeNil)
303-
304-
s, err = NewIceServer("stun:12345, badurl")
305-
So(err, ShouldNotBeNil) // malformed URL
306-
So(s, ShouldBeNil)
307-
308-
s, err = NewIceServer("stun:12345, stun:ok")
309-
So(err, ShouldBeNil)
310-
So(s, ShouldNotBeNil)
311-
312-
s, err = NewIceServer("stun:a, turn:b")
313-
So(err, ShouldBeNil)
314-
So(s, ShouldNotBeNil)
315-
316-
s, err = NewIceServer("stun:a, turn:b", "alice")
317-
So(err, ShouldBeNil)
318-
So(s, ShouldNotBeNil)
319-
320-
s, err = NewIceServer("stun:a, turn:b", "alice", "secret")
321-
So(err, ShouldBeNil)
322-
So(s, ShouldNotBeNil)
323-
324-
s, err = NewIceServer("stun:a, turn:b", "alice", "secret", "extra")
325-
So(err, ShouldBeNil) // NewIceServer shouldn't fail, only WARN on too many params
326-
So(s, ShouldNotBeNil)
327-
})
328-
329-
Convey("New Configuration", t, func() {
330-
config := NewConfiguration()
331-
So(config, ShouldNotBeNil)
332-
333-
config = NewConfiguration(OptionIceServer("stun:a"))
334-
So(len(config.IceServers), ShouldEqual, 1)
335-
336-
config = NewConfiguration(
337-
OptionIceServer("stun:a"),
338-
OptionIceServer("stun:b, turn:c"))
339-
So(len(config.IceServers), ShouldEqual, 2)
340-
341-
config = NewConfiguration(
342-
OptionIceServer("stun:d"),
343-
OptionIceTransportPolicy(IceTransportPolicyAll))
344-
So(config.IceTransportPolicy, ShouldEqual, IceTransportPolicyAll)
345-
346-
config = NewConfiguration(
347-
OptionIceServer("stun:d"),
348-
OptionBundlePolicy(BundlePolicyMaxCompat))
349-
So(config.BundlePolicy, ShouldEqual, BundlePolicyMaxCompat)
350-
})
351-
}
352-
353-
func TestSessionDescription(t *testing.T) {
354-
Convey("SessionDescription", t, func() {
355-
Convey("Serialize and Deserialize", func() {
356-
expected := `{"type":"answer","sdp":"fake"}`
357-
r := DeserializeSessionDescription(expected)
358-
So(r, ShouldNotBeNil)
359-
So(r.Type, ShouldEqual, "answer")
360-
So(r.Sdp, ShouldEqual, "fake")
361-
s := r.Serialize()
362-
So(s, ShouldEqual, expected)
363-
364-
r = DeserializeSessionDescription(`invalid json{{`)
365-
So(r, ShouldBeNil)
366-
r = DeserializeSessionDescription(`{"sdp":"fake"}`)
367-
So(r, ShouldBeNil)
368-
r = DeserializeSessionDescription(`{"type":"answer"}`)
369-
So(r, ShouldBeNil)
370-
371-
Convey("Roundtrip", func() {
372-
sdp := SessionDescription{"pranswer", "not real"}
373-
r = DeserializeSessionDescription(sdp.Serialize())
374-
So(r.Type, ShouldEqual, sdp.Type)
375-
So(r.Sdp, ShouldEqual, sdp.Sdp)
376-
})
377-
})
378-
})
379-
}
380-
381-
func TestIceCandidate(t *testing.T) {
382-
Convey("IceCandidate", t, func() {
383-
384-
Convey("Serialize and Deserialize", func() {
385-
ice := IceCandidate{
386-
"fake",
387-
"not real",
388-
1337,
389-
}
390-
expected := `{"candidate":"fake","sdpMid":"not real","sdpMLineIndex":1337}`
391-
So(ice.Serialize(), ShouldEqual, expected)
392-
393-
r := DeserializeIceCandidate(`
394-
{"candidate":"still fake","sdpMid":"illusory","sdpMLineIndex":1337}`)
395-
So(r, ShouldNotBeNil)
396-
So(r.Candidate, ShouldEqual, "still fake")
397-
So(r.SdpMid, ShouldEqual, "illusory")
398-
So(r.SdpMLineIndex, ShouldEqual, 1337)
399-
400-
r = DeserializeIceCandidate(`not valid {{{`)
401-
So(r, ShouldBeNil)
402-
403-
// Missing fields should result in errors.
404-
r = DeserializeIceCandidate(`{"sdpMid":"foo","sdpMLineIndex":1234}`)
405-
So(r, ShouldBeNil)
406-
r = DeserializeIceCandidate(`
407-
{"candidate":"something","sdpMLineIndex":1234}`)
408-
So(r, ShouldBeNil)
409-
r = DeserializeIceCandidate(`{"candidate":"something","sdpMid":"bar"}`)
410-
So(r, ShouldBeNil)
411-
412-
Convey("Roundtrip", func() {
413-
ice := IceCandidate{
414-
"totally fake",
415-
"fabricated",
416-
1337,
417-
}
418-
r := DeserializeIceCandidate(ice.Serialize())
419-
So(r, ShouldNotBeNil)
420-
So(r.Candidate, ShouldEqual, ice.Candidate)
421-
So(r.SdpMid, ShouldEqual, ice.SdpMid)
422-
So(r.SdpMLineIndex, ShouldEqual, ice.SdpMLineIndex)
423-
})
424-
})
425-
})
426-
}

0 commit comments

Comments
 (0)