gitea源码

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