mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-20 00:02:16 +08:00
add render error test case
This commit is contained in:
parent
b8b2fada5c
commit
5525de8dee
@ -8,6 +8,7 @@ import (
|
||||
"bytes"
|
||||
"encoding/xml"
|
||||
"errors"
|
||||
"github.com/stretchr/testify/mock"
|
||||
"html/template"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
@ -177,6 +178,46 @@ func TestRenderJsonpJSONError2(t *testing.T) {
|
||||
assert.Equal(t, "application/javascript; charset=utf-8", w.Header().Get("Content-Type"))
|
||||
}
|
||||
|
||||
type mockResponseRecorder struct {
|
||||
mock.Mock
|
||||
httptest.ResponseRecorder
|
||||
}
|
||||
|
||||
func (m *mockResponseRecorder) Write(content []byte) (int, error) {
|
||||
args := m.Called(content)
|
||||
return args.Int(0), args.Error(1)
|
||||
}
|
||||
|
||||
func TestRenderJsonpError3(t *testing.T) {
|
||||
var m *mockResponseRecorder
|
||||
|
||||
data := map[string]interface{}{
|
||||
"foo": "bar",
|
||||
}
|
||||
|
||||
m = new(mockResponseRecorder)
|
||||
m.On("Write", []byte("x")).Return(1, errors.New("mock callback write error"))
|
||||
assert.Error(t, (JsonpJSON{"x", data}).Render(m), "mock callback write error")
|
||||
|
||||
m = new(mockResponseRecorder)
|
||||
m.On("Write", []byte("x")).Return(1, nil)
|
||||
m.On("Write", []byte("(")).Return(1, errors.New("mock ( write error"))
|
||||
assert.Error(t, (JsonpJSON{"x", data}).Render(m), "mock ( write error")
|
||||
|
||||
m = new(mockResponseRecorder)
|
||||
m.On("Write", []byte("x")).Return(1, nil)
|
||||
m.On("Write", []byte("(")).Return(1, nil)
|
||||
m.On("Write", []byte("{\"foo\":\"bar\"}")).Return(1, errors.New("mock ret write error"))
|
||||
assert.Error(t, (JsonpJSON{"x", data}).Render(m), "mock ret write error")
|
||||
|
||||
m = new(mockResponseRecorder)
|
||||
m.On("Write", []byte("x")).Return(1, nil)
|
||||
m.On("Write", []byte("(")).Return(1, nil)
|
||||
m.On("Write", []byte("{\"foo\":\"bar\"}")).Return(1, nil)
|
||||
m.On("Write", []byte(");")).Return(1, errors.New("mock ); write error"))
|
||||
assert.Error(t, (JsonpJSON{"x", data}).Render(m), "mock ); write error")
|
||||
}
|
||||
|
||||
func TestRenderJsonpJSONFail(t *testing.T) {
|
||||
w := httptest.NewRecorder()
|
||||
data := make(chan int)
|
||||
|
Loading…
x
Reference in New Issue
Block a user