Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
201 lines
4.6 KiB
201 lines
4.6 KiB
// Copyright 2017 The Gitea Authors. All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package admin |
|
|
|
import ( |
|
"testing" |
|
|
|
"code.gitea.io/gitea/models/unittest" |
|
user_model "code.gitea.io/gitea/models/user" |
|
"code.gitea.io/gitea/modules/setting" |
|
api "code.gitea.io/gitea/modules/structs" |
|
"code.gitea.io/gitea/modules/test" |
|
"code.gitea.io/gitea/modules/web" |
|
"code.gitea.io/gitea/services/forms" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestNewUserPost_MustChangePassword(t *testing.T) { |
|
|
|
unittest.PrepareTestEnv(t) |
|
ctx := test.MockContext(t, "admin/users/new") |
|
|
|
u := unittest.AssertExistsAndLoadBean(t, &user_model.User{ |
|
IsAdmin: true, |
|
ID: 2, |
|
}).(*user_model.User) |
|
|
|
ctx.User = u |
|
|
|
username := "gitea" |
|
email := "gitea@gitea.io" |
|
|
|
form := forms.AdminCreateUserForm{ |
|
LoginType: "local", |
|
LoginName: "local", |
|
UserName: username, |
|
Email: email, |
|
Password: "abc123ABC!=$", |
|
SendNotify: false, |
|
MustChangePassword: true, |
|
} |
|
|
|
web.SetForm(ctx, &form) |
|
NewUserPost(ctx) |
|
|
|
assert.NotEmpty(t, ctx.Flash.SuccessMsg) |
|
|
|
u, err := user_model.GetUserByName(username) |
|
|
|
assert.NoError(t, err) |
|
assert.Equal(t, username, u.Name) |
|
assert.Equal(t, email, u.Email) |
|
assert.True(t, u.MustChangePassword) |
|
} |
|
|
|
func TestNewUserPost_MustChangePasswordFalse(t *testing.T) { |
|
unittest.PrepareTestEnv(t) |
|
ctx := test.MockContext(t, "admin/users/new") |
|
|
|
u := unittest.AssertExistsAndLoadBean(t, &user_model.User{ |
|
IsAdmin: true, |
|
ID: 2, |
|
}).(*user_model.User) |
|
|
|
ctx.User = u |
|
|
|
username := "gitea" |
|
email := "gitea@gitea.io" |
|
|
|
form := forms.AdminCreateUserForm{ |
|
LoginType: "local", |
|
LoginName: "local", |
|
UserName: username, |
|
Email: email, |
|
Password: "abc123ABC!=$", |
|
SendNotify: false, |
|
MustChangePassword: false, |
|
} |
|
|
|
web.SetForm(ctx, &form) |
|
NewUserPost(ctx) |
|
|
|
assert.NotEmpty(t, ctx.Flash.SuccessMsg) |
|
|
|
u, err := user_model.GetUserByName(username) |
|
|
|
assert.NoError(t, err) |
|
assert.Equal(t, username, u.Name) |
|
assert.Equal(t, email, u.Email) |
|
assert.False(t, u.MustChangePassword) |
|
} |
|
|
|
func TestNewUserPost_InvalidEmail(t *testing.T) { |
|
unittest.PrepareTestEnv(t) |
|
ctx := test.MockContext(t, "admin/users/new") |
|
|
|
u := unittest.AssertExistsAndLoadBean(t, &user_model.User{ |
|
IsAdmin: true, |
|
ID: 2, |
|
}).(*user_model.User) |
|
|
|
ctx.User = u |
|
|
|
username := "gitea" |
|
email := "gitea@gitea.io\r\n" |
|
|
|
form := forms.AdminCreateUserForm{ |
|
LoginType: "local", |
|
LoginName: "local", |
|
UserName: username, |
|
Email: email, |
|
Password: "abc123ABC!=$", |
|
SendNotify: false, |
|
MustChangePassword: false, |
|
} |
|
|
|
web.SetForm(ctx, &form) |
|
NewUserPost(ctx) |
|
|
|
assert.NotEmpty(t, ctx.Flash.ErrorMsg) |
|
} |
|
|
|
func TestNewUserPost_VisibilityDefaultPublic(t *testing.T) { |
|
unittest.PrepareTestEnv(t) |
|
ctx := test.MockContext(t, "admin/users/new") |
|
|
|
u := unittest.AssertExistsAndLoadBean(t, &user_model.User{ |
|
IsAdmin: true, |
|
ID: 2, |
|
}).(*user_model.User) |
|
|
|
ctx.User = u |
|
|
|
username := "gitea" |
|
email := "gitea@gitea.io" |
|
|
|
form := forms.AdminCreateUserForm{ |
|
LoginType: "local", |
|
LoginName: "local", |
|
UserName: username, |
|
Email: email, |
|
Password: "abc123ABC!=$", |
|
SendNotify: false, |
|
MustChangePassword: false, |
|
} |
|
|
|
web.SetForm(ctx, &form) |
|
NewUserPost(ctx) |
|
|
|
assert.NotEmpty(t, ctx.Flash.SuccessMsg) |
|
|
|
u, err := user_model.GetUserByName(username) |
|
|
|
assert.NoError(t, err) |
|
assert.Equal(t, username, u.Name) |
|
assert.Equal(t, email, u.Email) |
|
// As default user visibility |
|
assert.Equal(t, setting.Service.DefaultUserVisibilityMode, u.Visibility) |
|
} |
|
|
|
func TestNewUserPost_VisibilityPrivate(t *testing.T) { |
|
unittest.PrepareTestEnv(t) |
|
ctx := test.MockContext(t, "admin/users/new") |
|
|
|
u := unittest.AssertExistsAndLoadBean(t, &user_model.User{ |
|
IsAdmin: true, |
|
ID: 2, |
|
}).(*user_model.User) |
|
|
|
ctx.User = u |
|
|
|
username := "gitea" |
|
email := "gitea@gitea.io" |
|
|
|
form := forms.AdminCreateUserForm{ |
|
LoginType: "local", |
|
LoginName: "local", |
|
UserName: username, |
|
Email: email, |
|
Password: "abc123ABC!=$", |
|
SendNotify: false, |
|
MustChangePassword: false, |
|
Visibility: api.VisibleTypePrivate, |
|
} |
|
|
|
web.SetForm(ctx, &form) |
|
NewUserPost(ctx) |
|
|
|
assert.NotEmpty(t, ctx.Flash.SuccessMsg) |
|
|
|
u, err := user_model.GetUserByName(username) |
|
|
|
assert.NoError(t, err) |
|
assert.Equal(t, username, u.Name) |
|
assert.Equal(t, email, u.Email) |
|
// As default user visibility |
|
assert.True(t, u.Visibility.IsPrivate()) |
|
}
|
|
|