diff options
Diffstat (limited to 'internal/processing')
-rw-r--r-- | internal/processing/status/create_test.go | 41 | ||||
-rw-r--r-- | internal/processing/status/util.go | 2 |
2 files changed, 42 insertions, 1 deletions
diff --git a/internal/processing/status/create_test.go b/internal/processing/status/create_test.go index c92148108..bccd47a1c 100644 --- a/internal/processing/status/create_test.go +++ b/internal/processing/status/create_test.go @@ -24,6 +24,8 @@ import ( "github.com/stretchr/testify/suite" "github.com/superseriousbusiness/gotosocial/internal/api/model" + "github.com/superseriousbusiness/gotosocial/internal/db" + "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" ) type StatusCreateTestSuite struct { @@ -98,6 +100,45 @@ func (suite *StatusCreateTestSuite) TestProcessContentWarningWithHTMLEscapedQuot suite.Equal("\"test\"", apiStatus.SpoilerText) } +func (suite *StatusCreateTestSuite) TestProcessStatusMarkdownWithUnderscoreEmoji() { + ctx := context.Background() + + // update the shortcode of the rainbow emoji to surround it in underscores + if err := suite.db.UpdateWhere(ctx, []db.Where{{Key: "shortcode", Value: "rainbow"}}, "shortcode", "_rainbow_", >smodel.Emoji{}); err != nil { + suite.FailNow(err.Error()) + } + + creatingAccount := suite.testAccounts["local_account_1"] + creatingApplication := suite.testApplications["application_1"] + + statusCreateForm := &model.AdvancedStatusCreateForm{ + StatusCreateRequest: model.StatusCreateRequest{ + Status: "poopoo peepee :_rainbow_:", + MediaIDs: []string{}, + Poll: nil, + InReplyToID: "", + Sensitive: false, + Visibility: model.VisibilityPublic, + ScheduledAt: "", + Language: "en", + Format: model.StatusFormatMarkdown, + }, + AdvancedVisibilityFlagsForm: model.AdvancedVisibilityFlagsForm{ + Federated: nil, + Boostable: nil, + Replyable: nil, + Likeable: nil, + }, + } + + apiStatus, err := suite.status.Create(ctx, creatingAccount, creatingApplication, statusCreateForm) + suite.NoError(err) + suite.NotNil(apiStatus) + + suite.Equal("<p>poopoo peepee :_rainbow_:</p>", apiStatus.Content) + suite.NotEmpty(apiStatus.Emojis) +} + func TestStatusCreateTestSuite(t *testing.T) { suite.Run(t, new(StatusCreateTestSuite)) } diff --git a/internal/processing/status/util.go b/internal/processing/status/util.go index 298d4fbd0..d3fc8f3b1 100644 --- a/internal/processing/status/util.go +++ b/internal/processing/status/util.go @@ -302,7 +302,7 @@ func (p *processor) ProcessContent(ctx context.Context, form *apimodel.AdvancedS case apimodel.StatusFormatPlain: formatted = p.formatter.FromPlain(ctx, form.Status, status.Mentions, status.Tags) case apimodel.StatusFormatMarkdown: - formatted = p.formatter.FromMarkdown(ctx, form.Status, status.Mentions, status.Tags) + formatted = p.formatter.FromMarkdown(ctx, form.Status, status.Mentions, status.Tags, status.Emojis) default: return fmt.Errorf("format %s not recognised as a valid status format", form.Format) } |