code.gitea.io/gitea@v1.22.3/tests/integration/delete_user_test.go (about) 1 // Copyright 2017 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package integration 5 6 import ( 7 "fmt" 8 "net/http" 9 "testing" 10 11 issues_model "code.gitea.io/gitea/models/issues" 12 "code.gitea.io/gitea/models/organization" 13 access_model "code.gitea.io/gitea/models/perm/access" 14 repo_model "code.gitea.io/gitea/models/repo" 15 "code.gitea.io/gitea/models/unittest" 16 user_model "code.gitea.io/gitea/models/user" 17 "code.gitea.io/gitea/tests" 18 ) 19 20 func assertUserDeleted(t *testing.T, userID int64) { 21 unittest.AssertNotExistsBean(t, &user_model.User{ID: userID}) 22 unittest.AssertNotExistsBean(t, &user_model.Follow{UserID: userID}) 23 unittest.AssertNotExistsBean(t, &user_model.Follow{FollowID: userID}) 24 unittest.AssertNotExistsBean(t, &repo_model.Repository{OwnerID: userID}) 25 unittest.AssertNotExistsBean(t, &access_model.Access{UserID: userID}) 26 unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: userID}) 27 unittest.AssertNotExistsBean(t, &issues_model.IssueUser{UID: userID}) 28 unittest.AssertNotExistsBean(t, &organization.TeamUser{UID: userID}) 29 unittest.AssertNotExistsBean(t, &repo_model.Star{UID: userID}) 30 } 31 32 func TestUserDeleteAccount(t *testing.T) { 33 defer tests.PrepareTestEnv(t)() 34 35 session := loginUser(t, "user8") 36 csrf := GetCSRF(t, session, "/user/settings/account") 37 urlStr := fmt.Sprintf("/user/settings/account/delete?password=%s", userPassword) 38 req := NewRequestWithValues(t, "POST", urlStr, map[string]string{ 39 "_csrf": csrf, 40 }) 41 session.MakeRequest(t, req, http.StatusSeeOther) 42 43 assertUserDeleted(t, 8) 44 unittest.CheckConsistencyFor(t, &user_model.User{}) 45 } 46 47 func TestUserDeleteAccountStillOwnRepos(t *testing.T) { 48 defer tests.PrepareTestEnv(t)() 49 50 session := loginUser(t, "user2") 51 csrf := GetCSRF(t, session, "/user/settings/account") 52 urlStr := fmt.Sprintf("/user/settings/account/delete?password=%s", userPassword) 53 req := NewRequestWithValues(t, "POST", urlStr, map[string]string{ 54 "_csrf": csrf, 55 }) 56 session.MakeRequest(t, req, http.StatusSeeOther) 57 58 // user should not have been deleted, because the user still owns repos 59 unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 60 }