Forráskód Böngészése

Add method to return main handler (#930)

Fix #928 Method to get main handler is desired
collinmsn 8 éve
szülő
commit
3f95933c3d
2 módosított fájl, 18 hozzáadás és 0 törlés
  1. 5 0
      context.go
  2. 13 0
      context_test.go

+ 5 - 0
context.go

@@ -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 ***********/
 /************************************/

+ 13 - 0
context_test.go

@@ -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)