user: fix bug in ValidEmail helper

mail.ParseAddress will stop parsing a string once it finds a valid
email address. This means you could give ValidUser an email
address followed by junk and it would mark it valid.

This commit fixes this behavior and adds some more test cases.

Fixes #189
This commit is contained in:
Eric Chiang 2015-12-01 09:06:30 -08:00
parent a9ab63893d
commit 137330b202
2 changed files with 6 additions and 4 deletions

View file

@ -163,10 +163,9 @@ func ValidEmail(email string) bool {
return false return false
} }
if address.Name != "" || address.Address == "" { // Has mail.ParseAddress parsed the entire string and only found a single
return false // address without a name?
} return address.Address == email
return true
} }
func ValidPassword(plaintext string) bool { func ValidPassword(plaintext string) bool {

View file

@ -103,6 +103,9 @@ func TestValidEmail(t *testing.T) {
{"r@r.com", true}, {"r@r.com", true},
{"Barry Gibbs <bg@example.com>", false}, {"Barry Gibbs <bg@example.com>", false},
{"", false}, {"", false},
{"invalidemail", false},
{"example@example.com example@example.com", false},
{"example@example.com Hello, 世界", false},
} }
for i, tt := range tests { for i, tt := range tests {