diff options
Diffstat (limited to 'internal')
-rw-r--r-- | internal/api/client/admin/emojicreate.go | 2 | ||||
-rw-r--r-- | internal/api/client/admin/emojiupdate.go | 2 | ||||
-rw-r--r-- | internal/api/client/admin/emojiupdate_test.go | 2 | ||||
-rw-r--r-- | internal/regexes/regexes.go | 2 | ||||
-rw-r--r-- | internal/validate/formvalidation.go | 4 | ||||
-rw-r--r-- | internal/validate/formvalidation_test.go | 6 |
6 files changed, 11 insertions, 7 deletions
diff --git a/internal/api/client/admin/emojicreate.go b/internal/api/client/admin/emojicreate.go index 9696200de..07fa4d4a8 100644 --- a/internal/api/client/admin/emojicreate.go +++ b/internal/api/client/admin/emojicreate.go @@ -53,7 +53,7 @@ import ( // The code to use for the emoji, which will be used by instance denizens to select it. // This must be unique on the instance. // type: string -// pattern: \w{2,30} +// pattern: \w{1,30} // required: true // - // name: image diff --git a/internal/api/client/admin/emojiupdate.go b/internal/api/client/admin/emojiupdate.go index ec6987024..b8ac101c0 100644 --- a/internal/api/client/admin/emojiupdate.go +++ b/internal/api/client/admin/emojiupdate.go @@ -85,7 +85,7 @@ import ( // The code to use for the emoji, which will be used by instance denizens to select it. // This must be unique on the instance. Works for the `copy` action type only. // type: string -// pattern: \w{2,30} +// pattern: \w{1,30} // - // name: image // in: formData diff --git a/internal/api/client/admin/emojiupdate_test.go b/internal/api/client/admin/emojiupdate_test.go index 17eb05fd9..b6dffa887 100644 --- a/internal/api/client/admin/emojiupdate_test.go +++ b/internal/api/client/admin/emojiupdate_test.go @@ -560,7 +560,7 @@ func (suite *EmojiUpdateTestSuite) TestEmojiUpdateCopyEmptyShortcode() { b, err := io.ReadAll(result.Body) suite.NoError(err) - suite.Equal(`{"error":"Bad Request: shortcode did not pass validation, must be between 2 and 30 characters, letters, numbers, and underscores only"}`, string(b)) + suite.Equal(`{"error":"Bad Request: shortcode did not pass validation, must be between 1 and 30 characters, letters, numbers, and underscores only"}`, string(b)) } func (suite *EmojiUpdateTestSuite) TestEmojiUpdateCopyNoShortcode() { diff --git a/internal/regexes/regexes.go b/internal/regexes/regexes.go index 799557657..515f69a12 100644 --- a/internal/regexes/regexes.go +++ b/internal/regexes/regexes.go @@ -46,7 +46,7 @@ const ( domainGrp = `(?:` + alphaNumeric + `|\.|\-|\:)` // Non-capturing group that matches against a single valid domain character. mentionName = `^@(` + usernameGrp + `+)(?:@(` + domainGrp + `+))?$` // Extract parts of one mention, maybe including domain. mentionFinder = `(?:^|\s)(@` + usernameGrp + `+(?:@` + domainGrp + `+)?)` // Extract all mentions from a text, each mention may include domain. - emojiShortcode = `\w{2,30}` // Pattern for emoji shortcodes. maximumEmojiShortcodeLength = 30 + emojiShortcode = `\w{1,30}` // Pattern for emoji shortcodes. maximumEmojiShortcodeLength = 30 emojiFinder = `(?:\b)?:(` + emojiShortcode + `):(?:\b)?` // Extract all emoji shortcodes from a text. emojiValidator = `^` + emojiShortcode + `$` // Validate a single emoji shortcode. usernameStrict = `^[a-z0-9_]{1,64}$` // Pattern for usernames on THIS instance. maximumUsernameLength = 64 diff --git a/internal/validate/formvalidation.go b/internal/validate/formvalidation.go index e8ec3380b..207e8e05e 100644 --- a/internal/validate/formvalidation.go +++ b/internal/validate/formvalidation.go @@ -190,11 +190,11 @@ func CustomCSS(customCSS string) error { } // EmojiShortcode just runs the given shortcode through the regular expression -// for emoji shortcodes, to figure out whether it's a valid shortcode, ie., 2-30 characters, +// for emoji shortcodes, to figure out whether it's a valid shortcode, ie., 1-30 characters, // a-zA-Z, numbers, and underscores. func EmojiShortcode(shortcode string) error { if !regexes.EmojiValidator.MatchString(shortcode) { - return fmt.Errorf("shortcode %s did not pass validation, must be between 2 and 30 characters, letters, numbers, and underscores only", shortcode) + return fmt.Errorf("shortcode %s did not pass validation, must be between 1 and 30 characters, letters, numbers, and underscores only", shortcode) } return nil } diff --git a/internal/validate/formvalidation_test.go b/internal/validate/formvalidation_test.go index 7c1ff7b7f..93762cd37 100644 --- a/internal/validate/formvalidation_test.go +++ b/internal/validate/formvalidation_test.go @@ -345,7 +345,7 @@ func (suite *ValidationTestSuite) TestValidateEmojiShortcode() { }, { shortcode: "p", - ok: false, + ok: true, }, { shortcode: "pp", @@ -361,6 +361,10 @@ func (suite *ValidationTestSuite) TestValidateEmojiShortcode() { }, { shortcode: "_", + ok: true, + }, + { + shortcode: "", ok: false, }, { |