commit a6ec2a5bc260aa1be0e97c4be674266748fe093d
parent c41c1f90a6b8af60606c8e2f31b7cff0fa4732cc
Author: tobi <31960611+tsmethurst@users.noreply.github.com>
Date: Wed, 3 May 2023 16:18:34 +0200
[bugfix] Fix invalid og:description on account w/ empty note (#1733)
Diffstat:
2 files changed, 68 insertions(+), 1 deletion(-)
diff --git a/internal/web/opengraph.go b/internal/web/opengraph.go
@@ -91,7 +91,7 @@ func (og *ogMeta) withAccount(account *apimodel.Account) *ogMeta {
if account.Note != "" {
og.Description = parseDescription(account.Note)
} else {
- og.Description = "This GoToSocial user hasn't written a bio yet!"
+ og.Description = `content="This GoToSocial user hasn't written a bio yet!"`
}
og.Image = account.Avatar
diff --git a/internal/web/opengraph_test.go b/internal/web/opengraph_test.go
@@ -22,6 +22,7 @@ import (
"testing"
"github.com/stretchr/testify/suite"
+ apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
)
type OpenGraphTestSuite struct {
@@ -44,6 +45,72 @@ func (suite *OpenGraphTestSuite) TestParseDescription() {
}
}
+func (suite *OpenGraphTestSuite) TestWithAccountWithNote() {
+ baseMeta := ogBase(&apimodel.InstanceV1{
+ AccountDomain: "example.org",
+ Languages: []string{"en"},
+ })
+
+ accountMeta := baseMeta.withAccount(&apimodel.Account{
+ Acct: "example_account",
+ DisplayName: "example person!!",
+ URL: "https://example.org/@example_account",
+ Note: "<p>This is my profile, read it and weep! Weep then!</p>",
+ Username: "example_account",
+ })
+
+ suite.EqualValues(ogMeta{
+ Title: "example person!! (@example_account@example.org)",
+ Type: "profile",
+ Locale: "en",
+ URL: "https://example.org/@example_account",
+ SiteName: "example.org",
+ Description: "content=\"This is my profile, read it and weep! Weep then!\"",
+ Image: "",
+ ImageWidth: "",
+ ImageHeight: "",
+ ImageAlt: "Avatar for example_account",
+ ArticlePublisher: "",
+ ArticleAuthor: "",
+ ArticleModifiedTime: "",
+ ArticlePublishedTime: "",
+ ProfileUsername: "example_account",
+ }, *accountMeta)
+}
+
+func (suite *OpenGraphTestSuite) TestWithAccountNoNote() {
+ baseMeta := ogBase(&apimodel.InstanceV1{
+ AccountDomain: "example.org",
+ Languages: []string{"en"},
+ })
+
+ accountMeta := baseMeta.withAccount(&apimodel.Account{
+ Acct: "example_account",
+ DisplayName: "example person!!",
+ URL: "https://example.org/@example_account",
+ Note: "", // <- empty
+ Username: "example_account",
+ })
+
+ suite.EqualValues(ogMeta{
+ Title: "example person!! (@example_account@example.org)",
+ Type: "profile",
+ Locale: "en",
+ URL: "https://example.org/@example_account",
+ SiteName: "example.org",
+ Description: "content=\"This GoToSocial user hasn't written a bio yet!\"",
+ Image: "",
+ ImageWidth: "",
+ ImageHeight: "",
+ ImageAlt: "Avatar for example_account",
+ ArticlePublisher: "",
+ ArticleAuthor: "",
+ ArticleModifiedTime: "",
+ ArticlePublishedTime: "",
+ ProfileUsername: "example_account",
+ }, *accountMeta)
+}
+
func TestOpenGraphTestSuite(t *testing.T) {
suite.Run(t, &OpenGraphTestSuite{})
}