diff options
author | Matthew Holt <mholt@users.noreply.github.com> | 2019-06-11 17:46:11 -0600 |
---|---|---|
committer | Matthew Holt <mholt@users.noreply.github.com> | 2019-06-11 17:46:11 -0600 |
commit | 0c8763a7283daaf955cfdb3b0e88dc24fd6d3b2b (patch) | |
tree | d988672ddb49be801962bca58f2003bd4332dc70 /modules/caddyhttp | |
parent | f5b4f268dc73078467f19faf6068cc8047cabc7f (diff) |
Add simple tests for static responder
Diffstat (limited to 'modules/caddyhttp')
-rw-r--r-- | modules/caddyhttp/staticresp_test.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/modules/caddyhttp/staticresp_test.go b/modules/caddyhttp/staticresp_test.go new file mode 100644 index 0000000..ac868d8 --- /dev/null +++ b/modules/caddyhttp/staticresp_test.go @@ -0,0 +1,51 @@ +package caddyhttp + +import ( + "context" + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" + + "github.com/caddyserver/caddy2" +) + +func TestStaticResponseHandler(t *testing.T) { + r := fakeRequest() + w := httptest.NewRecorder() + + s := Static{ + StatusCode: http.StatusNotFound, + Headers: http.Header{ + "X-Test": []string{"Testing"}, + }, + Body: "Text", + Close: true, + } + + err := s.ServeHTTP(w, r) + if err != nil { + t.Errorf("did not expect an error, but got: %v", err) + } + + resp := w.Result() + respBody, _ := ioutil.ReadAll(resp.Body) + + if resp.StatusCode != http.StatusNotFound { + t.Errorf("expected status %d but got %d", http.StatusNotFound, resp.StatusCode) + } + if resp.Header.Get("X-Test") != "Testing" { + t.Errorf("expected x-test header to be 'testing' but was '%s'", resp.Header.Get("X-Test")) + } + if string(respBody) != "Text" { + t.Errorf("expected body to be 'test' but was '%s'", respBody) + } +} + +func fakeRequest() *http.Request { + r, _ := http.NewRequest("GET", "/", nil) + repl := caddy2.NewReplacer() + ctx := context.WithValue(r.Context(), caddy2.ReplacerCtxKey, repl) + r = r.WithContext(ctx) + return r +} |