fix reaction's name validation with + sign in it (#6221)

Этот коммит содержится в:
Saturnino Abril
2017-04-26 23:11:32 +09:00
коммит произвёл Harrison Healey
родитель f9502ff14b
Коммит 6fa7082833
5 изменённых файлов: 62 добавлений и 18 удалений

Просмотреть файл

@@ -6,6 +6,7 @@ package model
import (
"encoding/json"
"io"
"regexp"
)
type Reaction struct {
@@ -60,7 +61,9 @@ func (o *Reaction) IsValid() *AppError {
return NewLocAppError("Reaction.IsValid", "model.reaction.is_valid.post_id.app_error", nil, "post_id="+o.PostId)
}
if len(o.EmojiName) == 0 || len(o.EmojiName) > 64 || !IsValidAlphaNumHyphenUnderscore(o.EmojiName, false) {
validName := regexp.MustCompile(`^[a-zA-Z0-9\-\+_]+$`)
if len(o.EmojiName) == 0 || len(o.EmojiName) > 64 || !validName.MatchString(o.EmojiName) {
return NewLocAppError("Reaction.IsValid", "model.reaction.is_valid.emoji_name.app_error", nil, "emoji_name="+o.EmojiName)
}

Просмотреть файл

@@ -42,16 +42,6 @@ func TestReactionIsValid(t *testing.T) {
}
reaction.PostId = NewId()
reaction.EmojiName = ""
if err := reaction.IsValid(); err == nil {
t.Fatal("emoji name should be invalid")
}
reaction.EmojiName = strings.Repeat("a", 65)
if err := reaction.IsValid(); err == nil {
t.Fatal("emoji name should be invalid")
}
reaction.EmojiName = strings.Repeat("a", 64)
if err := reaction.IsValid(); err != nil {
t.Fatal(err)
@@ -67,11 +57,26 @@ func TestReactionIsValid(t *testing.T) {
t.Fatal(err)
}
reaction.EmojiName = "+1"
if err := reaction.IsValid(); err != nil {
t.Fatal(err)
}
reaction.EmojiName = "emoji:"
if err := reaction.IsValid(); err == nil {
t.Fatal(err)
}
reaction.EmojiName = ""
if err := reaction.IsValid(); err == nil {
t.Fatal("emoji name should be invalid")
}
reaction.EmojiName = strings.Repeat("a", 65)
if err := reaction.IsValid(); err == nil {
t.Fatal("emoji name should be invalid")
}
reaction.CreateAt = 0
if err := reaction.IsValid(); err == nil {
t.Fatal("create at should be invalid")