32 lines
922 B
Go
32 lines
922 B
Go
package onvif
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseFixtureProfilesAndStreamURI(t *testing.T) {
|
|
profilesData, err := os.ReadFile(filepath.Join("..", "..", "..", "..", "..", "testdata", "onvif", "profiles.xml"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
profiles, err := ParseProfiles(profilesData)
|
|
if err != nil || len(profiles) != 2 || profiles[0].Width != 1920 {
|
|
t.Fatalf("profiles=%#v err=%v", profiles, err)
|
|
}
|
|
uriData, err := os.ReadFile(filepath.Join("..", "..", "..", "..", "..", "testdata", "onvif", "stream-uri.xml"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
uri, err := ParseStreamURI(uriData)
|
|
if err != nil || uri != "rtsp://camera.invalid/live/main" {
|
|
t.Fatalf("uri=%q err=%v", uri, err)
|
|
}
|
|
}
|
|
func TestRejectCredentialInStreamURI(t *testing.T) {
|
|
if _, err := ParseStreamURI([]byte(`<Uri>rtsp://user:pass@camera.invalid/live</Uri>`)); err == nil {
|
|
t.Fatal("credential URI accepted")
|
|
}
|
|
}
|