| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- // Copyright 2017 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- 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/web"
- "code.gitea.io/gitea/services/contexttest"
- "code.gitea.io/gitea/services/forms"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestNewUserPost_MustChangePassword(t *testing.T) {
- unittest.PrepareTestEnv(t)
- ctx, _ := contexttest.MockContext(t, "admin/users/new")
-
- u := unittest.AssertExistsAndLoadBean(t, &user_model.User{
- IsAdmin: true,
- ID: 2,
- })
-
- ctx.Doer = 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(ctx, 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, _ := contexttest.MockContext(t, "admin/users/new")
-
- u := unittest.AssertExistsAndLoadBean(t, &user_model.User{
- IsAdmin: true,
- ID: 2,
- })
-
- ctx.Doer = 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(ctx, 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, _ := contexttest.MockContext(t, "admin/users/new")
-
- u := unittest.AssertExistsAndLoadBean(t, &user_model.User{
- IsAdmin: true,
- ID: 2,
- })
-
- ctx.Doer = 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, _ := contexttest.MockContext(t, "admin/users/new")
-
- u := unittest.AssertExistsAndLoadBean(t, &user_model.User{
- IsAdmin: true,
- ID: 2,
- })
-
- ctx.Doer = 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(ctx, 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, _ := contexttest.MockContext(t, "admin/users/new")
-
- u := unittest.AssertExistsAndLoadBean(t, &user_model.User{
- IsAdmin: true,
- ID: 2,
- })
-
- ctx.Doer = 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(ctx, 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())
- }
|