github.com/grafana/pyroscope@v1.18.0/pkg/util/gziphandler/gzip_go18_test.go (about) 1 // SPDX-License-Identifier: AGPL-3.0-only 2 // Provenance-includes-location: https://github.com/nytimes/gziphandler/blob/2f8bb1d30d9d69c8e0c3714da5a9917125a87769/gzip_go18_test.go 3 // Provenance-includes-license: Apache-2.0 4 // Provenance-includes-copyright: Copyright 2016-2017 The New York Times Company. 5 //go:build go1.8 6 7 package gziphandler 8 9 import ( 10 "net/http" 11 "testing" 12 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestSetAcceptEncodingForPushOptionsWithoutHeaders(t *testing.T) { 17 var opts *http.PushOptions 18 opts = setAcceptEncodingForPushOptions(opts) 19 20 assert.NotNil(t, opts) 21 assert.NotNil(t, opts.Header) 22 23 for k, v := range opts.Header { 24 assert.Equal(t, "Accept-Encoding", k) 25 assert.Len(t, v, 1) 26 assert.Equal(t, "gzip", v[0]) 27 } 28 29 opts = &http.PushOptions{} 30 opts = setAcceptEncodingForPushOptions(opts) 31 32 assert.NotNil(t, opts) 33 assert.NotNil(t, opts.Header) 34 35 for k, v := range opts.Header { 36 assert.Equal(t, "Accept-Encoding", k) 37 assert.Len(t, v, 1) 38 assert.Equal(t, "gzip", v[0]) 39 } 40 } 41 42 func TestSetAcceptEncodingForPushOptionsWithHeaders(t *testing.T) { 43 opts := &http.PushOptions{ 44 Header: http.Header{ 45 "User-Agent": []string{"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36"}, 46 }, 47 } 48 opts = setAcceptEncodingForPushOptions(opts) 49 50 assert.NotNil(t, opts) 51 assert.NotNil(t, opts.Header) 52 53 assert.Equal(t, "gzip", opts.Header.Get("Accept-Encoding")) 54 assert.Equal(t, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36", opts.Header.Get("User-Agent")) 55 56 opts = &http.PushOptions{ 57 Header: http.Header{ 58 "User-Agent": []string{"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36"}, 59 acceptEncoding: []string{"deflate"}, 60 }, 61 } 62 opts = setAcceptEncodingForPushOptions(opts) 63 64 assert.NotNil(t, opts) 65 assert.NotNil(t, opts.Header) 66 67 e, found := opts.Header["Accept-Encoding"] 68 if !found { 69 assert.Fail(t, "Missing Accept-Encoding header value") 70 } 71 assert.Len(t, e, 1) 72 assert.Equal(t, "deflate", e[0]) 73 assert.Equal(t, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36", opts.Header.Get("User-Agent")) 74 }