31 lines
937 B
Go
31 lines
937 B
Go
package device
|
|
|
|
import "testing"
|
|
|
|
func TestDeviceRejectsCredentialsInEndpointReference(t *testing.T) {
|
|
t.Parallel()
|
|
value := validVideoDevice()
|
|
value.EndpointRef = "http://" + "user" + ":" + "redacted" + "@camera.invalid/onvif"
|
|
if err := value.Validate(); err == nil {
|
|
t.Fatal("expected endpoint credentials to be rejected")
|
|
}
|
|
}
|
|
|
|
func TestDeviceRejectsUnsafeMediaPath(t *testing.T) {
|
|
t.Parallel()
|
|
value := validVideoDevice()
|
|
value.PathName = "tenant/../another-camera"
|
|
if err := value.Validate(); err == nil {
|
|
t.Fatal("expected unsafe path name to be rejected")
|
|
}
|
|
}
|
|
|
|
func validVideoDevice() Device {
|
|
return Device{
|
|
ID: "camera", TenantID: "tenant", SiteID: "site", SerialNumber: "serial", Name: "Camera",
|
|
Modality: ModalityVideo, Capabilities: []Capability{CapabilityVideoCapture},
|
|
DesiredState: DesiredEnabled, ActualState: ActualPending,
|
|
EndpointRef: "onvif://camera", PathName: "sense/tenant/site/camera",
|
|
}
|
|
}
|