forked from pion/webrtc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
configuration_test.go
76 lines (65 loc) · 1.74 KB
/
configuration_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package webrtc
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/assert"
)
func TestConfiguration_getICEServers(t *testing.T) {
t.Run("Success", func(t *testing.T) {
expectedServerStr := "stun:stun.l.google.com:19302"
cfg := Configuration{
ICEServers: []ICEServer{
{
URLs: []string{expectedServerStr},
},
},
}
parsedURLs := cfg.getICEServers()
assert.Equal(t, expectedServerStr, parsedURLs[0].URLs[0])
})
t.Run("Success", func(t *testing.T) {
// ignore the fact that stun URLs shouldn't have a query
serverStr := "stun:global.stun.twilio.com:3478?transport=udp"
expectedServerStr := "stun:global.stun.twilio.com:3478"
cfg := Configuration{
ICEServers: []ICEServer{
{
URLs: []string{serverStr},
},
},
}
parsedURLs := cfg.getICEServers()
assert.Equal(t, expectedServerStr, parsedURLs[0].URLs[0])
})
}
func TestConfigurationJSON(t *testing.T) {
j := `{
"iceServers": [{"URLs": ["turn:turn.example.org"],
"username": "jch",
"credential": "topsecret"
}],
"iceTransportPolicy": "relay",
"bundlePolicy": "balanced",
"rtcpMuxPolicy": "require"
}`
conf := Configuration{
ICEServers: []ICEServer{
{
URLs: []string{"turn:turn.example.org"},
Username: "jch",
Credential: "topsecret",
},
},
ICETransportPolicy: ICETransportPolicyRelay,
BundlePolicy: BundlePolicyBalanced,
RTCPMuxPolicy: RTCPMuxPolicyRequire,
}
var conf2 Configuration
assert.NoError(t, json.Unmarshal([]byte(j), &conf2))
assert.Equal(t, conf, conf2)
j2, err := json.Marshal(conf2)
assert.NoError(t, err)
var conf3 Configuration
assert.NoError(t, json.Unmarshal(j2, &conf3))
assert.Equal(t, conf2, conf3)
}