diff options
author | Chris <ccbrown112@gmail.com> | 2018-02-09 13:56:11 -0600 |
---|---|---|
committer | Christopher Brown <ccbrown112@gmail.com> | 2018-02-09 13:59:17 -0600 |
commit | a4e9499714999d58f26c712df02c014f1facccf7 (patch) | |
tree | 0d7031485ce74b502746d5a9fe2f65ca2c82d38e /api4/image_test.go | |
parent | 9bf23ece6c247fb04a57127260de4608c433daa5 (diff) | |
download | chat-a4e9499714999d58f26c712df02c014f1facccf7.tar.gz chat-a4e9499714999d58f26c712df02c014f1facccf7.tar.bz2 chat-a4e9499714999d58f26c712df02c014f1facccf7.zip |
Add /v4/image api (#8230)
* add image api
* i suppose i should add a test...
* only redirect to image proxy
Diffstat (limited to 'api4/image_test.go')
-rw-r--r-- | api4/image_test.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/api4/image_test.go b/api4/image_test.go new file mode 100644 index 000000000..236d5785d --- /dev/null +++ b/api4/image_test.go @@ -0,0 +1,52 @@ +// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package api4 + +import ( + "net/http" + "net/url" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/mattermost/mattermost-server/model" +) + +func TestGetImage(t *testing.T) { + th := Setup().InitBasic() + defer th.TearDown() + + th.Client.HttpClient.CheckRedirect = func(*http.Request, []*http.Request) error { + return http.ErrUseLastResponse + } + + originURL := "http://foo.bar/baz.gif" + + r, err := http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+url.QueryEscape(originURL), nil) + require.NoError(t, err) + r.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) + + th.App.UpdateConfig(func(cfg *model.Config) { + cfg.ServiceSettings.ImageProxyType = nil + }) + + resp, err := th.Client.HttpClient.Do(r) + require.NoError(t, err) + assert.Equal(t, http.StatusNotFound, resp.StatusCode) + + th.App.UpdateConfig(func(cfg *model.Config) { + cfg.ServiceSettings.ImageProxyType = model.NewString("willnorris/imageproxy") + cfg.ServiceSettings.ImageProxyURL = model.NewString("https://proxy.foo.bar") + }) + + r, err = http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+originURL, nil) + require.NoError(t, err) + r.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) + + resp, err = th.Client.HttpClient.Do(r) + require.NoError(t, err) + assert.Equal(t, http.StatusFound, resp.StatusCode) + assert.Equal(t, "https://proxy.foo.bar//"+originURL, resp.Header.Get("Location")) +} |