You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

repo_redirect_test.go 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package models
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestLookupRepoRedirect(t *testing.T) {
  11. assert.NoError(t, db.PrepareTestDatabase())
  12. repoID, err := LookupRepoRedirect(2, "oldrepo1")
  13. assert.NoError(t, err)
  14. assert.EqualValues(t, 1, repoID)
  15. _, err = LookupRepoRedirect(db.NonexistentID, "doesnotexist")
  16. assert.True(t, IsErrRepoRedirectNotExist(err))
  17. }
  18. func TestNewRepoRedirect(t *testing.T) {
  19. // redirect to a completely new name
  20. assert.NoError(t, db.PrepareTestDatabase())
  21. repo := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  22. assert.NoError(t, newRepoRedirect(db.GetEngine(db.DefaultContext), repo.OwnerID, repo.ID, repo.Name, "newreponame"))
  23. db.AssertExistsAndLoadBean(t, &RepoRedirect{
  24. OwnerID: repo.OwnerID,
  25. LowerName: repo.LowerName,
  26. RedirectRepoID: repo.ID,
  27. })
  28. db.AssertExistsAndLoadBean(t, &RepoRedirect{
  29. OwnerID: repo.OwnerID,
  30. LowerName: "oldrepo1",
  31. RedirectRepoID: repo.ID,
  32. })
  33. }
  34. func TestNewRepoRedirect2(t *testing.T) {
  35. // redirect to previously used name
  36. assert.NoError(t, db.PrepareTestDatabase())
  37. repo := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  38. assert.NoError(t, newRepoRedirect(db.GetEngine(db.DefaultContext), repo.OwnerID, repo.ID, repo.Name, "oldrepo1"))
  39. db.AssertExistsAndLoadBean(t, &RepoRedirect{
  40. OwnerID: repo.OwnerID,
  41. LowerName: repo.LowerName,
  42. RedirectRepoID: repo.ID,
  43. })
  44. db.AssertNotExistsBean(t, &RepoRedirect{
  45. OwnerID: repo.OwnerID,
  46. LowerName: "oldrepo1",
  47. RedirectRepoID: repo.ID,
  48. })
  49. }
  50. func TestNewRepoRedirect3(t *testing.T) {
  51. // redirect for a previously-unredirected repo
  52. assert.NoError(t, db.PrepareTestDatabase())
  53. repo := db.AssertExistsAndLoadBean(t, &Repository{ID: 2}).(*Repository)
  54. assert.NoError(t, newRepoRedirect(db.GetEngine(db.DefaultContext), repo.OwnerID, repo.ID, repo.Name, "newreponame"))
  55. db.AssertExistsAndLoadBean(t, &RepoRedirect{
  56. OwnerID: repo.OwnerID,
  57. LowerName: repo.LowerName,
  58. RedirectRepoID: repo.ID,
  59. })
  60. }