|
|
@@ -61,6 +61,10 @@ type FooStructForMapType struct {
|
|
|
MapFoo map[string]interface{} `form:"map_foo"`
|
|
|
}
|
|
|
|
|
|
+type FooStructForIgnoreFormTag struct {
|
|
|
+ Foo *string `form:"-"`
|
|
|
+}
|
|
|
+
|
|
|
type InvalidNameType struct {
|
|
|
TestName string `invalid_name:"test_name"`
|
|
|
}
|
|
|
@@ -278,6 +282,12 @@ func TestBindingFormForTime2(t *testing.T) {
|
|
|
"", "")
|
|
|
}
|
|
|
|
|
|
+func TestFormBindingIgnoreField(t *testing.T) {
|
|
|
+ testFormBindingIgnoreField(t, "POST",
|
|
|
+ "/", "/",
|
|
|
+ "-=bar", "")
|
|
|
+}
|
|
|
+
|
|
|
func TestBindingFormInvalidName(t *testing.T) {
|
|
|
testFormBindingInvalidName(t, "POST",
|
|
|
"/", "/",
|
|
|
@@ -860,6 +870,21 @@ func testFormBindingForTimeFailLocation(t *testing.T, method, path, badPath, bod
|
|
|
assert.Error(t, err)
|
|
|
}
|
|
|
|
|
|
+func testFormBindingIgnoreField(t *testing.T, method, path, badPath, body, badBody string) {
|
|
|
+ b := Form
|
|
|
+ assert.Equal(t, "form", b.Name())
|
|
|
+
|
|
|
+ obj := FooStructForIgnoreFormTag{}
|
|
|
+ req := requestWithBody(method, path, body)
|
|
|
+ if method == "POST" {
|
|
|
+ req.Header.Add("Content-Type", MIMEPOSTForm)
|
|
|
+ }
|
|
|
+ err := b.Bind(req, &obj)
|
|
|
+ assert.NoError(t, err)
|
|
|
+
|
|
|
+ assert.Nil(t, obj.Foo)
|
|
|
+}
|
|
|
+
|
|
|
func testFormBindingInvalidName(t *testing.T, method, path, badPath, body, badBody string) {
|
|
|
b := Form
|
|
|
assert.Equal(t, "form", b.Name())
|