8e7de3f59e
* Change stream model to support multiple routes * Simplify attack algorithm * Use dummy route to detect cameras which accept all routes
106 lines
1.9 KiB
Go
106 lines
1.9 KiB
Go
package cameradar
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestReplace(t *testing.T) {
|
|
validStream1 := Stream{
|
|
Device: "fakeDevice",
|
|
Address: "fakeAddress",
|
|
Port: 1,
|
|
}
|
|
|
|
validStream2 := Stream{
|
|
Device: "fakeDevice",
|
|
Address: "differentFakeAddress",
|
|
Port: 2,
|
|
}
|
|
|
|
invalidStream := Stream{
|
|
Device: "invalidDevice",
|
|
Address: "anotherFakeAddress",
|
|
Port: 3,
|
|
}
|
|
|
|
invalidStreamModified := Stream{
|
|
Device: "updatedDevice",
|
|
Address: "anotherFakeAddress",
|
|
Port: 3,
|
|
}
|
|
|
|
testCases := []struct {
|
|
streams []Stream
|
|
newStream Stream
|
|
|
|
expectedStreams []Stream
|
|
}{
|
|
{
|
|
streams: []Stream{validStream1, validStream2, invalidStream},
|
|
newStream: invalidStreamModified,
|
|
|
|
expectedStreams: []Stream{validStream1, validStream2, invalidStreamModified},
|
|
},
|
|
}
|
|
|
|
for _, test := range testCases {
|
|
streams := replace(test.streams, test.newStream)
|
|
|
|
assert.Equal(t, len(test.expectedStreams), len(streams))
|
|
|
|
for _, expectedStream := range test.expectedStreams {
|
|
assert.Contains(t, streams, expectedStream)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGetCameraRTSPURL(t *testing.T) {
|
|
validStream := Stream{
|
|
Address: "1.2.3.4",
|
|
Username: "ullaakut",
|
|
Password: "ba69897483886f0d2b0afb6345b76c0c",
|
|
Routes: []string{"cameradar.sdp"},
|
|
Port: 1337,
|
|
}
|
|
|
|
testCases := []struct {
|
|
stream Stream
|
|
|
|
expectedRTSPURL string
|
|
}{
|
|
{
|
|
stream: validStream,
|
|
|
|
expectedRTSPURL: "rtsp://ullaakut:ba69897483886f0d2b0afb6345b76c0c@1.2.3.4:1337/cameradar.sdp",
|
|
},
|
|
}
|
|
|
|
for _, test := range testCases {
|
|
assert.Equal(t, test.expectedRTSPURL, GetCameraRTSPURL(test.stream))
|
|
}
|
|
}
|
|
|
|
func TestGetCameraAdminPanelURL(t *testing.T) {
|
|
validStream := Stream{
|
|
Address: "1.2.3.4",
|
|
}
|
|
|
|
testCases := []struct {
|
|
stream Stream
|
|
|
|
expectedRTSPURL string
|
|
}{
|
|
{
|
|
stream: validStream,
|
|
|
|
expectedRTSPURL: "http://1.2.3.4/",
|
|
},
|
|
}
|
|
|
|
for _, test := range testCases {
|
|
assert.Equal(t, test.expectedRTSPURL, GetCameraAdminPanelURL(test.stream))
|
|
}
|
|
}
|