فهرست منبع

Add method to return main handler (#930)

Fix #928 Method to get main handler is desired
collinmsn 8 سال پیش
والد
کامیت
3f95933c3d
2فایلهای تغییر یافته به همراه18 افزوده شده و 0 حذف شده
  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())
 	return nameOfFunction(c.handlers.Last())
 }
 }
 
 
+// Handler returns the main handler.
+func (c *Context) Handler() HandlerFunc {
+        return c.handlers.Last()
+}
+
 /************************************/
 /************************************/
 /*********** FLOW CONTROL ***********/
 /*********** FLOW CONTROL ***********/
 /************************************/
 /************************************/

+ 13 - 0
context_test.go

@@ -12,6 +12,7 @@ import (
 	"mime/multipart"
 	"mime/multipart"
 	"net/http"
 	"net/http"
 	"net/http/httptest"
 	"net/http/httptest"
+	"reflect"
 	"strings"
 	"strings"
 	"testing"
 	"testing"
 	"time"
 	"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) {
 func TestContextQuery(t *testing.T) {
 	c, _ := CreateTestContext(httptest.NewRecorder())
 	c, _ := CreateTestContext(httptest.NewRecorder())
 	c.Request, _ = http.NewRequest("GET", "http://example.com/?foo=bar&page=10&id=", nil)
 	c.Request, _ = http.NewRequest("GET", "http://example.com/?foo=bar&page=10&id=", nil)