1package negroni
2
3import (
4	"bytes"
5	"log"
6	"net/http"
7	"net/http/httptest"
8	"testing"
9)
10
11func TestRecovery(t *testing.T) {
12	buff := bytes.NewBufferString("")
13	recorder := httptest.NewRecorder()
14
15	rec := NewRecovery()
16	rec.Logger = log.New(buff, "[negroni] ", 0)
17
18	n := New()
19	// replace log for testing
20	n.Use(rec)
21	n.UseHandler(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
22		panic("here is a panic!")
23	}))
24	n.ServeHTTP(recorder, (*http.Request)(nil))
25	expect(t, recorder.Code, http.StatusInternalServerError)
26	refute(t, recorder.Body.Len(), 0)
27	refute(t, len(buff.String()), 0)
28}
29