golanggohlsrtmpwebrtcmedia-serverobs-studiortcprtmp-proxyrtmp-serverrtprtsprtsp-proxyrtsp-relayrtsp-serversrtstreamingwebrtc-proxy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.0 KiB
52 lines
1.0 KiB
package webrtc |
|
|
|
import ( |
|
"testing" |
|
|
|
"github.com/pion/webrtc/v3" |
|
"github.com/stretchr/testify/require" |
|
) |
|
|
|
var linkHeaderCases = []struct { |
|
name string |
|
enc []string |
|
dec []webrtc.ICEServer |
|
}{ |
|
{ |
|
"a", |
|
[]string{ |
|
`<stun:stun.l.google.com:19302>; rel="ice-server"`, |
|
`<turns:turn.example.com>; rel="ice-server"; username="myuser\"a?2;B"; ` + |
|
`credential="mypwd"; credential-type="password"`, |
|
}, |
|
[]webrtc.ICEServer{ |
|
{ |
|
URLs: []string{"stun:stun.l.google.com:19302"}, |
|
}, |
|
{ |
|
URLs: []string{"turns:turn.example.com"}, |
|
Username: "myuser\"a?2;B", |
|
Credential: "mypwd", |
|
}, |
|
}, |
|
}, |
|
} |
|
|
|
func TestLinkHeaderUnmarshal(t *testing.T) { |
|
for _, ca := range linkHeaderCases { |
|
t.Run(ca.name, func(t *testing.T) { |
|
dec, err := LinkHeaderUnmarshal(ca.enc) |
|
require.NoError(t, err) |
|
require.Equal(t, ca.dec, dec) |
|
}) |
|
} |
|
} |
|
|
|
func TestLinkHeaderMarshal(t *testing.T) { |
|
for _, ca := range linkHeaderCases { |
|
t.Run(ca.name, func(t *testing.T) { |
|
enc := LinkHeaderMarshal(ca.dec) |
|
require.Equal(t, ca.enc, enc) |
|
}) |
|
} |
|
}
|
|
|