code.gitea.io/gitea@v1.22.3/models/repo/redirect_test.go (about) 1 // Copyright 2017 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package repo_test 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/models/db" 10 repo_model "code.gitea.io/gitea/models/repo" 11 "code.gitea.io/gitea/models/unittest" 12 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestLookupRedirect(t *testing.T) { 17 assert.NoError(t, unittest.PrepareTestDatabase()) 18 19 repoID, err := repo_model.LookupRedirect(db.DefaultContext, 2, "oldrepo1") 20 assert.NoError(t, err) 21 assert.EqualValues(t, 1, repoID) 22 23 _, err = repo_model.LookupRedirect(db.DefaultContext, unittest.NonexistentID, "doesnotexist") 24 assert.True(t, repo_model.IsErrRedirectNotExist(err)) 25 } 26 27 func TestNewRedirect(t *testing.T) { 28 // redirect to a completely new name 29 assert.NoError(t, unittest.PrepareTestDatabase()) 30 31 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 32 assert.NoError(t, repo_model.NewRedirect(db.DefaultContext, repo.OwnerID, repo.ID, repo.Name, "newreponame")) 33 34 unittest.AssertExistsAndLoadBean(t, &repo_model.Redirect{ 35 OwnerID: repo.OwnerID, 36 LowerName: repo.LowerName, 37 RedirectRepoID: repo.ID, 38 }) 39 unittest.AssertExistsAndLoadBean(t, &repo_model.Redirect{ 40 OwnerID: repo.OwnerID, 41 LowerName: "oldrepo1", 42 RedirectRepoID: repo.ID, 43 }) 44 } 45 46 func TestNewRedirect2(t *testing.T) { 47 // redirect to previously used name 48 assert.NoError(t, unittest.PrepareTestDatabase()) 49 50 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 51 assert.NoError(t, repo_model.NewRedirect(db.DefaultContext, repo.OwnerID, repo.ID, repo.Name, "oldrepo1")) 52 53 unittest.AssertExistsAndLoadBean(t, &repo_model.Redirect{ 54 OwnerID: repo.OwnerID, 55 LowerName: repo.LowerName, 56 RedirectRepoID: repo.ID, 57 }) 58 unittest.AssertNotExistsBean(t, &repo_model.Redirect{ 59 OwnerID: repo.OwnerID, 60 LowerName: "oldrepo1", 61 RedirectRepoID: repo.ID, 62 }) 63 } 64 65 func TestNewRedirect3(t *testing.T) { 66 // redirect for a previously-unredirected repo 67 assert.NoError(t, unittest.PrepareTestDatabase()) 68 69 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2}) 70 assert.NoError(t, repo_model.NewRedirect(db.DefaultContext, repo.OwnerID, repo.ID, repo.Name, "newreponame")) 71 72 unittest.AssertExistsAndLoadBean(t, &repo_model.Redirect{ 73 OwnerID: repo.OwnerID, 74 LowerName: repo.LowerName, 75 RedirectRepoID: repo.ID, 76 }) 77 }