From 47250c6629416b628a19e5571ac89f7b4646418c Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Mon, 14 May 2018 10:24:58 -0400 Subject: Refactor context out of API packages (#8755) * Refactor context out of API packages * Update function names per feedback * Move webhook handlers to web and fix web tests * Move more webhook tests out of api package * Fix static handler --- api/webhook_test.go | 154 ---------------------------------------------------- 1 file changed, 154 deletions(-) (limited to 'api/webhook_test.go') diff --git a/api/webhook_test.go b/api/webhook_test.go index 0b3073f83..c9ca7d783 100644 --- a/api/webhook_test.go +++ b/api/webhook_test.go @@ -4,8 +4,6 @@ package api import ( - "fmt" - "net/http" "testing" "github.com/mattermost/mattermost-server/model" @@ -968,155 +966,3 @@ func TestRegenOutgoingHookToken(t *testing.T) { t.Fatal("should have errored - webhooks turned off") } } - -func TestIncomingWebhooks(t *testing.T) { - th := Setup().InitBasic().InitSystemAdmin() - defer th.TearDown() - - Client := th.SystemAdminClient - team := th.SystemAdminTeam - channel1 := th.CreateChannel(Client, team) - user2 := th.CreateUser(Client) - th.LinkUserToTeam(user2, team) - - th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true }) - - hook := &model.IncomingWebhook{ChannelId: channel1.Id} - hook = Client.Must(Client.CreateIncomingWebhook(hook)).Data.(*model.IncomingWebhook) - - url := "/hooks/" + hook.Id - text := `this is a \"test\" - that contains a newline and a tab` - - if _, err := Client.DoPost(url, "{\"text\":\"this is a test\"}", "application/json"); err != nil { - t.Fatal(err) - } - - if _, err := Client.DoPost(url, "{\"text\":\""+text+"\"}", "application/json"); err != nil { - t.Fatal(err) - } - - if _, err := Client.DoPost(url, fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", channel1.Name), "application/json"); err != nil { - t.Fatal(err) - } - - if _, err := Client.DoPost(url, fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"#%s\"}", channel1.Name), "application/json"); err != nil { - t.Fatal(err) - } - - if _, err := Client.DoPost(url, fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"@%s\"}", user2.Username), "application/json"); err != nil { - t.Fatal(err) - } - - if _, err := Client.DoPost(url, "payload={\"text\":\"this is a test\"}", "application/x-www-form-urlencoded"); err != nil { - t.Fatal(err) - } - - if _, err := Client.DoPost(url, "payload={\"text\":\""+text+"\"}", "application/x-www-form-urlencoded"); err != nil { - t.Fatal(err) - } - - if _, err := th.BasicClient.DoPost(url, fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", model.DEFAULT_CHANNEL), "application/json"); err != nil { - t.Fatal("should not have failed -- ExperimentalTownSquareIsReadOnly is false and it's not a read only channel") - } - - th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = true }) - th.App.SetLicense(model.NewTestLicense()) - - if _, err := th.BasicClient.DoPost(url, fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", model.DEFAULT_CHANNEL), "application/json"); err == nil { - t.Fatal("should have failed -- ExperimentalTownSquareIsReadOnly is true and it's a read only channel") - } - - attachmentPayload := `{ - "text": "this is a test", - "attachments": [ - { - "fallback": "Required plain-text summary of the attachment.", - - "color": "#36a64f", - - "pretext": "Optional text that appears above the attachment block", - - "author_name": "Bobby Tables", - "author_link": "http://flickr.com/bobby/", - "author_icon": "http://flickr.com/icons/bobby.jpg", - - "title": "Slack API Documentation", - "title_link": "https://api.slack.com/", - - "text": "Optional text that appears within the attachment", - - "fields": [ - { - "title": "Priority", - "value": "High", - "short": false - } - ], - - "image_url": "http://my-website.com/path/to/image.jpg", - "thumb_url": "http://example.com/path/to/thumb.png" - } - ] - }` - - if _, err := Client.DoPost(url, attachmentPayload, "application/json"); err != nil { - t.Fatal(err) - } - - if _, err := Client.DoPost(url, "{\"text\":\"\"}", "application/json"); err == nil || err.StatusCode != http.StatusBadRequest { - t.Fatal("should have failed - no text") - } - - tooLongText := "" - for i := 0; i < 8200; i++ { - tooLongText += "a" - } - - if _, err := Client.DoPost(url, "{\"text\":\""+tooLongText+"\"}", "application/json"); err != nil { - t.Fatal(err) - } - - attachmentPayload = `{ - "text": "this is a test", - "attachments": [ - { - "fallback": "Required plain-text summary of the attachment.", - - "color": "#36a64f", - - "pretext": "Optional text that appears above the attachment block", - - "author_name": "Bobby Tables", - "author_link": "http://flickr.com/bobby/", - "author_icon": "http://flickr.com/icons/bobby.jpg", - - "title": "Slack API Documentation", - "title_link": "https://api.slack.com/", - - "text": "` + tooLongText + `", - - "fields": [ - { - "title": "Priority", - "value": "High", - "short": false - } - ], - - "image_url": "http://my-website.com/path/to/image.jpg", - "thumb_url": "http://example.com/path/to/thumb.png" - } - ] - }` - - if _, err := Client.DoPost(url, attachmentPayload, "application/json"); err != nil { - t.Fatal(err) - } - - th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = false }) - - if _, err := Client.DoPost(url, "{\"text\":\"this is a test\"}", "application/json"); err == nil { - t.Fatal("should have failed - webhooks turned off") - } -} -- cgit v1.2.3-1-g7c22