mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-23 18:22:23 +08:00
fix confilct
This commit is contained in:
parent
1486c12e21
commit
68699d28db
@ -29,11 +29,6 @@ type FooBarStruct struct {
|
||||
Bar string `msgpack:"bar" json:"bar" form:"bar" xml:"bar" binding:"required"`
|
||||
}
|
||||
|
||||
type FooDefaultBarStruct struct {
|
||||
FooStruct
|
||||
Bar string `msgpack:"bar" json:"bar" form:"bar,default=hello" xml:"bar" binding:"required"`
|
||||
}
|
||||
|
||||
type FooStructUseNumber struct {
|
||||
Foo interface{} `json:"foo" binding:"required"`
|
||||
}
|
||||
@ -200,18 +195,6 @@ func TestBindingForm2(t *testing.T) {
|
||||
"", "")
|
||||
}
|
||||
|
||||
func TestBindingFormDefaultValue(t *testing.T) {
|
||||
testFormBindingDefaultValue(t, "POST",
|
||||
"/", "/",
|
||||
"foo=bar", "bar2=foo")
|
||||
}
|
||||
|
||||
func TestBindingFormDefaultValue2(t *testing.T) {
|
||||
testFormBindingDefaultValue(t, "GET",
|
||||
"/?foo=bar", "/?bar2=foo",
|
||||
"", "")
|
||||
}
|
||||
|
||||
func TestBindingFormForTime(t *testing.T) {
|
||||
testFormBindingForTime(t, "POST",
|
||||
"/", "/",
|
||||
@ -424,12 +407,6 @@ func createFormPostRequest() *http.Request {
|
||||
return req
|
||||
}
|
||||
|
||||
func createDefaultFormPostRequest() *http.Request {
|
||||
req, _ := http.NewRequest("POST", "/?foo=getfoo&bar=getbar", bytes.NewBufferString("foo=bar"))
|
||||
req.Header.Set("Content-Type", MIMEPOSTForm)
|
||||
return req
|
||||
}
|
||||
|
||||
func createFormPostRequestFail() *http.Request {
|
||||
req, _ := http.NewRequest("POST", "/?map_foo=getfoo", bytes.NewBufferString("map_foo=bar"))
|
||||
req.Header.Set("Content-Type", MIMEPOSTForm)
|
||||
@ -473,15 +450,6 @@ func TestBindingFormPost(t *testing.T) {
|
||||
assert.Equal(t, "foor", obj.Bar)
|
||||
}
|
||||
|
||||
func TestBindingDefaultValueFormPost(t *testing.T) {
|
||||
req := createDefaultFormPostRequest()
|
||||
var obj FooDefaultBarStruct
|
||||
FormPost.Bind(req, &obj)
|
||||
|
||||
assert.Equal(t, "bar", obj.Foo)
|
||||
assert.Equal(t, "hello", obj.Bar)
|
||||
}
|
||||
|
||||
func TestBindingFormPostFail(t *testing.T) {
|
||||
req := createFormPostRequestFail()
|
||||
var obj FooStructForMapType
|
||||
@ -610,26 +578,6 @@ func testFormBinding(t *testing.T, method, path, badPath, body, badBody string)
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func testFormBindingDefaultValue(t *testing.T, method, path, badPath, body, badBody string) {
|
||||
b := Form
|
||||
assert.Equal(t, "form", b.Name())
|
||||
|
||||
obj := FooDefaultBarStruct{}
|
||||
req := requestWithBody(method, path, body)
|
||||
if method == "POST" {
|
||||
req.Header.Add("Content-Type", MIMEPOSTForm)
|
||||
}
|
||||
err := b.Bind(req, &obj)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "bar", obj.Foo)
|
||||
assert.Equal(t, "hello", obj.Bar)
|
||||
|
||||
obj = FooDefaultBarStruct{}
|
||||
req = requestWithBody(method, badPath, badBody)
|
||||
err = JSON.Bind(req, &obj)
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func TestFormBindingFail(t *testing.T) {
|
||||
b := Form
|
||||
assert.Equal(t, "form", b.Name())
|
||||
|
@ -24,15 +24,6 @@ func mapForm(ptr interface{}, form map[string][]string) error {
|
||||
|
||||
structFieldKind := structField.Kind()
|
||||
inputFieldName := typeField.Tag.Get("form")
|
||||
inputFieldNameList := strings.Split(inputFieldName, ",")
|
||||
inputFieldName = inputFieldNameList[0]
|
||||
var defaultValue string
|
||||
if len(inputFieldNameList) > 1 {
|
||||
defaultList := strings.SplitN(inputFieldNameList[1], "=", 2)
|
||||
if defaultList[0] == "default" {
|
||||
defaultValue = defaultList[1]
|
||||
}
|
||||
}
|
||||
if inputFieldName == "" {
|
||||
inputFieldName = typeField.Name
|
||||
|
||||
@ -50,11 +41,7 @@ func mapForm(ptr interface{}, form map[string][]string) error {
|
||||
inputValue, exists := form[inputFieldName]
|
||||
|
||||
if !exists {
|
||||
if defaultValue == "" {
|
||||
continue
|
||||
}
|
||||
inputValue = make([]string, 1)
|
||||
inputValue[0] = defaultValue
|
||||
continue
|
||||
}
|
||||
|
||||
numElems := len(inputValue)
|
||||
|
Loading…
x
Reference in New Issue
Block a user