Merge branch 'master' into fc

This commit is contained in:
thinkerou 2018-12-05 06:54:38 +08:00 committed by GitHub
commit 1ad00d4ef8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 6 deletions

View File

@ -687,7 +687,7 @@ func TestUriBinding(t *testing.T) {
}
var not NotSupportStruct
assert.Error(t, b.BindUri(m, &not))
assert.Equal(t, "", not.Name)
assert.Equal(t, map[string]interface{}(nil), not.Name)
}
func testFormBinding(t *testing.T, method, path, badPath, body, badBody string) {

View File

@ -11,6 +11,7 @@ import (
"net"
"net/http"
"os"
"strings"
"syscall"
"testing"
@ -84,7 +85,7 @@ func TestPanicWithBrokenPipe(t *testing.T) {
const expectCode = 204
expectMsgs := map[syscall.Errno]string{
syscall.EPIPE: "Broken pipe",
syscall.EPIPE: "broken pipe",
syscall.ECONNRESET: "connection reset by peer",
}
@ -108,7 +109,7 @@ func TestPanicWithBrokenPipe(t *testing.T) {
w := performRequest(router, "GET", "/recovery")
// TEST
assert.Equal(t, expectCode, w.Code)
assert.Contains(t, buf.String(), expectMsg)
assert.Contains(t, strings.ToLower(buf.String()), expectMsg)
})
}
}

View File

@ -185,11 +185,19 @@ func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRou
func (group *RouterGroup) createStaticHandler(relativePath string, fs http.FileSystem) HandlerFunc {
absolutePath := group.calculateAbsolutePath(relativePath)
fileServer := http.StripPrefix(absolutePath, http.FileServer(fs))
_, nolisting := fs.(*onlyfilesFS)
return func(c *Context) {
if nolisting {
file := c.Param("filepath")
// Check if file exists and/or if we have permission to access it
if _, err := fs.Open(file); err != nil {
c.Writer.WriteHeader(http.StatusNotFound)
c.handlers = group.engine.allNoRoute
// Reset index
c.index = -1
return
}
fileServer.ServeHTTP(c.Writer, c.Request)
}
}

View File

@ -411,6 +411,21 @@ func TestRouterNotFound(t *testing.T) {
assert.Equal(t, http.StatusNotFound, w.Code)
}
func TestRouterStaticFSNotFound(t *testing.T) {
router := New()
router.StaticFS("/", http.FileSystem(http.Dir("/thisreallydoesntexist/")))
router.NoRoute(func(c *Context) {
c.String(404, "non existent")
})
w := performRequest(router, "GET", "/nonexistent")
assert.Equal(t, "non existent", w.Body.String())
w = performRequest(router, "HEAD", "/nonexistent")
assert.Equal(t, "non existent", w.Body.String())
}
func TestRouteRawPath(t *testing.T) {
route := New()
route.UseRawPath = true

View File

@ -1 +0,0 @@
box: wercker/default