|
|
@@ -1380,6 +1380,23 @@ func TestContextBindWithQuery(t *testing.T) {
|
|
|
assert.Equal(t, 0, w.Body.Len())
|
|
|
}
|
|
|
|
|
|
+func TestContextBindWithYAML(t *testing.T) {
|
|
|
+ w := httptest.NewRecorder()
|
|
|
+ c, _ := CreateTestContext(w)
|
|
|
+
|
|
|
+ c.Request, _ = http.NewRequest("POST", "/", bytes.NewBufferString("foo: bar\nbar: foo"))
|
|
|
+ c.Request.Header.Add("Content-Type", MIMEXML) // set fake content-type
|
|
|
+
|
|
|
+ var obj struct {
|
|
|
+ Foo string `yaml:"foo"`
|
|
|
+ Bar string `yaml:"bar"`
|
|
|
+ }
|
|
|
+ assert.NoError(t, c.BindYAML(&obj))
|
|
|
+ assert.Equal(t, "foo", obj.Bar)
|
|
|
+ assert.Equal(t, "bar", obj.Foo)
|
|
|
+ assert.Equal(t, 0, w.Body.Len())
|
|
|
+}
|
|
|
+
|
|
|
func TestContextBadAutoBind(t *testing.T) {
|
|
|
w := httptest.NewRecorder()
|
|
|
c, _ := CreateTestContext(w)
|
|
|
@@ -1470,6 +1487,23 @@ func TestContextShouldBindWithQuery(t *testing.T) {
|
|
|
assert.Equal(t, 0, w.Body.Len())
|
|
|
}
|
|
|
|
|
|
+func TestContextShouldBindWithYAML(t *testing.T) {
|
|
|
+ w := httptest.NewRecorder()
|
|
|
+ c, _ := CreateTestContext(w)
|
|
|
+
|
|
|
+ c.Request, _ = http.NewRequest("POST", "/", bytes.NewBufferString("foo: bar\nbar: foo"))
|
|
|
+ c.Request.Header.Add("Content-Type", MIMEXML) // set fake content-type
|
|
|
+
|
|
|
+ var obj struct {
|
|
|
+ Foo string `yaml:"foo"`
|
|
|
+ Bar string `yaml:"bar"`
|
|
|
+ }
|
|
|
+ assert.NoError(t, c.ShouldBindYAML(&obj))
|
|
|
+ assert.Equal(t, "foo", obj.Bar)
|
|
|
+ assert.Equal(t, "bar", obj.Foo)
|
|
|
+ assert.Equal(t, 0, w.Body.Len())
|
|
|
+}
|
|
|
+
|
|
|
func TestContextBadAutoShouldBind(t *testing.T) {
|
|
|
w := httptest.NewRecorder()
|
|
|
c, _ := CreateTestContext(w)
|