0
Fork 0
mirror of https://github.com/willnorris/imageproxy.git synced 2024-12-16 21:56:43 -05:00

add more tests: mostly trivial checks

This commit is contained in:
Will Norris 2019-03-22 08:46:34 +00:00
parent b984bd0796
commit 0791f8ceec
3 changed files with 48 additions and 1 deletions

View file

@ -24,4 +24,8 @@ func TestNopCache(t *testing.T) {
if ok != false {
t.Errorf("NopCache.Get returned ok = true, should always be false.")
}
// nothing to test on these methods other than to verify they exist
NopCache.Set("", []byte{})
NopCache.Delete("")
}

View file

@ -16,6 +16,7 @@ package imageproxy
import (
"net/http"
"net/url"
"testing"
)
@ -98,7 +99,7 @@ func TestParseOptions(t *testing.T) {
{"r90,fh,sc0ffee,png,q90,1x2,fv,fit", Options{1, 2, true, 90, true, true, 90, "c0ffee", false, "png", 0, 0, 0, 0, false}},
// all flags, in different orders with crop
{"q70,cx100,cw300,1x2,fit,cy200,r90,fv,ch400,fh,sc0ffee,png", Options{1, 2, true, 90, true, true, 70, "c0ffee", false, "png", 100, 200, 300, 400, false}},
{"q70,cx100,cw300,1x2,fit,cy200,r90,fv,ch400,fh,sc0ffee,png,sc,scaleUp", Options{1, 2, true, 90, true, true, 70, "c0ffee", true, "png", 100, 200, 300, 400, true}},
{"ch400,r90,cw300,fh,sc0ffee,png,cx100,q90,cy200,1x2,fv,fit", Options{1, 2, true, 90, true, true, 90, "c0ffee", false, "png", 100, 200, 300, 400, false}},
// all flags, in different orders with crop & different resizes
@ -204,3 +205,19 @@ func TestNewRequest(t *testing.T) {
}
}
}
func TestNewRequest_BaseURL(t *testing.T) {
req, _ := http.NewRequest("GET", "/x/path", nil)
base, _ := url.Parse("https://example.com/")
r, err := NewRequest(req, base)
if err != nil {
t.Errorf("NewRequest(%v, %v) returned unexpected error: %v", req, base, err)
}
want := "https://example.com/path#0x0"
if got := r.String(); got != want {
t.Errorf("NewRequest(%v, %v) returned %q, want %q", req, base, got, want)
}
}

View file

@ -195,6 +195,28 @@ func TestHostMatches(t *testing.T) {
}
}
func TestReferrerMatches(t *testing.T) {
hosts := []string{"a.test"}
tests := []struct {
referrer string
valid bool
}{
{"", false},
{"%", false},
{"http://a.test/", true},
{"http://b.test/", false},
}
for _, tt := range tests {
r, _ := http.NewRequest("GET", "/", nil)
r.Header.Set("Referer", tt.referrer)
if got, want := referrerMatches(hosts, r), tt.valid; got != want {
t.Errorf("referrerMatches(%v, %v) returned %v, want %v", hosts, r, got, want)
}
}
}
func TestValidSignature(t *testing.T) {
key := []byte("c0ffee")
@ -348,6 +370,10 @@ func TestProxy_ServeHTTP(t *testing.T) {
{"/http://good.test/nocontent", http.StatusNoContent}, // non-OK response
{"/100/http://good.test/png", http.StatusOK},
{"/100/http://good.test/plain", http.StatusForbidden}, // non-image response
// health-check URLs
{"/", http.StatusOK},
{"/health-check", http.StatusOK},
}
for _, tt := range tests {