summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/api/client/admin/emojicreate.go2
-rw-r--r--internal/api/client/admin/emojiupdate.go2
-rw-r--r--internal/api/client/admin/emojiupdate_test.go2
-rw-r--r--internal/regexes/regexes.go2
-rw-r--r--internal/validate/formvalidation.go4
-rw-r--r--internal/validate/formvalidation_test.go6
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,
},
{