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  }