mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-10-06 00:37:00 +08:00
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package core
|
|
|
|
import (
|
|
"fmt"
|
|
"net/url"
|
|
"testing"
|
|
|
|
"github.com/pion/sdp/v3"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSDP(t *testing.T) {
|
|
medias := []*Media{{
|
|
Kind: KindAudio, Direction: DirectionSendonly,
|
|
Codecs: []*Codec{
|
|
{Name: CodecPCMU, ClockRate: 8000},
|
|
},
|
|
}}
|
|
|
|
data, err := MarshalSDP("go2rtc/1.0.0", medias)
|
|
assert.Empty(t, err)
|
|
|
|
sd := &sdp.SessionDescription{}
|
|
err = sd.Unmarshal(data)
|
|
assert.Empty(t, err)
|
|
}
|
|
|
|
func TestParseQuery(t *testing.T) {
|
|
u, _ := url.Parse("rtsp://localhost:8554/camera1")
|
|
medias := ParseQuery(u.Query())
|
|
assert.Nil(t, medias)
|
|
|
|
for _, rawULR := range []string{
|
|
"rtsp://localhost:8554/camera1?video",
|
|
"rtsp://localhost:8554/camera1?video=copy",
|
|
"rtsp://localhost:8554/camera1?video=any",
|
|
} {
|
|
u, _ = url.Parse(rawULR)
|
|
medias = ParseQuery(u.Query())
|
|
assert.Equal(t, []*Media{
|
|
{Kind: KindVideo, Direction: DirectionSendonly, Codecs: []*Codec{{Name: CodecAny}}},
|
|
}, medias)
|
|
}
|
|
}
|
|
|
|
func TestClone(t *testing.T) {
|
|
media1 := &Media{
|
|
Kind: KindVideo,
|
|
Direction: DirectionRecvonly,
|
|
Codecs: []*Codec{
|
|
{Name: CodecPCMU, ClockRate: 8000},
|
|
},
|
|
}
|
|
media2 := media1.Clone()
|
|
|
|
p1 := fmt.Sprintf("%p", media1)
|
|
p2 := fmt.Sprintf("%p", media2)
|
|
require.NotEqualValues(t, p1, p2)
|
|
|
|
p3 := fmt.Sprintf("%p", media1.Codecs[0])
|
|
p4 := fmt.Sprintf("%p", media2.Codecs[0])
|
|
require.NotEqualValues(t, p3, p4)
|
|
}
|