summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/staticresp_test.go
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2019-06-11 17:46:11 -0600
committerMatthew Holt <mholt@users.noreply.github.com>2019-06-11 17:46:11 -0600
commit0c8763a7283daaf955cfdb3b0e88dc24fd6d3b2b (patch)
treed988672ddb49be801962bca58f2003bd4332dc70 /modules/caddyhttp/staticresp_test.go
parentf5b4f268dc73078467f19faf6068cc8047cabc7f (diff)
Add simple tests for static responder
Diffstat (limited to 'modules/caddyhttp/staticresp_test.go')
-rw-r--r--modules/caddyhttp/staticresp_test.go51
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
+}