github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/router/httpgzip/httpgzip_test.go (about) 1 package httpgzip 2 3 import ( 4 "fmt" 5 "log" 6 "net/http" 7 "net/http/httptest" 8 "net/http/httputil" 9 "testing" 10 11 "github.com/gocaveman/caveman/router" 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func TestGzipServer(t *testing.T) { 16 17 assert := assert.New(t) 18 19 // do a full end to end test with a server 20 r := router.New() 21 22 // add gzip 23 r.Add(New("")) 24 25 r.Add(&router.HTTPRouteHandler{ 26 Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 27 // log.Printf("HERE: %s", w.Header().Get("Content-Encoding")) 28 w.Header().Set("Content-Type", "text/plain") 29 fmt.Fprintf(w, "v: %s", r.URL.Query().Get("v")) 30 }), 31 }) 32 33 r.Add(&router.HTTPRouteHandler{ 34 Sequence: router.RouteSequenceLast, 35 Handler: http.NotFoundHandler(), 36 }) 37 38 ts := httptest.NewServer(r) 39 defer ts.Close() 40 41 u := ts.URL + "/?v=example1" 42 log.Printf("URL: %s", u) 43 44 // client := ts.Client() 45 client := &http.Client{} 46 req, err := http.NewRequest("GET", u, nil) 47 assert.NoError(err) 48 b, _ := httputil.DumpRequestOut(req, true) 49 log.Printf("REQUEST: %s", b) 50 51 res, err := client.Do(req) 52 // res, err := http.Get(u) 53 assert.NoError(err) 54 defer res.Body.Close() 55 56 // var buf bytes.Buffer 57 // res.Header.Write(&buf) 58 // log.Printf("RESPONSE HEADER: %s", buf.String()) 59 60 b, err = httputil.DumpResponse(res, true) 61 assert.NoError(err) 62 log.Printf("RESPONSE (len=%d): %s", len(b), b) 63 assert.Contains(string(b), "example1") 64 65 // b, err := ioutil.ReadAll(res.Body) 66 // if err != nil { 67 // t.Fatal(err) 68 // } 69 70 // fmt.Printf("%s", b) 71 72 }