2021-02-07 01:42:31 +01:00
|
|
|
package webserver
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
2023-07-10 16:24:30 +02:00
|
|
|
|
|
|
|
"github.com/pion/webrtc/v3"
|
2021-02-07 01:42:31 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestParseGroupName(t *testing.T) {
|
|
|
|
a := []struct{ p, g string }{
|
|
|
|
{"", ""},
|
|
|
|
{"/foo", ""},
|
|
|
|
{"foo", ""},
|
|
|
|
{"group/foo", ""},
|
|
|
|
{"/group", ""},
|
|
|
|
{"/group/..", ""},
|
|
|
|
{"/group/foo/../bar", "bar"},
|
|
|
|
{"/group/foo", "foo"},
|
|
|
|
{"/group/foo/", "foo"},
|
|
|
|
{"/group/foo/bar", "foo/bar"},
|
|
|
|
{"/group/foo/bar/", "foo/bar"},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, pg := range a {
|
|
|
|
t.Run(pg.p, func(t *testing.T) {
|
|
|
|
g := parseGroupName("/group/", pg.p)
|
|
|
|
if g != pg.g {
|
|
|
|
t.Errorf("Path %v, got %v, expected %v",
|
|
|
|
pg.p, g, pg.g)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
2023-07-10 16:24:30 +02:00
|
|
|
|
|
|
|
func TestParseWhip(t *testing.T) {
|
|
|
|
a := []struct{ p, d, b string }{
|
|
|
|
{"", "", ""},
|
|
|
|
{"/", "", ""},
|
|
|
|
{"/foo", "", ""},
|
|
|
|
{"/foo/", "", ""},
|
|
|
|
{"/foo/bar", "", ""},
|
|
|
|
{"/foo/bar/", "", ""},
|
|
|
|
{"/foo/bar/baz", "", ""},
|
|
|
|
{"/foo/bar/baz/", "", ""},
|
|
|
|
{"/foo/.whip", "/foo/", ""},
|
|
|
|
{"/foo/.whip/", "/foo/", ""},
|
|
|
|
{"/foo/.whip/bar", "/foo/", "bar"},
|
|
|
|
{"/foo/.whip/bar/", "/foo/", "bar"},
|
|
|
|
{"/foo/.whip/bar/baz", "", ""},
|
|
|
|
{"/foo/.whip/bar/baz/", "", ""},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, pdb := range a {
|
|
|
|
t.Run(pdb.p, func(t *testing.T) {
|
|
|
|
d, b := parseWhip(pdb.p)
|
|
|
|
if d != pdb.d || b != pdb.b {
|
|
|
|
t.Errorf("Path %v, got %v %v, expected %v %v",
|
|
|
|
pdb.p, d, b, pdb.d, pdb.b)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestFormatICEServer(t *testing.T) {
|
|
|
|
a := []struct {
|
|
|
|
s webrtc.ICEServer
|
|
|
|
v string
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
webrtc.ICEServer{
|
|
|
|
URLs: []string{"stun:stun.example.org:3478"},
|
|
|
|
}, "<stun:stun.example.org:3478>; rel=\"ice-server\"",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
webrtc.ICEServer{
|
|
|
|
URLs: []string{"turn:turn.example.org:3478"},
|
|
|
|
Username: "toto",
|
|
|
|
Credential: "titi",
|
|
|
|
CredentialType: webrtc.ICECredentialTypePassword,
|
|
|
|
}, "<turn:turn.example.org:3478>; rel=\"ice-server\"; " +
|
|
|
|
"username=\"toto\"; credential=\"titi\"; " +
|
|
|
|
"credential-type=\"password\"",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
webrtc.ICEServer{
|
|
|
|
URLs: []string{"turns:turn.example.org:5349"},
|
|
|
|
Username: "toto",
|
|
|
|
Credential: "titi",
|
|
|
|
CredentialType: webrtc.ICECredentialTypePassword,
|
|
|
|
}, "<turns:turn.example.org:5349>; rel=\"ice-server\"; " +
|
|
|
|
"username=\"toto\"; credential=\"titi\"; " +
|
|
|
|
"credential-type=\"password\"",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
webrtc.ICEServer{
|
|
|
|
URLs: []string{"https://stun.example.org"},
|
|
|
|
}, "",
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, sv := range a {
|
|
|
|
t.Run(sv.s.URLs[0], func(t *testing.T) {
|
|
|
|
v := formatICEServer(sv.s, sv.s.URLs[0])
|
|
|
|
if v != sv.v {
|
|
|
|
t.Errorf("Got %v, expected %v", v, sv.v)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|