diff --git a/app/post_metadata.go b/app/post_metadata.go index e03c1891de..687b373e00 100644 --- a/app/post_metadata.go +++ b/app/post_metadata.go @@ -549,6 +549,7 @@ func (a *App) getLinkMetadata(requestURL string, timestamp int64, isNewPost bool } else { request.Header.Add("Accept", "image/*") request.Header.Add("Accept", "text/html;q=0.8") + request.Header.Add("Accept-Language", *a.Config().LocalizationSettings.DefaultServerLocale) client := a.HTTPService().MakeClient(false) client.Timeout = time.Duration(*a.Config().ExperimentalSettings.LinkMetadataTimeoutMilliseconds) * time.Millisecond diff --git a/app/post_metadata_test.go b/app/post_metadata_test.go index c7831e33f4..71fd3442b3 100644 --- a/app/post_metadata_test.go +++ b/app/post_metadata_test.go @@ -754,12 +754,24 @@ func TestGetEmbedForPost(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Path == "/index.html" { w.Header().Set("Content-Type", "text/html") - w.Write([]byte(` - - - - - `)) + if r.Header.Get("Accept-Language") == "fr" { + w.Header().Set("Content-Language", "fr") + w.Write([]byte(` + + + + + + `)) + } else { + w.Write([]byte(` + + + + + + `)) + } } else if r.URL.Path == "/image.png" { file, err := testutils.ReadTestFile("test.png") require.NoError(t, err) @@ -819,14 +831,32 @@ func TestGetEmbedForPost(t *testing.T) { assert.NoError(t, err) }) - t.Run("should return an image embed when the first link is an image", func(t *testing.T) { + t.Run("should return an opengraph embed", func(t *testing.T) { embed, err := th.App.getEmbedForPost(&model.Post{}, ogURL, false) assert.Equal(t, &model.PostEmbed{ Type: model.PostEmbedOpengraph, URL: ogURL, Data: &opengraph.OpenGraph{ - Title: "Title", + Title: "Title", + Description: "Hello world", + }, + }, embed) + assert.NoError(t, err) + }) + + t.Run("should return an opengraph embed in different Server Language", func(t *testing.T) { + th.App.UpdateConfig(func(cfg *model.Config) { + *cfg.LocalizationSettings.DefaultServerLocale = "fr" + }) + embed, err := th.App.getEmbedForPost(&model.Post{}, ogURL, false) + + assert.Equal(t, &model.PostEmbed{ + Type: model.PostEmbedOpengraph, + URL: ogURL, + Data: &opengraph.OpenGraph{ + Title: "Title-FR", + Description: "Bonjour le monde", }, }, embed) assert.NoError(t, err)