@@ -104,44 +104,38 @@ func TestGzipPNG(t *testing.T) {
104
104
assert .Equal (t , w .Body .String (), "this is a PNG!" )
105
105
}
106
106
107
- func TestExcludedExtensions (t * testing.T ) {
108
- req , _ := http .NewRequestWithContext (context .Background (), "GET" , "/index.html" , nil )
109
- req .Header .Add ("Accept-Encoding" , "gzip" )
110
-
111
- router := gin .New ()
112
- router .Use (Gzip (DefaultCompression , WithExcludedExtensions ([]string {".html" })))
113
- router .GET ("/index.html" , func (c * gin.Context ) {
114
- c .String (200 , "this is a HTML!" )
115
- })
116
-
117
- w := httptest .NewRecorder ()
118
- router .ServeHTTP (w , req )
119
-
120
- assert .Equal (t , http .StatusOK , w .Code )
121
- assert .Equal (t , "" , w .Header ().Get ("Content-Encoding" ))
122
- assert .Equal (t , "" , w .Header ().Get ("Vary" ))
123
- assert .Equal (t , "this is a HTML!" , w .Body .String ())
124
- assert .Equal (t , "" , w .Header ().Get ("Content-Length" ))
125
- }
107
+ func TestExcludedPathsAndExtensions (t * testing.T ) {
108
+ tests := []struct {
109
+ path string
110
+ option Option
111
+ expectedContentEncoding string
112
+ expectedVary string
113
+ expectedBody string
114
+ expectedContentLength string
115
+ }{
116
+ {"/api/books" , WithExcludedPaths ([]string {"/api/" }), "" , "" , "this is books!" , "" },
117
+ {"/index.html" , WithExcludedExtensions ([]string {".html" }), "" , "" , "this is a HTML!" , "" },
118
+ }
126
119
127
- func TestExcludedPaths ( t * testing. T ) {
128
- req , _ := http .NewRequestWithContext (context .Background (), "GET" , "/api/books" , nil )
129
- req .Header .Add ("Accept-Encoding" , "gzip" )
120
+ for _ , tt := range tests {
121
+ req , _ := http .NewRequestWithContext (context .Background (), "GET" , tt . path , nil )
122
+ req .Header .Add ("Accept-Encoding" , "gzip" )
130
123
131
- router := gin .New ()
132
- router .Use (Gzip (DefaultCompression , WithExcludedPaths ([] string { "/api/" }) ))
133
- router .GET ("/api/books" , func (c * gin.Context ) {
134
- c .String (200 , "this is books!" )
135
- })
124
+ router := gin .New ()
125
+ router .Use (Gzip (DefaultCompression , tt . option ))
126
+ router .GET (tt . path , func (c * gin.Context ) {
127
+ c .String (200 , tt . expectedBody )
128
+ })
136
129
137
- w := httptest .NewRecorder ()
138
- router .ServeHTTP (w , req )
130
+ w := httptest .NewRecorder ()
131
+ router .ServeHTTP (w , req )
139
132
140
- assert .Equal (t , http .StatusOK , w .Code )
141
- assert .Equal (t , "" , w .Header ().Get ("Content-Encoding" ))
142
- assert .Equal (t , "" , w .Header ().Get ("Vary" ))
143
- assert .Equal (t , "this is books!" , w .Body .String ())
144
- assert .Equal (t , "" , w .Header ().Get ("Content-Length" ))
133
+ assert .Equal (t , http .StatusOK , w .Code )
134
+ assert .Equal (t , tt .expectedContentEncoding , w .Header ().Get ("Content-Encoding" ))
135
+ assert .Equal (t , tt .expectedVary , w .Header ().Get ("Vary" ))
136
+ assert .Equal (t , tt .expectedBody , w .Body .String ())
137
+ assert .Equal (t , tt .expectedContentLength , w .Header ().Get ("Content-Length" ))
138
+ }
145
139
}
146
140
147
141
func TestNoGzip (t * testing.T ) {
0 commit comments