|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package handlers
-
- import (
- "net/http"
- "net/http/httptest"
- "testing"
- )
-
- func TestPanic(t *testing.T) {
- h := PanicHandler(http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
- panic("test")
- }), nil)
- s := httptest.NewServer(h)
- defer s.Close()
-
- res, err := http.Get(s.URL)
- if err != nil {
- panic(err)
- }
- assertStatus(http.StatusInternalServerError, res.StatusCode, t)
- }
-
- func TestNoPanic(t *testing.T) {
- h := PanicHandler(http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
-
- }), nil)
- s := httptest.NewServer(h)
- defer s.Close()
-
- res, err := http.Get(s.URL)
- if err != nil {
- panic(err)
- }
- assertStatus(http.StatusOK, res.StatusCode, t)
- }
-
- func TestPanicCustom(t *testing.T) {
- h := PanicHandler(http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
- panic("ok")
- }),
- http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
- err, ok := GetPanicError(w)
- if !ok {
- panic("no panic error found")
- }
- w.WriteHeader(501)
- w.Write([]byte(err.(string)))
- }))
- s := httptest.NewServer(h)
- defer s.Close()
-
- res, err := http.Get(s.URL)
- if err != nil {
- panic(err)
- }
- assertStatus(501, res.StatusCode, t)
- assertBody([]byte("ok"), res, t)
- }
|