Skip to content

Commit 20b8f5e

Browse files
authored
Merge branch 'main' into fix-get-changed-files
2 parents e260c82 + 7bde2bf commit 20b8f5e

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

services/user/user_test.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
package user
55

66
import (
7+
"fmt"
78
"path/filepath"
9+
"strings"
810
"testing"
911

1012
"code.gitea.io/gitea/models"
13+
"code.gitea.io/gitea/models/auth"
1114
"code.gitea.io/gitea/models/db"
1215
"code.gitea.io/gitea/models/organization"
1316
repo_model "code.gitea.io/gitea/models/repo"
@@ -94,6 +97,67 @@ func TestCreateUser(t *testing.T) {
9497
assert.NoError(t, DeleteUser(db.DefaultContext, user, false))
9598
}
9699

100+
func TestRenameUser(t *testing.T) {
101+
assert.NoError(t, unittest.PrepareTestDatabase())
102+
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 21})
103+
104+
t.Run("Non-Local", func(t *testing.T) {
105+
u := &user_model.User{
106+
Type: user_model.UserTypeIndividual,
107+
LoginType: auth.OAuth2,
108+
}
109+
assert.ErrorIs(t, RenameUser(db.DefaultContext, u, "user_rename"), user_model.ErrUserIsNotLocal{})
110+
})
111+
112+
t.Run("Same username", func(t *testing.T) {
113+
assert.ErrorIs(t, RenameUser(db.DefaultContext, user, user.Name), user_model.ErrUsernameNotChanged{UID: user.ID, Name: user.Name})
114+
})
115+
116+
t.Run("Non usable username", func(t *testing.T) {
117+
usernames := []string{"--diff", "aa.png", ".well-known", "search", "aaa.atom"}
118+
for _, username := range usernames {
119+
t.Run(username, func(t *testing.T) {
120+
assert.Error(t, user_model.IsUsableUsername(username))
121+
assert.Error(t, RenameUser(db.DefaultContext, user, username))
122+
})
123+
}
124+
})
125+
126+
t.Run("Only capitalization", func(t *testing.T) {
127+
caps := strings.ToUpper(user.Name)
128+
unittest.AssertNotExistsBean(t, &user_model.User{ID: user.ID, Name: caps})
129+
unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerID: user.ID, OwnerName: user.Name})
130+
131+
assert.NoError(t, RenameUser(db.DefaultContext, user, caps))
132+
133+
unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: user.ID, Name: caps})
134+
unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerID: user.ID, OwnerName: caps})
135+
})
136+
137+
t.Run("Already exists", func(t *testing.T) {
138+
existUser := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
139+
140+
assert.ErrorIs(t, RenameUser(db.DefaultContext, user, existUser.Name), user_model.ErrUserAlreadyExist{Name: existUser.Name})
141+
assert.ErrorIs(t, RenameUser(db.DefaultContext, user, existUser.LowerName), user_model.ErrUserAlreadyExist{Name: existUser.LowerName})
142+
newUsername := fmt.Sprintf("uSEr%d", existUser.ID)
143+
assert.ErrorIs(t, RenameUser(db.DefaultContext, user, newUsername), user_model.ErrUserAlreadyExist{Name: newUsername})
144+
})
145+
146+
t.Run("Normal", func(t *testing.T) {
147+
oldUsername := user.Name
148+
newUsername := "User_Rename"
149+
150+
assert.NoError(t, RenameUser(db.DefaultContext, user, newUsername))
151+
unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: user.ID, Name: newUsername, LowerName: strings.ToLower(newUsername)})
152+
153+
redirectUID, err := user_model.LookupUserRedirect(oldUsername)
154+
assert.NoError(t, err)
155+
assert.EqualValues(t, user.ID, redirectUID)
156+
157+
unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerID: user.ID, OwnerName: user.Name})
158+
})
159+
}
160+
97161
func TestCreateUser_Issue5882(t *testing.T) {
98162
// Init settings
99163
_ = setting.Admin

services/wiki/wiki_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,3 +307,15 @@ func TestPrepareUncycloFileName_FirstPage(t *testing.T) {
307307
assert.NoError(t, err)
308308
assert.EqualValues(t, "Home.md", newUncycloPath)
309309
}
310+
311+
func TestWebPathConversion(t *testing.T) {
312+
assert.Equal(t, "path/wiki", WebPathToURLPath(WebPath("path/wiki")))
313+
assert.Equal(t, "wiki", WebPathToURLPath(WebPath("wiki")))
314+
assert.Equal(t, "", WebPathToURLPath(WebPath("")))
315+
}
316+
317+
func TestWebPathFromRequest(t *testing.T) {
318+
assert.Equal(t, WebPath("a%2Fb"), WebPathFromRequest("a/b"))
319+
assert.Equal(t, WebPath("a"), WebPathFromRequest("a"))
320+
assert.Equal(t, WebPath("b"), WebPathFromRequest("a/../b"))
321+
}

0 commit comments

Comments
 (0)