mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-09 20:38:07 -06:00
[bugfix] use start + end line in regex when validating emoji via API (#2671)
This commit is contained in:
parent
ddfc725744
commit
65a273bc39
3 changed files with 61 additions and 3 deletions
|
|
@ -191,7 +191,7 @@ func CustomCSS(customCSS string) error {
|
|||
// for emoji shortcodes, to figure out whether it's a valid shortcode, ie., 2-30 characters,
|
||||
// a-zA-Z, numbers, and underscores.
|
||||
func EmojiShortcode(shortcode string) error {
|
||||
if !regexes.EmojiShortcode.MatchString(shortcode) {
|
||||
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 nil
|
||||
|
|
|
|||
|
|
@ -321,6 +321,63 @@ func (suite *ValidationTestSuite) TestValidateCustomCSSTooLongUnicode() {
|
|||
suite.EqualError(err, "custom_css must be less than 5 characters, but submitted custom_css was 10 characters")
|
||||
}
|
||||
|
||||
func (suite *ValidationTestSuite) TestValidateEmojiShortcode() {
|
||||
type testStruct struct {
|
||||
shortcode string
|
||||
ok bool
|
||||
}
|
||||
|
||||
for _, test := range []testStruct{
|
||||
{
|
||||
shortcode: "peepee",
|
||||
ok: true,
|
||||
},
|
||||
{
|
||||
shortcode: "poo-poo",
|
||||
ok: false,
|
||||
},
|
||||
{
|
||||
shortcode: "-peepee",
|
||||
ok: false,
|
||||
},
|
||||
{
|
||||
shortcode: "p",
|
||||
ok: false,
|
||||
},
|
||||
{
|
||||
shortcode: "pp",
|
||||
ok: true,
|
||||
},
|
||||
{
|
||||
shortcode: "6969",
|
||||
ok: true,
|
||||
},
|
||||
{
|
||||
shortcode: "__peepee",
|
||||
ok: true,
|
||||
},
|
||||
{
|
||||
shortcode: "_",
|
||||
ok: false,
|
||||
},
|
||||
{
|
||||
// Too long.
|
||||
shortcode: "_XxX_Ultimate_Gamer_dude_6969_420_",
|
||||
ok: false,
|
||||
},
|
||||
{
|
||||
shortcode: "_XxX_Ultimate_Gamer_dude_6969_",
|
||||
ok: true,
|
||||
},
|
||||
} {
|
||||
err := validate.EmojiShortcode(test.shortcode)
|
||||
ok := err == nil
|
||||
if !suite.Equal(test.ok, ok) {
|
||||
suite.T().Logf("fail on %s", test.shortcode)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidationTestSuite(t *testing.T) {
|
||||
suite.Run(t, new(ValidationTestSuite))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue