You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
package mux |
|
|
|
import ( |
|
"bytes" |
|
"github.com/stretchr/testify/assert" |
|
"net/http" |
|
"testing" |
|
) |
|
|
|
func testHandler(status int) http.HandlerFunc { |
|
return func(w http.ResponseWriter, r *http.Request) { |
|
w.WriteHeader(status) |
|
} |
|
} |
|
|
|
func TestLogger(t *testing.T) { |
|
buffer := new(bytes.Buffer) |
|
r := NewRouter() |
|
r.Use(LoggerWithConfig(LogConfig{Output: buffer})) |
|
r.HandleFunc("/example", testHandler(http.StatusOK)). |
|
Methods("GET", "POST", "PUT", "DELETE", "OPTIONS") |
|
|
|
rw := NewRecorder() |
|
|
|
req := newRequest("GET", "/example") |
|
r.ServeHTTP(rw, req) |
|
assert.Contains(t, buffer.String(), "200") |
|
assert.Contains(t, buffer.String(), "GET") |
|
assert.Contains(t, buffer.String(), "/example") |
|
|
|
buffer.Reset() |
|
req = newRequest("POST", "/example") |
|
r.ServeHTTP(rw, req) |
|
assert.Contains(t, buffer.String(), "200") |
|
assert.Contains(t, buffer.String(), "POST") |
|
assert.Contains(t, buffer.String(), "/example") |
|
|
|
buffer.Reset() |
|
req = newRequest("PUT", "/example") |
|
r.ServeHTTP(rw, req) |
|
assert.Contains(t, buffer.String(), "200") |
|
assert.Contains(t, buffer.String(), "PUT") |
|
assert.Contains(t, buffer.String(), "/example") |
|
|
|
buffer.Reset() |
|
req = newRequest("DELETE", "/example") |
|
r.ServeHTTP(rw, req) |
|
assert.Contains(t, buffer.String(), "200") |
|
assert.Contains(t, buffer.String(), "DELETE") |
|
assert.Contains(t, buffer.String(), "/example") |
|
|
|
buffer.Reset() |
|
req = newRequest("OPTIONS", "/example") |
|
r.ServeHTTP(rw, req) |
|
assert.Contains(t, buffer.String(), "200") |
|
assert.Contains(t, buffer.String(), "OPTIONS") |
|
assert.Contains(t, buffer.String(), "/example") |
|
}
|
|
|