aboutsummaryrefslogtreecommitdiff
path: root/header_test.go
diff options
context:
space:
mode:
authorGravatar AutumnSun <qsy1314@mail.ustc.edu.cn> 2023-07-02 18:40:26 +0800
committerGravatar GitHub <noreply@github.com> 2023-07-02 12:40:26 +0200
commit0d0bbfee5a8dd12a82e442d3cbb11e56726dd06e (patch)
tree9cf86b8ad5e5709c3907eda99d5919acafc242e1 /header_test.go
parentRemove unnecessary indent blocks (#1586) (diff)
downloadfasthttp-0d0bbfee5a8dd12a82e442d3cbb11e56726dd06e.tar.gz
fasthttp-0d0bbfee5a8dd12a82e442d3cbb11e56726dd06e.tar.bz2
fasthttp-0d0bbfee5a8dd12a82e442d3cbb11e56726dd06e.zip
Auto add 'Vary' header after compression (#1585)
* Auto add 'Vary' header after compression Add config `SetAddVaryHeaderForCompression` to enable 'Vary: Accept-Encoding' header when compression is used. * feat: always set the Vary header * create and use `ResponseHeader.AddVaryBytes` * not export 'AddVaryBytes'
Diffstat (limited to 'header_test.go')
-rw-r--r--header_test.go62
1 files changed, 62 insertions, 0 deletions
diff --git a/header_test.go b/header_test.go
index 9f9fd35..c2b8b18 100644
--- a/header_test.go
+++ b/header_test.go
@@ -3007,3 +3007,65 @@ func TestResponseHeader_Keys(t *testing.T) {
t.Fatalf("Unexpected value %q. Expected %q", actualTrailerKeys, expectedTrailerKeys)
}
}
+
+func TestAddVaryHeader(t *testing.T) {
+ t.Parallel()
+
+ var h ResponseHeader
+
+ h.addVaryBytes([]byte("Accept-Encoding"))
+ got := string(h.Peek("Vary"))
+ expected := "Accept-Encoding"
+ if got != expected {
+ t.Errorf("expected %q got %q", expected, got)
+ }
+
+ var buf bytes.Buffer
+ h.WriteTo(&buf) //nolint:errcheck
+
+ if n := strings.Count(buf.String(), "Vary: "); n != 1 {
+ t.Errorf("Vary occurred %d times", n)
+ }
+}
+
+func TestAddVaryHeaderExisting(t *testing.T) {
+ t.Parallel()
+
+ var h ResponseHeader
+
+ h.Set("Vary", "Accept")
+ h.addVaryBytes([]byte("Accept-Encoding"))
+ got := string(h.Peek("Vary"))
+ expected := "Accept,Accept-Encoding"
+ if got != expected {
+ t.Errorf("expected %q got %q", expected, got)
+ }
+
+ var buf bytes.Buffer
+ h.WriteTo(&buf) //nolint:errcheck
+
+ if n := strings.Count(buf.String(), "Vary: "); n != 1 {
+ t.Errorf("Vary occurred %d times", n)
+ }
+}
+
+func TestAddVaryHeaderExistingAcceptEncoding(t *testing.T) {
+ t.Parallel()
+
+ var h ResponseHeader
+
+ h.Set("Vary", "Accept-Encoding")
+ h.addVaryBytes([]byte("Accept-Encoding"))
+ got := string(h.Peek("Vary"))
+ expected := "Accept-Encoding"
+ if got != expected {
+ t.Errorf("expected %q got %q", expected, got)
+ }
+
+ var buf bytes.Buffer
+ h.WriteTo(&buf) //nolint:errcheck
+
+ if n := strings.Count(buf.String(), "Vary: "); n != 1 {
+ t.Errorf("Vary occurred %d times", n)
+ }
+}