github.com/pafomin-at-avito/mattermost-server@v5.11.1+incompatible/app/command_channel_rename_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 TestRenameProviderDoCommand(t *testing.T) { 15 th := Setup(t).InitBasic() 16 defer th.TearDown() 17 18 th.AddPermissionToRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 19 20 rp := RenameProvider{} 21 args := &model.CommandArgs{ 22 T: func(s string, args ...interface{}) string { return s }, 23 ChannelId: th.BasicChannel.Id, 24 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 25 } 26 27 // Blank text is a success 28 for msg, expected := range map[string]string{ 29 "": "api.command_channel_rename.message.app_error", 30 "o": "api.command_channel_rename.too_short.app_error", 31 "joram": "", 32 "1234567890123456789012": "", 33 "12345678901234567890123": "api.command_channel_rename.too_long.app_error", 34 } { 35 actual := rp.DoCommand(th.App, args, msg).Text 36 assert.Equal(t, expected, actual) 37 } 38 39 // Try a public channel *without* permission. 40 th.RemovePermissionFromRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 41 42 args = &model.CommandArgs{ 43 T: func(s string, args ...interface{}) string { return s }, 44 ChannelId: th.BasicChannel.Id, 45 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 46 } 47 48 actual := rp.DoCommand(th.App, args, "hello").Text 49 assert.Equal(t, "api.command_channel_rename.permission.app_error", actual) 50 51 // Try a private channel *with* permission. 52 privateChannel := th.CreatePrivateChannel(th.BasicTeam) 53 54 th.AddPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 55 56 args = &model.CommandArgs{ 57 T: func(s string, args ...interface{}) string { return s }, 58 ChannelId: privateChannel.Id, 59 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 60 } 61 62 actual = rp.DoCommand(th.App, args, "hello").Text 63 assert.Equal(t, "", actual) 64 65 // Try a private channel *without* permission. 66 th.RemovePermissionFromRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 67 68 args = &model.CommandArgs{ 69 T: func(s string, args ...interface{}) string { return s }, 70 ChannelId: privateChannel.Id, 71 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 72 } 73 74 actual = rp.DoCommand(th.App, args, "hello").Text 75 assert.Equal(t, "api.command_channel_rename.permission.app_error", actual) 76 77 // Try a group channel *with* being a member. 78 user1 := th.CreateUser() 79 user2 := th.CreateUser() 80 81 groupChannel := th.CreateGroupChannel(user1, user2) 82 83 args = &model.CommandArgs{ 84 T: func(s string, args ...interface{}) string { return s }, 85 ChannelId: groupChannel.Id, 86 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 87 } 88 89 actual = rp.DoCommand(th.App, args, "hello").Text 90 assert.Equal(t, "api.command_channel_rename.direct_group.app_error", actual) 91 92 // Try a direct channel *with* being a member. 93 directChannel := th.CreateDmChannel(user1) 94 95 args = &model.CommandArgs{ 96 T: func(s string, args ...interface{}) string { return s }, 97 ChannelId: directChannel.Id, 98 Session: model.Session{UserId: th.BasicUser.Id, TeamMembers: []*model.TeamMember{{TeamId: th.BasicTeam.Id, Roles: model.TEAM_USER_ROLE_ID}}}, 99 } 100 101 actual = rp.DoCommand(th.App, args, "hello").Text 102 assert.Equal(t, "api.command_channel_rename.direct_group.app_error", actual) 103 }