diff --git a/render/empty.go b/render/empty.go index 4b1b0751..bfa5a424 100644 --- a/render/empty.go +++ b/render/empty.go @@ -19,21 +19,22 @@ func (EmptyRenderFactory) Instance() RenderRecycler { } // Render writes data with custom ContentType. -func (*EmptyRender) Render(http.ResponseWriter) error { +func (r *EmptyRender) Render(w http.ResponseWriter) error { + r.WriteContentType(w) return fmt.Errorf("empty render,you need register one first") } // WriteContentType writes custom ContentType. -func (*EmptyRender) WriteContentType(w http.ResponseWriter) { +func (r *EmptyRender) WriteContentType(w http.ResponseWriter) { // Empty } // Setup set data and opts -func (*EmptyRender) Setup(data interface{}, opts ...interface{}) { +func (r *EmptyRender) Setup(data interface{}, opts ...interface{}) { // Empty } // Reset clean data and opts -func (*EmptyRender) Reset() { +func (r *EmptyRender) Reset() { // Empty } diff --git a/render/json.go b/render/json.go index bd572e97..5bf73b93 100644 --- a/render/json.go +++ b/render/json.go @@ -168,11 +168,7 @@ func (r *SecureJSON) WriteContentType(w http.ResponseWriter) { func (r *JsonpJSON) Setup(data interface{}, opts ...interface{}) { r.Data = data if len(opts) == 1 { - if callback, ok := opts[0].(string); ok { - r.Callback = callback - } else { - r.Callback = "" - } + r.Callback, _ = opts[0].(string) } } diff --git a/render/render.go b/render/render.go index 39a532e7..eb626a83 100644 --- a/render/render.go +++ b/render/render.go @@ -22,6 +22,7 @@ const ( MsgPackRenderType // MsgPack Render Type ProtoBufRenderType // ProtoBuf Render Type EmptyRenderType // Empty Render Type + unknownRenderType // Unknown Render Type,just used for test ) var ( diff --git a/render/render_test.go b/render/render_test.go index 68c57bd7..edd0817f 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -25,6 +25,23 @@ import ( // TODO unit tests // test errors +func TestRenderEmpty(t *testing.T) { + w := httptest.NewRecorder() + data := "empty data" + r := Default(EmptyRenderType) + r.Setup(data) + err := r.Render(w) + Recycle(EmptyRenderType, r) + assert.EqualError(t, err, "empty render,you need register one first") +} + +// test not registered render type +func TestRenderUnknown(t *testing.T) { + r := Default(unknownRenderType) + _, ok := r.(*EmptyRender) + assert.True(t, ok) +} + func TestRenderMsgPack(t *testing.T) { w := httptest.NewRecorder() data := map[string]interface{}{