abfea6354c
see https://www.w3.org/TR/css-fonts-3/#font-fetching-requirements Signed-off-by: Michael Mayer <michael@photoprism.app>
92 lines
1.8 KiB
Go
92 lines
1.8 KiB
Go
package header
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestIsCdn(t *testing.T) {
|
|
t.Run("Header", func(t *testing.T) {
|
|
u, _ := url.Parse("/foo")
|
|
|
|
r := &http.Request{
|
|
URL: u,
|
|
Header: http.Header{CdnHost: []string{"host.cdn.com"}},
|
|
Method: http.MethodGet,
|
|
}
|
|
|
|
assert.True(t, IsCdn(r))
|
|
})
|
|
t.Run("EmptyHeader", func(t *testing.T) {
|
|
u, _ := url.Parse("/foo")
|
|
|
|
r := &http.Request{
|
|
URL: u,
|
|
Header: http.Header{CdnHost: []string{""}},
|
|
Method: http.MethodPost,
|
|
}
|
|
|
|
assert.False(t, IsCdn(r))
|
|
})
|
|
t.Run("NoHeader", func(t *testing.T) {
|
|
u, _ := url.Parse("/foo")
|
|
|
|
r := &http.Request{
|
|
URL: u,
|
|
Header: http.Header{Accept: []string{"application/json"}},
|
|
Method: http.MethodPost,
|
|
}
|
|
|
|
assert.False(t, IsCdn(r))
|
|
})
|
|
}
|
|
|
|
func TestAbortCdnRequest(t *testing.T) {
|
|
t.Run("Allow", func(t *testing.T) {
|
|
u, _ := url.Parse("/foo")
|
|
|
|
r := &http.Request{
|
|
URL: u,
|
|
Header: http.Header{CdnHost: []string{"host.cdn.com"}},
|
|
Method: http.MethodGet,
|
|
}
|
|
|
|
assert.False(t, AbortCdnRequest(r))
|
|
})
|
|
t.Run("UnsafeMethod", func(t *testing.T) {
|
|
u, _ := url.Parse("/foo")
|
|
|
|
r := &http.Request{
|
|
URL: u,
|
|
Header: http.Header{CdnHost: []string{"host.cdn.com"}},
|
|
Method: http.MethodPost,
|
|
}
|
|
|
|
assert.True(t, AbortCdnRequest(r))
|
|
})
|
|
t.Run("Root", func(t *testing.T) {
|
|
u, _ := url.Parse("/")
|
|
|
|
r := &http.Request{
|
|
URL: u,
|
|
Header: http.Header{CdnHost: []string{"host.cdn.com"}},
|
|
Method: http.MethodGet,
|
|
}
|
|
|
|
assert.True(t, AbortCdnRequest(r))
|
|
})
|
|
t.Run("NoCdn", func(t *testing.T) {
|
|
u, _ := url.Parse("/foo")
|
|
|
|
r := &http.Request{
|
|
URL: u,
|
|
Header: http.Header{Accept: []string{"application/json"}},
|
|
Method: http.MethodPost,
|
|
}
|
|
|
|
assert.False(t, AbortCdnRequest(r))
|
|
})
|
|
}
|