diff options
author | Thomas Balthazar <tbalthazar@users.noreply.github.com> | 2016-05-31 16:51:28 +0200 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-05-31 10:51:28 -0400 |
commit | c226cabc048a4e33e956346523e4605e85979d08 (patch) | |
tree | 563bb6536645b24ed378da4056b2f9f2bad40aea /model/outgoing_webhook_test.go | |
parent | 8f984771ae99e903f834236e24a1048d163a0ae6 (diff) | |
download | chat-c226cabc048a4e33e956346523e4605e85979d08.tar.gz chat-c226cabc048a4e33e956346523e4605e85979d08.tar.bz2 chat-c226cabc048a4e33e956346523e4605e85979d08.zip |
PLT-2170 Send payload in application/json for outgoing webhooks (#3160)
* Send payload in application/json for outgoing webhooks
The Add outgoing webhook UI now has a 'Content-Type' field that allows
to choose between application/x-www-form-urlencoded and
application/json. All outgoing webhooks created before this change will
be considered as x-www-form-urlencoded. There's also a minor change in
the way the outgoing webhook summary is displayed: the 'Callback URLs'
label was missing.
* Fix JS formatting errors
* Increase ContentType field length to 128
Diffstat (limited to 'model/outgoing_webhook_test.go')
-rw-r--r-- | model/outgoing_webhook_test.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/model/outgoing_webhook_test.go b/model/outgoing_webhook_test.go index 72c842e03..24b81d221 100644 --- a/model/outgoing_webhook_test.go +++ b/model/outgoing_webhook_test.go @@ -4,6 +4,8 @@ package model import ( + "net/url" + "reflect" "strings" "testing" ) @@ -107,8 +109,49 @@ func TestOutgoingWebhookIsValid(t *testing.T) { o.Description = strings.Repeat("1", 128) if err := o.IsValid(); err != nil { + t.Fatal("should be invalid") + } + + o.ContentType = strings.Repeat("1", 129) + if err := o.IsValid(); err == nil { t.Fatal(err) } + + o.ContentType = strings.Repeat("1", 128) + if err := o.IsValid(); err != nil { + t.Fatal(err) + } +} + +func TestOutgoingWebhookPayloadToFormValues(t *testing.T) { + p := &OutgoingWebhookPayload{ + Token: "Token", + TeamId: "TeamId", + TeamDomain: "TeamDomain", + ChannelId: "ChannelId", + ChannelName: "ChannelName", + Timestamp: 123000, + UserId: "UserId", + UserName: "UserName", + PostId: "PostId", + Text: "Text", + TriggerWord: "TriggerWord", + } + v := url.Values{} + v.Set("token", "Token") + v.Set("team_id", "TeamId") + v.Set("team_domain", "TeamDomain") + v.Set("channel_id", "ChannelId") + v.Set("channel_name", "ChannelName") + v.Set("timestamp", "123") + v.Set("user_id", "UserId") + v.Set("user_name", "UserName") + v.Set("post_id", "PostId") + v.Set("text", "Text") + v.Set("trigger_word", "TriggerWord") + if got, want := p.ToFormValues(), v.Encode(); !reflect.DeepEqual(got, want) { + t.Fatalf("Got %+v, wanted %+v", got, want) + } } func TestOutgoingWebhookPreSave(t *testing.T) { |