Add method to return main handler (#930)

Fix #928 Method to get main handler is desired
This commit is contained in:
collinmsn 2017-06-02 16:00:55 +08:00 committed by Bo-Yi Wu
parent 5eea51b6c9
commit 3f95933c3d
2 changed files with 18 additions and 0 deletions

View File

@ -85,6 +85,11 @@ func (c *Context) HandlerName() string {
return nameOfFunction(c.handlers.Last())
}
// Handler returns the main handler.
func (c *Context) Handler() HandlerFunc {
return c.handlers.Last()
}
/************************************/
/*********** FLOW CONTROL ***********/
/************************************/

View File

@ -12,6 +12,7 @@ import (
"mime/multipart"
"net/http"
"net/http/httptest"
"reflect"
"strings"
"testing"
"time"
@ -277,6 +278,18 @@ func handlerNameTest(c *Context) {
}
var handlerTest HandlerFunc = func(c *Context) {
}
func TestContextHandler(t *testing.T) {
c, _ := CreateTestContext(httptest.NewRecorder())
c.handlers = HandlersChain{func(c *Context) {}, handlerTest}
assert.Equal(t, reflect.ValueOf(handlerTest).Pointer(), reflect.ValueOf(c.Handler()).Pointer())
}
func TestContextQuery(t *testing.T) {
c, _ := CreateTestContext(httptest.NewRecorder())
c.Request, _ = http.NewRequest("GET", "http://example.com/?foo=bar&page=10&id=", nil)