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  }