diff options
author | Christopher Speller <crspeller@gmail.com> | 2015-12-16 09:09:11 -0500 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2015-12-16 09:09:11 -0500 |
commit | 3e418a100a3a491ebff7ba72ac003dd06752a30a (patch) | |
tree | ce321f1a197d7bcf5f43c7acf8c49b01363461f5 /model | |
parent | a13fbfe493974319378949dd54c0523da4ea86c2 (diff) | |
parent | b660acf8f893972c56817cfa49e8318f40aa32a0 (diff) | |
download | chat-3e418a100a3a491ebff7ba72ac003dd06752a30a.tar.gz chat-3e418a100a3a491ebff7ba72ac003dd06752a30a.tar.bz2 chat-3e418a100a3a491ebff7ba72ac003dd06752a30a.zip |
Merge pull request #1710 from mattermost/plt-1498
PLT-1498 Add hashtag testing and allow special german characters
Diffstat (limited to 'model')
-rw-r--r-- | model/utils.go | 6 | ||||
-rw-r--r-- | model/utils_test.go | 24 |
2 files changed, 27 insertions, 3 deletions
diff --git a/model/utils.go b/model/utils.go index 5596b06ff..617c95efd 100644 --- a/model/utils.go +++ b/model/utils.go @@ -273,9 +273,9 @@ func Etag(parts ...interface{}) string { return etag } -var validHashtag = regexp.MustCompile(`^(#[A-Za-z]+[A-Za-z0-9_\-]*[A-Za-z0-9])$`) -var puncStart = regexp.MustCompile(`^[.,()&$!\[\]{}':;\\]+`) -var puncEnd = regexp.MustCompile(`[.,()&$#!\[\]{}';\\]+$`) +var validHashtag = regexp.MustCompile(`^(#[A-Za-zäöüÄÖÜß]+[A-Za-z0-9äöüÄÖÜß_\-]*[A-Za-z0-9äöüÄÖÜß])$`) +var puncStart = regexp.MustCompile(`^[.,()&$!\?\[\]{}':;\\]+`) +var puncEnd = regexp.MustCompile(`[.,()&$#!\?\[\]{}';\\]+$`) func ParseHashtags(text string) (string, string) { words := strings.Fields(text) diff --git a/model/utils_test.go b/model/utils_test.go index aab535fc9..24ee4b7a6 100644 --- a/model/utils_test.go +++ b/model/utils_test.go @@ -81,3 +81,27 @@ func TestEtag(t *testing.T) { t.Fatal() } } + +var hashtags map[string]string = map[string]string{ + "#test": "#test", + "test": "", + "#test123": "#test123", + "#123test123": "", + "#test-test": "#test-test", + "#test?": "#test", + "hi #there": "#there", + "#bug #idea": "#bug #idea", + "#bug or #gif!": "#bug #gif", + "#hüllo": "#hüllo", + "#?test": "", + "#-test": "", + "#yo_yo": "#yo_yo", +} + +func TestParseHashtags(t *testing.T) { + for input, output := range hashtags { + if o, _ := ParseHashtags(input); o != output { + t.Fatal("expected=" + output + " actual=" + o) + } + } +} |