summaryrefslogtreecommitdiffstats
path: root/api/command_groupmsg_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'api/command_groupmsg_test.go')
-rw-r--r--api/command_groupmsg_test.go58
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"))
+}