Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张磊
/
FileStorageBeego
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
52df1234
authored
2014-11-04 19:04:43 +0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'develop' of
https://github.com/astaxie/beego
into develop
2 parents
fc6b9ce0
b9fdd675
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
6 deletions
templatefunc.go
templatefunc_test.go
templatefunc.go
View file @
52df123
...
...
@@ -302,6 +302,14 @@ func ParseForm(form url.Values, obj interface{}) error {
switch
fieldT
.
Type
.
Kind
()
{
case
reflect
.
Bool
:
if
strings
.
ToLower
(
value
)
==
"on"
||
strings
.
ToLower
(
value
)
==
"1"
||
strings
.
ToLower
(
value
)
==
"yes"
{
fieldV
.
SetBool
(
true
)
continue
}
if
strings
.
ToLower
(
value
)
==
"off"
||
strings
.
ToLower
(
value
)
==
"0"
||
strings
.
ToLower
(
value
)
==
"no"
{
fieldV
.
SetBool
(
false
)
continue
}
b
,
err
:=
strconv
.
ParseBool
(
value
)
if
err
!=
nil
{
return
err
...
...
@@ -329,6 +337,19 @@ func ParseForm(form url.Values, obj interface{}) error {
fieldV
.
Set
(
reflect
.
ValueOf
(
value
))
case
reflect
.
String
:
fieldV
.
SetString
(
value
)
case
reflect
.
Struct
:
switch
fieldT
.
Type
.
String
()
{
case
"time.Time"
:
format
:=
time
.
RFC3339
if
len
(
tags
)
>
1
{
format
=
tags
[
1
]
}
t
,
err
:=
time
.
Parse
(
format
,
value
)
if
err
!=
nil
{
return
err
}
fieldV
.
Set
(
reflect
.
ValueOf
(
t
))
}
}
}
return
nil
...
...
templatefunc_test.go
View file @
52df123
...
...
@@ -102,12 +102,14 @@ func TestHtmlunquote(t *testing.T) {
func
TestParseForm
(
t
*
testing
.
T
)
{
type
user
struct
{
Id
int
`form:"-"`
tag
string
`form:"tag"`
Name
interface
{}
`form:"username"`
Age
int
`form:"age,text"`
Email
string
Intro
string
`form:",textarea"`
Id
int
`form:"-"`
tag
string
`form:"tag"`
Name
interface
{}
`form:"username"`
Age
int
`form:"age,text"`
Email
string
Intro
string
`form:",textarea"`
StrBool
bool
`form:"strbool"`
Date
time
.
Time
`form:"date,2006-01-02"`
}
u
:=
user
{}
...
...
@@ -119,6 +121,8 @@ func TestParseForm(t *testing.T) {
"age"
:
[]
string
{
"40"
},
"Email"
:
[]
string
{
"test@gmail.com"
},
"Intro"
:
[]
string
{
"I am an engineer!"
},
"strbool"
:
[]
string
{
"yes"
},
"date"
:
[]
string
{
"2014-11-12"
},
}
if
err
:=
ParseForm
(
form
,
u
);
err
==
nil
{
t
.
Fatal
(
"nothing will be changed"
)
...
...
@@ -144,6 +148,13 @@ func TestParseForm(t *testing.T) {
if
u
.
Intro
!=
"I am an engineer!"
{
t
.
Errorf
(
"Intro should equal `I am an engineer!` but got `%v`"
,
u
.
Intro
)
}
if
u
.
StrBool
!=
true
{
t
.
Errorf
(
"strboll should equal `true`, but got `%v`"
,
u
.
StrBool
)
}
y
,
m
,
d
:=
u
.
Date
.
Date
()
if
y
!=
2014
||
m
.
String
()
!=
"November"
||
d
!=
12
{
t
.
Errorf
(
"Date should equal `2014-11-12`, but got `%v`"
,
u
.
Date
.
String
())
}
}
func
TestRenderForm
(
t
*
testing
.
T
)
{
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment