github.com/vnforks/kid@v5.11.1+incompatible/app/command_channel_header_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package app 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 11 "github.com/mattermost/mattermost-server/model" 12 ) 13 14 func TestHeaderProviderDoCommand(t *testing.T) { 15 th := Setup(t).InitBasic() 16 defer th.TearDown() 17 18 hp := HeaderProvider{} 19 20 th.AddPermissionToRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 21 22 // Try a public channel *with* permission. 23 args := &model.CommandArgs{ 24 T: func(s string, args ...interface{}) string { return s }, 25 ChannelId: th.BasicChannel.Id, 26 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 27 } 28 29 for msg, expected := range map[string]string{ 30 "": "api.command_channel_header.message.app_error", 31 "hello": "", 32 } { 33 actual := hp.DoCommand(th.App, args, msg).Text 34 assert.Equal(t, expected, actual) 35 } 36 37 th.RemovePermissionFromRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 38 39 // Try a public channel *without* permission. 40 args = &model.CommandArgs{ 41 T: func(s string, args ...interface{}) string { return s }, 42 ChannelId: th.BasicChannel.Id, 43 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 44 } 45 46 actual := hp.DoCommand(th.App, args, "hello").Text 47 assert.Equal(t, "api.command_channel_header.permission.app_error", actual) 48 49 th.AddPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 50 51 // Try a private channel *with* permission. 52 privateChannel := th.CreatePrivateChannel(th.BasicTeam) 53 54 args = &model.CommandArgs{ 55 T: func(s string, args ...interface{}) string { return s }, 56 ChannelId: privateChannel.Id, 57 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 58 } 59 60 actual = hp.DoCommand(th.App, args, "hello").Text 61 assert.Equal(t, "", actual) 62 63 th.RemovePermissionFromRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 64 65 // Try a private channel *without* permission. 66 args = &model.CommandArgs{ 67 T: func(s string, args ...interface{}) string { return s }, 68 ChannelId: privateChannel.Id, 69 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 70 } 71 72 actual = hp.DoCommand(th.App, args, "hello").Text 73 assert.Equal(t, "api.command_channel_header.permission.app_error", actual) 74 75 // Try a group channel *with* being a member. 76 user1 := th.CreateUser() 77 user2 := th.CreateUser() 78 user3 := th.CreateUser() 79 80 groupChannel := th.CreateGroupChannel(user1, user2) 81 82 args = &model.CommandArgs{ 83 T: func(s string, args ...interface{}) string { return s }, 84 ChannelId: groupChannel.Id, 85 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 86 } 87 88 actual = hp.DoCommand(th.App, args, "hello").Text 89 assert.Equal(t, "", actual) 90 91 // Try a group channel *without* being a member. 92 args = &model.CommandArgs{ 93 T: func(s string, args ...interface{}) string { return s }, 94 ChannelId: groupChannel.Id, 95 Session: model.Session{UserId: user3.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 96 } 97 98 actual = hp.DoCommand(th.App, args, "hello").Text 99 assert.Equal(t, "api.command_channel_header.permission.app_error", actual) 100 101 // Try a direct channel *with* being a member. 102 directChannel := th.CreateDmChannel(user1) 103 104 args = &model.CommandArgs{ 105 T: func(s string, args ...interface{}) string { return s }, 106 ChannelId: directChannel.Id, 107 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 108 } 109 110 actual = hp.DoCommand(th.App, args, "hello").Text 111 assert.Equal(t, "", actual) 112 113 // Try a direct channel *without* being a member. 114 args = &model.CommandArgs{ 115 T: func(s string, args ...interface{}) string { return s }, 116 ChannelId: directChannel.Id, 117 Session: model.Session{UserId: user2.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 118 } 119 120 actual = hp.DoCommand(th.App, args, "hello").Text 121 assert.Equal(t, "api.command_channel_header.permission.app_error", actual) 122 }