@ -3,6 +3,7 @@ package mux
@@ -3,6 +3,7 @@ package mux
import (
"bytes"
"net/http"
"net/http/httptest"
"testing"
)
@ -563,3 +564,36 @@ func TestMiddlewareOnMultiSubrouter(t *testing.T) {
@@ -563,3 +564,36 @@ func TestMiddlewareOnMultiSubrouter(t *testing.T) {
}
} )
}
func TestNewMiddleware ( t * testing . T ) {
mwFuncCalls := 0
handler := & mockHandler {
serverHttp : func ( w http . ResponseWriter , r * http . Request ) {
if mwFuncCalls != 1 {
t . Fatalf ( "Expected Handler to be called after mw run. However, the middleware run {%d} times before the handler." , mwFuncCalls )
}
mwFuncCalls ++
} ,
}
newHandler := NewMiddleware ( func ( http . ResponseWriter , * http . Request ) {
mwFuncCalls ++
} ) . Middleware ( handler )
newHandler . ServeHTTP ( & httptest . ResponseRecorder { } , & http . Request { } )
if mwFuncCalls != 2 {
t . Fatalf ( "Expected mwFuncCalls to be 2, but got {%d}" , mwFuncCalls )
}
}
type mockHandler struct {
serverHttp func ( writer http . ResponseWriter , request * http . Request )
}
func ( d * mockHandler ) ServeHTTP ( writer http . ResponseWriter , request * http . Request ) {
d . serverHttp ( writer , request )
}