mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2026-04-22 23:57:20 +08:00
69 lines
1.4 KiB
Go
69 lines
1.4 KiB
Go
package streams
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/AlexxIT/go2rtc/internal/api"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestApiStreamsReadOnly(t *testing.T) {
|
|
prevReadOnly := api.ReadOnly
|
|
t.Cleanup(func() {
|
|
api.ReadOnly = prevReadOnly
|
|
})
|
|
|
|
api.ReadOnly = true
|
|
|
|
for _, method := range []string{"PUT", "PATCH", "POST", "DELETE"} {
|
|
t.Run(method, func(t *testing.T) {
|
|
req := httptest.NewRequest(method, "/api/streams?src=test", nil)
|
|
w := httptest.NewRecorder()
|
|
|
|
apiStreams(w, req)
|
|
|
|
require.Equal(t, http.StatusForbidden, w.Code)
|
|
})
|
|
}
|
|
|
|
t.Run("GET allowed", func(t *testing.T) {
|
|
req := httptest.NewRequest("GET", "/api/streams", nil)
|
|
w := httptest.NewRecorder()
|
|
|
|
apiStreams(w, req)
|
|
|
|
require.Equal(t, http.StatusOK, w.Code)
|
|
})
|
|
}
|
|
|
|
func TestApiPreloadReadOnly(t *testing.T) {
|
|
prevReadOnly := api.ReadOnly
|
|
t.Cleanup(func() {
|
|
api.ReadOnly = prevReadOnly
|
|
})
|
|
|
|
api.ReadOnly = true
|
|
|
|
for _, method := range []string{"PUT", "DELETE"} {
|
|
t.Run(method, func(t *testing.T) {
|
|
req := httptest.NewRequest(method, "/api/preload?src=test", nil)
|
|
w := httptest.NewRecorder()
|
|
|
|
apiPreload(w, req)
|
|
|
|
require.Equal(t, http.StatusForbidden, w.Code)
|
|
})
|
|
}
|
|
|
|
t.Run("GET allowed", func(t *testing.T) {
|
|
req := httptest.NewRequest("GET", "/api/preload", nil)
|
|
w := httptest.NewRecorder()
|
|
|
|
apiPreload(w, req)
|
|
|
|
require.Equal(t, http.StatusOK, w.Code)
|
|
})
|
|
}
|