Commit 553d76da authored by Matt Holt's avatar Matt Holt

Merge pull request #179 from abiosoft/master

gzip: Const for wildcard extension (and added test)
parents 9467dbdd d4f0ac23
...@@ -43,7 +43,7 @@ func gzipParse(c *Controller) ([]gzip.Config, error) { ...@@ -43,7 +43,7 @@ func gzipParse(c *Controller) ([]gzip.Config, error) {
return configs, c.ArgErr() return configs, c.ArgErr()
} }
for _, e := range exts { for _, e := range exts {
if !strings.HasPrefix(e, ".") && e != "*" { if !strings.HasPrefix(e, ".") && e != gzip.ExtWildCard {
return configs, fmt.Errorf(`gzip: invalid extension "%v" (must start with dot)`, e) return configs, fmt.Errorf(`gzip: invalid extension "%v" (must start with dot)`, e)
} }
extFilter.Exts.Add(e) extFilter.Exts.Add(e)
......
...@@ -68,6 +68,11 @@ func TestGzip(t *testing.T) { ...@@ -68,6 +68,11 @@ func TestGzip(t *testing.T) {
level 3 level 3
} }
`, false}, `, false},
{`gzip { not /file
ext *
level 1
}
`, false},
} }
for i, test := range tests { for i, test := range tests {
c := NewTestController(test.input) c := NewTestController(test.input)
......
...@@ -33,14 +33,14 @@ type ExtFilter struct { ...@@ -33,14 +33,14 @@ type ExtFilter struct {
} }
// extWildCard is the wildcard for extensions. // extWildCard is the wildcard for extensions.
const extWildCard = "*" const ExtWildCard = "*"
// ShouldCompress checks if the request file extension matches any // ShouldCompress checks if the request file extension matches any
// of the registered extensions. It returns true if the extension is // of the registered extensions. It returns true if the extension is
// found and false otherwise. // found and false otherwise.
func (e ExtFilter) ShouldCompress(r *http.Request) bool { func (e ExtFilter) ShouldCompress(r *http.Request) bool {
ext := path.Ext(r.URL.Path) ext := path.Ext(r.URL.Path)
return e.Exts.Contains(extWildCard) || e.Exts.Contains(ext) return e.Exts.Contains(ExtWildCard) || e.Exts.Contains(ext)
} }
// PathFilter is Filter for request path. // PathFilter is Filter for request path.
......
...@@ -73,6 +73,13 @@ func TestExtFilter(t *testing.T) { ...@@ -73,6 +73,13 @@ func TestExtFilter(t *testing.T) {
t.Errorf("Test %v: Should not be valid filter", i) t.Errorf("Test %v: Should not be valid filter", i)
} }
} }
filter.(ExtFilter).Exts.Add(ExtWildCard)
for i, e := range exts {
r := urlRequest("file" + e)
if !filter.ShouldCompress(r) {
t.Errorf("Test %v: Should be valid filter. Wildcard used.", i)
}
}
} }
func TestPathFilter(t *testing.T) { func TestPathFilter(t *testing.T) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment