improve auth tests and rename auth struct

This commit is contained in:
mutantmonkey 2015-10-11 17:43:31 -07:00
parent aa7dad3a03
commit 3c9e260926
2 changed files with 21 additions and 13 deletions

View File

@ -24,7 +24,7 @@ type AuthOptions struct {
UnauthMethods []string UnauthMethods []string
} }
type uploadBasicAuth struct { type auth struct {
successHandler http.Handler successHandler http.Handler
failureHandler http.Handler failureHandler http.Handler
o AuthOptions o AuthOptions
@ -56,7 +56,7 @@ func checkAuth(authFile string, decodedAuth []byte) (result bool, err error) {
return return
} }
func (a uploadBasicAuth) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (a auth) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if sliceContains(a.o.UnauthMethods, r.Method) { if sliceContains(a.o.UnauthMethods, r.Method) {
// allow unauthenticated methods // allow unauthenticated methods
a.successHandler.ServeHTTP(w, r) a.successHandler.ServeHTTP(w, r)
@ -86,7 +86,7 @@ func (a uploadBasicAuth) ServeHTTP(w http.ResponseWriter, r *http.Request) {
func UploadAuth(o AuthOptions) func(http.Handler) http.Handler { func UploadAuth(o AuthOptions) func(http.Handler) http.Handler {
fn := func(h http.Handler) http.Handler { fn := func(h http.Handler) http.Handler {
return uploadBasicAuth{ return auth{
successHandler: h, successHandler: h,
failureHandler: http.HandlerFunc(badAuthorizationHandler), failureHandler: http.HandlerFunc(badAuthorizationHandler),
o: o, o: o,

View File

@ -52,13 +52,20 @@ func TestIndex(t *testing.T) {
} }
} }
func TestIndexAuthKeys(t *testing.T) { func TestAuthKeysRedirects(t *testing.T) {
Config.authFile = "/dev/null" Config.authFile = "/dev/null"
redirects := []string{
"/",
"/paste/",
}
mux := setup() mux := setup()
for _, v := range redirects {
w := httptest.NewRecorder() w := httptest.NewRecorder()
req, err := http.NewRequest("GET", "/", nil) req, err := http.NewRequest("GET", v, nil)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -66,7 +73,8 @@ func TestIndexAuthKeys(t *testing.T) {
mux.ServeHTTP(w, req) mux.ServeHTTP(w, req)
if w.Code != 303 { if w.Code != 303 {
t.Fatalf("Status code is not 301, but %d", w.Code) t.Fatalf("Status code is not 303, but %d", w.Code)
}
} }
Config.authFile = "" Config.authFile = ""