mirror of
https://github.com/astaxie/beego.git
synced 2024-10-31 23:50:54 +00:00
Change meta to required, and refactor a bit to cover edge cases
This commit is contained in:
parent
84b6bef7d0
commit
e0393b721c
@ -475,13 +475,10 @@ func parseFormTag(fieldT reflect.StructField) (label, name, fType string, id str
|
||||
id = fieldT.Tag.Get("id")
|
||||
class = fieldT.Tag.Get("class")
|
||||
|
||||
meta := strings.Split(fieldT.Tag.Get("meta"), ",")
|
||||
required = false
|
||||
switch len(meta) {
|
||||
case 1:
|
||||
if len(meta[0]) > 0 && meta[0] != "-" {
|
||||
required = true
|
||||
}
|
||||
required_field := fieldT.Tag.Get("required")
|
||||
if required_field != "-" && required_field != "" {
|
||||
required, _ = strconv.ParseBool(required_field)
|
||||
}
|
||||
|
||||
switch len(tags) {
|
||||
|
@ -214,12 +214,14 @@ func TestRenderFormField(t *testing.T) {
|
||||
func TestParseFormTag(t *testing.T) {
|
||||
// create struct to contain field with different types of struct-tag `form`
|
||||
type user struct {
|
||||
All int `form:"name,text,年龄:"`
|
||||
NoName int `form:",hidden,年龄:"`
|
||||
OnlyLabel int `form:",,年龄:"`
|
||||
OnlyName int `form:"name" id:"name" class:"form-name"`
|
||||
Ignored int `form:"-"`
|
||||
Required int `form:"name" meta:"true"`
|
||||
All int `form:"name,text,年龄:"`
|
||||
NoName int `form:",hidden,年龄:"`
|
||||
OnlyLabel int `form:",,年龄:"`
|
||||
OnlyName int `form:"name" id:"name" class:"form-name"`
|
||||
Ignored int `form:"-"`
|
||||
Required int `form:"name" required:"true"`
|
||||
IgnoreRequired int `form:"name"`
|
||||
NotRequired int `form:"name" required:"false"`
|
||||
}
|
||||
|
||||
objT := reflect.TypeOf(&user{}).Elem()
|
||||
@ -255,6 +257,16 @@ func TestParseFormTag(t *testing.T) {
|
||||
t.Errorf("Form Tag containing only name and required was not correctly parsed.")
|
||||
}
|
||||
|
||||
label, name, fType, id, class, ignored, required = parseFormTag(objT.Field(6))
|
||||
if !(name == "name" && required == false) {
|
||||
t.Errorf("Form Tag containing only name and ignore required was not correctly parsed.")
|
||||
}
|
||||
|
||||
label, name, fType, id, class, ignored, required = parseFormTag(objT.Field(7))
|
||||
if !(name == "name" && required == false) {
|
||||
t.Errorf("Form Tag containing only name and not required was not correctly parsed.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestMapGet(t *testing.T) {
|
||||
|
Loading…
Reference in New Issue
Block a user