From cf7a05f80f68b5b1c8bcc0089679dd497cec2506 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Sun, 14 Jun 2015 23:53:32 -0800 Subject: first commit --- api/auto_users.go | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 api/auto_users.go (limited to 'api/auto_users.go') diff --git a/api/auto_users.go b/api/auto_users.go new file mode 100644 index 000000000..1874ffbec --- /dev/null +++ b/api/auto_users.go @@ -0,0 +1,92 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +package api + +import ( + "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" +) + +type AutoUserCreator struct { + client *model.Client + teamID string + EmailLength utils.Range + EmailCharset string + NameLength utils.Range + NameCharset string + Fuzzy bool +} + +func NewAutoUserCreator(client *model.Client, teamID string) *AutoUserCreator { + return &AutoUserCreator{ + client: client, + teamID: teamID, + EmailLength: USER_EMAIL_LEN, + EmailCharset: utils.LOWERCASE, + NameLength: USER_NAME_LEN, + NameCharset: utils.LOWERCASE, + Fuzzy: false, + } +} + +// Basic test team and user so you always know one +func CreateBasicUser(client *model.Client) *model.AppError { + result, _ := client.FindTeamByDomain(BTEST_TEAM_DOMAIN_NAME, true) + if result.Data.(bool) == false { + newteam := &model.Team{Name: BTEST_TEAM_NAME, Domain: BTEST_TEAM_DOMAIN_NAME, Email: BTEST_TEAM_EMAIL, Type: BTEST_TEAM_TYPE} + result, err := client.CreateTeam(newteam) + if err != nil { + return err + } + basicteam := result.Data.(*model.Team) + newuser := &model.User{TeamId: basicteam.Id, Email: BTEST_USER_EMAIL, FullName: BTEST_USER_NAME, Password: BTEST_USER_PASSWORD} + result, err = client.CreateUser(newuser, "") + if err != nil { + return err + } + Srv.Store.User().VerifyEmail(result.Data.(*model.User).Id) + } + return nil +} + +func (cfg *AutoUserCreator) createRandomUser() (*model.User, bool) { + var userEmail string + var userName string + if cfg.Fuzzy { + userEmail = utils.RandString(FUZZ_USER_EMAIL_PREFIX_LEN, utils.LOWERCASE) + "-" + utils.FuzzEmail() + userName = utils.FuzzName() + } else { + userEmail = utils.RandomEmail(cfg.EmailLength, cfg.EmailCharset) + userName = utils.RandomName(cfg.NameLength, cfg.NameCharset) + } + + user := &model.User{ + TeamId: cfg.teamID, + Email: userEmail, + FullName: userName, + Password: USER_PASSWORD} + + result, err := cfg.client.CreateUser(user, "") + if err != nil { + return nil, false + } + // We need to cheat to verify the user's email + Srv.Store.User().VerifyEmail(result.Data.(*model.User).Id) + return result.Data.(*model.User), true +} + +func (cfg *AutoUserCreator) CreateTestUsers(num utils.Range) ([]*model.User, bool) { + numUsers := utils.RandIntFromRange(num) + users := make([]*model.User, numUsers) + + for i := 0; i < numUsers; i++ { + var err bool + users[i], err = cfg.createRandomUser() + if err != true { + return users, false + } + } + + return users, true +} -- cgit v1.2.3-1-g7c22