diff --git a/integrationtests/self/http_test.go b/integrationtests/self/http_test.go index dc0b05f04..0aa4b2d6f 100644 --- a/integrationtests/self/http_test.go +++ b/integrationtests/self/http_test.go @@ -59,6 +59,39 @@ var _ = Describe("HTTP tests", func() { Expect(string(body)).To(Equal("Hello, World!\n")) }) + It("sets and gets request headers", func() { + handlerCalled := make(chan struct{}) + http.HandleFunc("/headers/request", func(w http.ResponseWriter, r *http.Request) { + defer GinkgoRecover() + Expect(r.Header.Get("foo")).To(Equal("bar")) + Expect(r.Header.Get("lorem")).To(Equal("ipsum")) + close(handlerCalled) + }) + + req, err := http.NewRequest(http.MethodGet, "https://localhost:"+testserver.Port()+"/headers/request", nil) + Expect(err).ToNot(HaveOccurred()) + req.Header.Set("foo", "bar") + req.Header.Set("lorem", "ipsum") + resp, err := client.Do(req) + Expect(err).ToNot(HaveOccurred()) + Expect(resp.StatusCode).To(Equal(200)) + Eventually(handlerCalled).Should(BeClosed()) + }) + + It("sets and gets response headers", func() { + http.HandleFunc("/headers/response", func(w http.ResponseWriter, r *http.Request) { + defer GinkgoRecover() + w.Header().Set("foo", "bar") + w.Header().Set("lorem", "ipsum") + }) + + resp, err := client.Get("https://localhost:" + testserver.Port() + "/headers/response") + Expect(err).ToNot(HaveOccurred()) + Expect(resp.StatusCode).To(Equal(200)) + Expect(resp.Header.Get("foo")).To(Equal("bar")) + Expect(resp.Header.Get("lorem")).To(Equal("ipsum")) + }) + It("downloads a small file", func() { resp, err := client.Get("https://localhost:" + testserver.Port() + "/prdata") Expect(err).ToNot(HaveOccurred())