summaryrefslogtreecommitdiff
path: root/internal/processing/status
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing/status')
-rw-r--r--internal/processing/status/create.go3
-rw-r--r--internal/processing/status/create_test.go34
2 files changed, 36 insertions, 1 deletions
diff --git a/internal/processing/status/create.go b/internal/processing/status/create.go
index 2d9c3a196..36842ee07 100644
--- a/internal/processing/status/create.go
+++ b/internal/processing/status/create.go
@@ -37,6 +37,8 @@ import (
)
// Create processes the given form to create a new status, returning the api model representation of that status if it's OK.
+//
+// Precondition: the form's fields should have already been validated and normalized by the caller.
func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, application *gtsmodel.Application, form *apimodel.AdvancedStatusCreateForm) (*apimodel.Status, gtserror.WithCode) {
accountURIs := uris.GenerateURIsForAccount(account.Username)
thisStatusID := id.NewULID()
@@ -55,7 +57,6 @@ func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, appli
ContentWarning: text.SanitizePlaintext(form.SpoilerText),
ActivityStreamsType: ap.ObjectNote,
Sensitive: &sensitive,
- Language: form.Language,
CreatedWithApplicationID: application.ID,
Text: form.Status,
}
diff --git a/internal/processing/status/create_test.go b/internal/processing/status/create_test.go
index 2a797516d..2c86e5a29 100644
--- a/internal/processing/status/create_test.go
+++ b/internal/processing/status/create_test.go
@@ -208,6 +208,40 @@ func (suite *StatusCreateTestSuite) TestProcessMediaDescriptionTooShort() {
suite.Nil(apiStatus)
}
+func (suite *StatusCreateTestSuite) TestProcessLanguageWithScriptPart() {
+ ctx := context.Background()
+
+ creatingAccount := suite.testAccounts["local_account_1"]
+ creatingApplication := suite.testApplications["application_1"]
+
+ statusCreateForm := &apimodel.AdvancedStatusCreateForm{
+ StatusCreateRequest: apimodel.StatusCreateRequest{
+ Status: "你好世界", // hello world
+ MediaIDs: []string{},
+ Poll: nil,
+ InReplyToID: "",
+ Sensitive: false,
+ SpoilerText: "",
+ Visibility: apimodel.VisibilityPublic,
+ ScheduledAt: "",
+ Language: "zh-Hans",
+ ContentType: apimodel.StatusContentTypePlain,
+ },
+ AdvancedVisibilityFlagsForm: apimodel.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("zh-Hans", *apiStatus.Language)
+}
+
func TestStatusCreateTestSuite(t *testing.T) {
suite.Run(t, new(StatusCreateTestSuite))
}