github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/controller/middleware/auth/auth_test.go (about) 1 package auth 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "testing" 7 ) 8 9 var testHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 10 w.Write([]byte("testing")) 11 }) 12 13 func TestNoAuthToken(t *testing.T) { 14 res := httptest.NewRecorder() 15 req, _ := http.NewRequest("GET", "/", nil) 16 17 a := NewAuthRequired(nil, []string{}) 18 a.Handler(testHandler).ServeHTTP(res, req) 19 20 if res.Code != http.StatusUnauthorized { 21 t.Fatalf("expected 401; got %s", res.Code) 22 } 23 } 24 25 func TestWhiteListAny(t *testing.T) { 26 res := httptest.NewRecorder() 27 req, _ := http.NewRequest("GET", "/", nil) 28 29 a := NewAuthRequired(nil, []string{}) 30 a.Handler(testHandler).ServeHTTP(res, req) 31 32 if res.Code != http.StatusUnauthorized { 33 t.Fatalf("expected 401; got %d", res.Code) 34 } 35 36 res = httptest.NewRecorder() 37 req, _ = http.NewRequest("GET", "/", nil) 38 39 a = NewAuthRequired(nil, []string{"0.0.0.0"}) 40 a.Handler(testHandler).ServeHTTP(res, req) 41 42 if res.Code != http.StatusOK { 43 t.Fatalf("expected 200; got %d", res.Code) 44 } 45 } 46 47 func TestWhiteListInvalid(t *testing.T) { 48 res := httptest.NewRecorder() 49 req, _ := http.NewRequest("GET", "/", nil) 50 51 a := NewAuthRequired(nil, []string{"1.2.3.4/32"}) 52 a.Handler(testHandler).ServeHTTP(res, req) 53 54 if res.Code != http.StatusUnauthorized { 55 t.Fatalf("expected 401; got %d", res.Code) 56 } 57 }