Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 7 additions & 14 deletions bind_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ func TestBindJSON(t *testing.T) {
assert.Empty(t, form.Other)
assert.Equal(t, "aaa", form.Payload.A)
assert.Equal(t, 222, form.Payload.B)
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -104,8 +103,7 @@ func TestBindXML(t *testing.T) {
assert.Equal(t, "cssivision", form.Name)
assert.Equal(t, 21, form.Age)
assert.Empty(t, form.Other)
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -159,8 +157,7 @@ func TestBindForm(t *testing.T) {
assert.Equal(t, "cssivision", *form.Name)
assert.Equal(t, 21, *form.Age)
assert.Empty(t, form.Other)
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -193,8 +190,7 @@ func TestBindForm(t *testing.T) {
assert.Equal(t, "cssivision", *form.Name)
assert.Equal(t, 21, *form.Age)
assert.Empty(t, form.Other)
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -242,8 +238,7 @@ func TestBindPostForm(t *testing.T) {
assert.Equal(t, "cssivision", form.Name)
assert.Equal(t, 21, form.Age)
assert.Empty(t, form.Other)
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -297,8 +292,7 @@ func TestBindMultiPart(t *testing.T) {
assert.Equal(t, "cssivision", form.Name)
assert.Equal(t, 21, form.Age)
assert.Empty(t, form.Other)
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -378,8 +372,7 @@ func TestMutliDataType(t *testing.T) {
assert.Equal(t, 21, form.SubInfo.SubAge)
assert.NotNil(t, form.Time)

c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down
9 changes: 6 additions & 3 deletions context.go
Original file line number Diff line number Diff line change
Expand Up @@ -282,20 +282,23 @@ func (c *Context) Error(err error) {
}

// String write format string to response
func (c *Context) String(format string, values ...interface{}) {
func (c *Context) String(code int, format string, values ...interface{}) {
c.Status(code)
if err := renderString(c.ResponseWriter, format, values...); err != nil {
panic(err)
}
}

// JSON write obj to response
func (c *Context) JSON(data interface{}) {
func (c *Context) JSON(code int, data interface{}) {
c.Status(code)
if err := renderJSON(c.ResponseWriter, data); err != nil {
panic(err)
}
}

func (c *Context) HTML(name string, data interface{}) {
func (c *Context) HTML(code int, name string, data interface{}) {
c.Status(code)
if err := renderHTML(c.ResponseWriter, c.template, name, data); err != nil {
panic(err)
}
Expand Down
77 changes: 27 additions & 50 deletions context_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ import (
"bytes"
"encoding/json"
"errors"
"github.com/stretchr/testify/assert"
"io/ioutil"
"mime/multipart"
"net/http"
"net/http/httptest"
"strings"
"testing"

"github.com/stretchr/testify/assert"
)

func TestQuery(t *testing.T) {
Expand All @@ -23,8 +24,7 @@ func TestQuery(t *testing.T) {
assert.Equal(t, c.Query("age"), "23")
assert.Equal(t, c.Query("bar"), "イモト")
assert.Empty(t, c.Query("other"))
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -52,8 +52,7 @@ func TestDefaultQuery(t *testing.T) {
assert.Equal(t, c.DefaultQuery("name", "biz"), "cssivision")
assert.Equal(t, c.DefaultQuery("age", "24"), "23")
assert.Equal(t, c.DefaultQuery("other", "other value"), "other value")
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -81,8 +80,7 @@ func TestPostForm(t *testing.T) {
assert.Equal(t, c.PostForm("page"), "11")
assert.Empty(t, c.PostForm("both"))
assert.Empty(t, c.PostForm("other"))
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -112,8 +110,7 @@ func TestDefaultPostForm(t *testing.T) {
assert.Equal(t, c.DefaultPostForm("page", "12"), "11")
assert.Equal(t, c.DefaultPostForm("both", "other"), "other")
assert.Empty(t, c.DefaultPostForm("other", ""))
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -153,8 +150,7 @@ func TestPostFormMultipart(t *testing.T) {
assert.Equal(t, c.PostForm("foo"), "bar")
assert.Equal(t, c.PostForm("array"), "first")
assert.Equal(t, c.PostForm("id"), "12")
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -191,8 +187,7 @@ func TestStatus(t *testing.T) {
serverResponse := "server response"
router := New()
router.Get("/", func(c *Context) {
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand All @@ -217,8 +212,7 @@ func TestRedirect(t *testing.T) {
serverResponse := "server response"
router := New()
router.Get("/redirect", func(c *Context) {
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})
router.Get("/", func(c *Context) {
c.Redirect("/redirect")
Expand Down Expand Up @@ -272,8 +266,7 @@ func TestHeader(t *testing.T) {
router := New()
router.Get("/a/b", func(c *Context) {
assert.Equal(t, c.Header("fake-header"), "fake")
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -305,8 +298,7 @@ func TestSetHeader(t *testing.T) {
router := New()
router.Get("/a/b", func(c *Context) {
c.SetHeader("fake-header", "fake")
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand All @@ -329,8 +321,7 @@ func TestSetHeader(t *testing.T) {
router := New()
router.Get("/a/b", func(c *Context) {
c.SetHeader("fake-header", "")
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -359,8 +350,7 @@ func TestCookie(t *testing.T) {
val, err = c.Cookie("fake-cookie-not-exist")
assert.NotNil(t, err)
assert.Empty(t, val)
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -398,8 +388,7 @@ func TestSetCookie(t *testing.T) {
Name: "fake-cookie",
Value: "fake",
})
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -433,8 +422,7 @@ func TestAbort(t *testing.T) {
c.Abort()
assert.True(t, c.IsAborted())
assert.Equal(t, c.current, abortIndex)
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
}

middleware3 := func(c *Context) {
Expand Down Expand Up @@ -478,7 +466,7 @@ func TestAbortWithStatus(t *testing.T) {
assert.Equal(t, c.current, abortIndex)
}
middleware2 := func(c *Context) {
c.String(serverResponse)
c.String(http.StatusOK, serverResponse)
}

router := New()
Expand Down Expand Up @@ -515,8 +503,7 @@ func TestError(t *testing.T) {
assert.Equal(t, c.Err.Code, 0)
assert.Equal(t, c.Err.Meta, nil)

c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -548,8 +535,7 @@ func TestError(t *testing.T) {
assert.Equal(t, c.Err.Code, 501)
assert.Equal(t, c.Err.Meta, "cssivision")

c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand All @@ -573,14 +559,12 @@ func TestParam(t *testing.T) {
router.Get("/a/:name", func(c *Context) {
assert.Equal(t, "cssivision", c.Param("name"))
assert.Empty(t, c.Param("other"))
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

router.Get("/b/*filepath", func(c *Context) {
assert.Equal(t, "c/cssivision", c.Param("filepath"))
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -622,8 +606,7 @@ func TestClientIP(t *testing.T) {

router.Get("/a", func(c *Context) {
assert.Equal(t, realIP, c.ClientIP())
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -653,8 +636,7 @@ func TestClientIP(t *testing.T) {
router.Get("/a", func(c *Context) {
assert.Equal(t, "looli.xyz", c.ClientIP())
assert.Empty(t, c.Header("X-Real-Ip"))
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand All @@ -681,8 +663,7 @@ func TestContentType(t *testing.T) {
router := New()
router.Post("/a/b", func(c *Context) {
assert.Equal(t, "text/plain", c.ContentType())
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -713,8 +694,7 @@ func TestString(t *testing.T) {
serverResponse := "server response"
router := New()
router.Get("/a/b", func(c *Context) {
c.Status(statusCode)
c.String(serverResponse)
c.String(statusCode, serverResponse)
})

server := httptest.NewServer(router)
Expand Down Expand Up @@ -743,8 +723,7 @@ func TestJSON(t *testing.T) {
statusCode := 404
router := New()
router.Get("/a/b", func(c *Context) {
c.Status(statusCode)
c.JSON(JSON{
c.JSON(statusCode, JSON{
"name": "cssivision",
"age": 21,
})
Expand Down Expand Up @@ -773,8 +752,7 @@ func TestHTML(t *testing.T) {
router := New()
router.LoadHTMLGlob("test/templates/*")
router.Get("/index.html", func(c *Context) {
c.Status(statusCode)
c.HTML("index.tmpl", JSON{
c.HTML(statusCode, "index.tmpl", JSON{
"title": "Posts",
})
})
Expand All @@ -797,9 +775,8 @@ func TestHTML(t *testing.T) {
router := New()
router.LoadHTMLGlob("test/templates/*")
router.Get("/index.html", func(c *Context) {
c.Status(statusCode)
assert.Panics(t, func() {
c.HTML("index.tmp", JSON{
c.HTML(statusCode, "index.tmp", JSON{
"title": "Posts",
})
})
Expand Down
6 changes: 2 additions & 4 deletions looli.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,12 @@ func New() *Engine {

// noRoute use as a default handler for router not matched
func noRoute(c *Context) {
c.Status(http.StatusNotFound)
c.String(default404Body)
c.String(http.StatusNotFound, default404Body)
}

// noMethod use as a default handler for Method not allowed
func noMethod(c *Context) {
c.Status(http.StatusMethodNotAllowed)
c.String(default405Body)
c.String(http.StatusMethodNotAllowed, default405Body)
}

// Default return engine instance, add logger, recover handler to it.
Expand Down
Loading