PLT-7473 Ignore text surrounded by multiple backquotes when parsing mentions (#7347)

Этот коммит содержится в:
Harrison Healey
2017-09-04 09:31:20 -04:00
коммит произвёл Saturnino Abril
родитель c8d51b6465
Коммит 98bb4c31a1
2 изменённых файлов: 8 добавлений и 2 удалений

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

@@ -842,7 +842,7 @@ func GetExplicitMentions(message string, keywords map[string][]string) (map[stri
var codeBlockPattern = regexp.MustCompile("(?m)^[^\\S\n]*\\`\\`\\`.*$[\\s\\S]+?(^[^\\S\n]*\\`\\`\\`$|\\z)")
// Matches a backquote, either some text or any number of non-empty lines, and then a final backquote
var inlineCodePattern = regexp.MustCompile("(?m)\\`(?:.+?|.*?\n(.*?\\S.*?\n)*.*?)\\`")
var inlineCodePattern = regexp.MustCompile("(?m)\\`+(?:.+?|.*?\n(.*?\\S.*?\n)*.*?)\\`+")
// Strips pre-formatted text and code blocks from a Markdown string by replacing them with whitespace
func removeCodeFromMessage(message string) string {

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

@@ -382,7 +382,7 @@ func TestRemoveCodeFromMessage(t *testing.T) {
t.Fatalf("received incorrect output\n\nGot:\n%v\n\nExpected:\n%v\n", actual, expected)
}
input = "this is `not\n \ncode` because it has line with only whitespace"
input = "this is `not\n \ncode` because it has a line with only whitespace"
expected = input
if actual := removeCodeFromMessage(input); actual != expected {
t.Fatalf("received incorrect output\n\nGot:\n%v\n\nExpected:\n%v\n", actual, expected)
@@ -393,6 +393,12 @@ func TestRemoveCodeFromMessage(t *testing.T) {
if actual := removeCodeFromMessage(input); actual != expected {
t.Fatalf("received incorrect output\n\nGot:\n%v\n\nExpected:\n%v\n", actual, expected)
}
input = "these are ``multiple backquotes`` around code"
expected = "these are around code"
if actual := removeCodeFromMessage(input); actual != expected {
t.Fatalf("received incorrect output\n\nGot:\n%v\n\nExpected:\n%v\n", actual, expected)
}
}
func TestGetMentionKeywords(t *testing.T) {