mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-20 00:02:16 +08:00
add JSON.render error test case
This commit is contained in:
parent
9b9f4fab34
commit
37af9bcf4b
@ -17,6 +17,7 @@ import (
|
|||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/mock"
|
||||||
"github.com/ugorji/go/codec"
|
"github.com/ugorji/go/codec"
|
||||||
|
|
||||||
testdata "github.com/gin-gonic/gin/testdata/protoexample"
|
testdata "github.com/gin-gonic/gin/testdata/protoexample"
|
||||||
@ -125,6 +126,46 @@ func TestRenderSecureJSON(t *testing.T) {
|
|||||||
assert.Equal(t, "application/json; charset=utf-8", w2.Header().Get("Content-Type"))
|
assert.Equal(t, "application/json; charset=utf-8", w2.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 TestRenderSecureJSONFail(t *testing.T) {
|
func TestRenderSecureJSONFail(t *testing.T) {
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
data := make(chan int)
|
data := make(chan int)
|
||||||
|
8
vendor/vendor.json
vendored
8
vendor/vendor.json
vendored
@ -112,6 +112,14 @@
|
|||||||
"version": "v1.2",
|
"version": "v1.2",
|
||||||
"versionExact": "v1.2.2"
|
"versionExact": "v1.2.2"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"checksumSHA1": "WmBSFdqpdYRIkp0I408JIZ3LDMY=",
|
||||||
|
"path": "github.com/stretchr/testify/mock",
|
||||||
|
"revision": "f35b8ab0b5a2cef36673838d662e249dd9c94686",
|
||||||
|
"revisionTime": "2018-05-06T18:05:49Z",
|
||||||
|
"version": "v1.2.2",
|
||||||
|
"versionExact": "v1.2.2"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"checksumSHA1": "S4ei9eSqVThDio0Jn2sav6yUbvg=",
|
"checksumSHA1": "S4ei9eSqVThDio0Jn2sav6yUbvg=",
|
||||||
"path": "github.com/ugorji/go/codec",
|
"path": "github.com/ugorji/go/codec",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user