diff options
author | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2018-09-03 14:48:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-03 14:48:14 +0200 |
commit | 153b1190926b52787b682498745fdd7c1467432c (patch) | |
tree | 3fa35ce5488bff082cde3576c762a12828b33c1d /app/post_test.go | |
parent | 531897b1f0d8176c1f983f921f1d1de618db0131 (diff) | |
parent | 9f465127592f2f3c893988daceaf608671da9df1 (diff) | |
download | chat-153b1190926b52787b682498745fdd7c1467432c.tar.gz chat-153b1190926b52787b682498745fdd7c1467432c.tar.bz2 chat-153b1190926b52787b682498745fdd7c1467432c.zip |
Merge release-5.3
Diffstat (limited to 'app/post_test.go')
-rw-r--r-- | app/post_test.go | 130 |
1 files changed, 129 insertions, 1 deletions
diff --git a/app/post_test.go b/app/post_test.go index 66a141172..ae13a7627 100644 --- a/app/post_test.go +++ b/app/post_test.go @@ -142,7 +142,7 @@ func TestPostAction(t *testing.T) { } assert.Equal(t, "foo", request.Context["s"]) assert.EqualValues(t, 3, request.Context["n"]) - fmt.Fprintf(w, `{"update": {"message": "updated"}, "ephemeral_text": "foo"}`) + fmt.Fprintf(w, `{"post": {"message": "updated"}, "ephemeral_text": "foo"}`) })) defer ts.Close() @@ -229,6 +229,134 @@ func TestPostAction(t *testing.T) { err = th.App.DoPostAction(post2.Id, attachments2[0].Actions[0].Id, th.BasicUser.Id, "selected") require.Nil(t, err) + + th.App.UpdateConfig(func(cfg *model.Config) { + *cfg.ServiceSettings.AllowedUntrustedInternalConnections = "" + }) + + err = th.App.DoPostAction(post.Id, attachments[0].Actions[0].Id, th.BasicUser.Id, "") + require.NotNil(t, err) + require.True(t, strings.Contains(err.Error(), "address forbidden")) + + interactivePostPlugin := model.Post{ + Message: "Interactive post", + ChannelId: th.BasicChannel.Id, + PendingPostId: model.NewId() + ":" + fmt.Sprint(model.GetMillis()), + UserId: th.BasicUser.Id, + Props: model.StringInterface{ + "attachments": []*model.SlackAttachment{ + { + Text: "hello", + Actions: []*model.PostAction{ + { + Integration: &model.PostActionIntegration{ + Context: model.StringInterface{ + "s": "foo", + "n": 3, + }, + URL: ts.URL + "/plugins/myplugin/myaction", + }, + Name: "action", + Type: "some_type", + DataSource: "some_source", + }, + }, + }, + }, + }, + } + + postplugin, err := th.App.CreatePostAsUser(&interactivePostPlugin) + require.Nil(t, err) + + attachmentsPlugin, ok := postplugin.Props["attachments"].([]*model.SlackAttachment) + require.True(t, ok) + + err = th.App.DoPostAction(postplugin.Id, attachmentsPlugin[0].Actions[0].Id, th.BasicUser.Id, "") + require.Nil(t, err) + + th.App.UpdateConfig(func(cfg *model.Config) { + *cfg.ServiceSettings.SiteURL = "http://127.1.1.1" + }) + + interactivePostSiteURL := model.Post{ + Message: "Interactive post", + ChannelId: th.BasicChannel.Id, + PendingPostId: model.NewId() + ":" + fmt.Sprint(model.GetMillis()), + UserId: th.BasicUser.Id, + Props: model.StringInterface{ + "attachments": []*model.SlackAttachment{ + { + Text: "hello", + Actions: []*model.PostAction{ + { + Integration: &model.PostActionIntegration{ + Context: model.StringInterface{ + "s": "foo", + "n": 3, + }, + URL: "http://127.1.1.1/plugins/myplugin/myaction", + }, + Name: "action", + Type: "some_type", + DataSource: "some_source", + }, + }, + }, + }, + }, + } + + postSiteURL, err := th.App.CreatePostAsUser(&interactivePostSiteURL) + require.Nil(t, err) + + attachmentsSiteURL, ok := postSiteURL.Props["attachments"].([]*model.SlackAttachment) + require.True(t, ok) + + err = th.App.DoPostAction(postSiteURL.Id, attachmentsSiteURL[0].Actions[0].Id, th.BasicUser.Id, "") + require.NotNil(t, err) + require.False(t, strings.Contains(err.Error(), "address forbidden")) + + th.App.UpdateConfig(func(cfg *model.Config) { + *cfg.ServiceSettings.SiteURL = ts.URL + "/subpath" + }) + + interactivePostSubpath := model.Post{ + Message: "Interactive post", + ChannelId: th.BasicChannel.Id, + PendingPostId: model.NewId() + ":" + fmt.Sprint(model.GetMillis()), + UserId: th.BasicUser.Id, + Props: model.StringInterface{ + "attachments": []*model.SlackAttachment{ + { + Text: "hello", + Actions: []*model.PostAction{ + { + Integration: &model.PostActionIntegration{ + Context: model.StringInterface{ + "s": "foo", + "n": 3, + }, + URL: ts.URL + "/subpath/plugins/myplugin/myaction", + }, + Name: "action", + Type: "some_type", + DataSource: "some_source", + }, + }, + }, + }, + }, + } + + postSubpath, err := th.App.CreatePostAsUser(&interactivePostSubpath) + require.Nil(t, err) + + attachmentsSubpath, ok := postSubpath.Props["attachments"].([]*model.SlackAttachment) + require.True(t, ok) + + err = th.App.DoPostAction(postSubpath.Id, attachmentsSubpath[0].Actions[0].Id, th.BasicUser.Id, "") + require.Nil(t, err) } func TestPostChannelMentions(t *testing.T) { |