diff options
Diffstat (limited to 'api/command_groupmsg_test.go')
-rw-r--r-- | api/command_groupmsg_test.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/api/command_groupmsg_test.go b/api/command_groupmsg_test.go new file mode 100644 index 000000000..fcb9953ad --- /dev/null +++ b/api/command_groupmsg_test.go @@ -0,0 +1,58 @@ +// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package api + +import ( + "strings" + "testing" + + "github.com/mattermost/mattermost-server/model" +) + +func TestGroupmsgCommands(t *testing.T) { + th := Setup().InitBasic() + defer th.TearDown() + + Client := th.BasicClient + team := th.BasicTeam + user1 := th.BasicUser + user2 := th.BasicUser2 + user3 := th.CreateUser(th.BasicClient) + user4 := th.CreateUser(th.BasicClient) + user5 := th.CreateUser(th.BasicClient) + user6 := th.CreateUser(th.BasicClient) + user7 := th.CreateUser(th.BasicClient) + user8 := th.CreateUser(th.BasicClient) + user9 := th.CreateUser(th.BasicClient) + th.LinkUserToTeam(user3, team) + th.LinkUserToTeam(user4, team) + + rs1 := Client.Must(Client.Command("", "/groupmsg "+user2.Username+","+user3.Username)).Data.(*model.CommandResponse) + + group1 := model.GetGroupNameFromUserIds([]string{user1.Id, user2.Id, user3.Id}) + + if !strings.HasSuffix(rs1.GotoLocation, "/"+team.Name+"/channels/"+group1) { + t.Fatal("failed to create group channel") + } + + rs2 := Client.Must(Client.Command("", "/groupmsg "+user3.Username+","+user4.Username+" foobar")).Data.(*model.CommandResponse) + group2 := model.GetGroupNameFromUserIds([]string{user1.Id, user3.Id, user4.Id}) + + if !strings.HasSuffix(rs2.GotoLocation, "/"+team.Name+"/channels/"+group2) { + t.Fatal("failed to create second direct channel") + } + if result := Client.Must(Client.SearchPosts("foobar", false)).Data.(*model.PostList); len(result.Order) == 0 { + t.Fatal("post did not get sent to direct message") + } + + rs3 := Client.Must(Client.Command("", "/groupmsg "+user2.Username+","+user3.Username)).Data.(*model.CommandResponse) + if !strings.HasSuffix(rs3.GotoLocation, "/"+team.Name+"/channels/"+group1) { + t.Fatal("failed to go back to existing group channel") + } + + Client.Must(Client.Command("", "/groupmsg "+user2.Username+" foobar")) + Client.Must(Client.Command("", "/groupmsg "+user2.Username+","+user3.Username+","+user4.Username+","+user5.Username+","+user6.Username+","+user7.Username+","+user8.Username+","+user9.Username+" foobar")) + Client.Must(Client.Command("", "/groupmsg junk foobar")) + Client.Must(Client.Command("", "/groupmsg junk,junk2 foobar")) +} |