Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

branches_test.go 5.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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. repo_model "code.gitea.io/gitea/models/repo"
  9. "code.gitea.io/gitea/models/unittest"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestAddDeletedBranch(t *testing.T) {
  13. assert.NoError(t, unittest.PrepareTestDatabase())
  14. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}).(*repo_model.Repository)
  15. firstBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  16. assert.Error(t, AddDeletedBranch(repo.ID, firstBranch.Name, firstBranch.Commit, firstBranch.DeletedByID))
  17. assert.NoError(t, AddDeletedBranch(repo.ID, "test", "5655464564554545466464656", int64(1)))
  18. }
  19. func TestGetDeletedBranches(t *testing.T) {
  20. assert.NoError(t, unittest.PrepareTestDatabase())
  21. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}).(*repo_model.Repository)
  22. branches, err := GetDeletedBranches(repo.ID)
  23. assert.NoError(t, err)
  24. assert.Len(t, branches, 2)
  25. }
  26. func TestGetDeletedBranch(t *testing.T) {
  27. assert.NoError(t, unittest.PrepareTestDatabase())
  28. firstBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  29. assert.NotNil(t, getDeletedBranch(t, firstBranch))
  30. }
  31. func TestDeletedBranchLoadUser(t *testing.T) {
  32. assert.NoError(t, unittest.PrepareTestDatabase())
  33. firstBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  34. secondBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 2}).(*DeletedBranch)
  35. branch := getDeletedBranch(t, firstBranch)
  36. assert.Nil(t, branch.DeletedBy)
  37. branch.LoadUser()
  38. assert.NotNil(t, branch.DeletedBy)
  39. assert.Equal(t, "user1", branch.DeletedBy.Name)
  40. branch = getDeletedBranch(t, secondBranch)
  41. assert.Nil(t, branch.DeletedBy)
  42. branch.LoadUser()
  43. assert.NotNil(t, branch.DeletedBy)
  44. assert.Equal(t, "Ghost", branch.DeletedBy.Name)
  45. }
  46. func TestRemoveDeletedBranch(t *testing.T) {
  47. assert.NoError(t, unittest.PrepareTestDatabase())
  48. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}).(*repo_model.Repository)
  49. firstBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  50. err := RemoveDeletedBranchByID(repo.ID, 1)
  51. assert.NoError(t, err)
  52. unittest.AssertNotExistsBean(t, firstBranch)
  53. unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 2})
  54. }
  55. func getDeletedBranch(t *testing.T, branch *DeletedBranch) *DeletedBranch {
  56. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}).(*repo_model.Repository)
  57. deletedBranch, err := GetDeletedBranchByID(repo.ID, branch.ID)
  58. assert.NoError(t, err)
  59. assert.Equal(t, branch.ID, deletedBranch.ID)
  60. assert.Equal(t, branch.Name, deletedBranch.Name)
  61. assert.Equal(t, branch.Commit, deletedBranch.Commit)
  62. assert.Equal(t, branch.DeletedByID, deletedBranch.DeletedByID)
  63. return deletedBranch
  64. }
  65. func TestFindRenamedBranch(t *testing.T) {
  66. assert.NoError(t, unittest.PrepareTestDatabase())
  67. branch, exist, err := FindRenamedBranch(1, "dev")
  68. assert.NoError(t, err)
  69. assert.Equal(t, true, exist)
  70. assert.Equal(t, "master", branch.To)
  71. _, exist, err = FindRenamedBranch(1, "unknow")
  72. assert.NoError(t, err)
  73. assert.Equal(t, false, exist)
  74. }
  75. func TestRenameBranch(t *testing.T) {
  76. assert.NoError(t, unittest.PrepareTestDatabase())
  77. repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}).(*repo_model.Repository)
  78. _isDefault := false
  79. ctx, committer, err := db.TxContext()
  80. defer committer.Close()
  81. assert.NoError(t, err)
  82. assert.NoError(t, UpdateProtectBranch(ctx, repo1, &ProtectedBranch{
  83. RepoID: repo1.ID,
  84. BranchName: "master",
  85. }, WhitelistOptions{}))
  86. assert.NoError(t, committer.Commit())
  87. assert.NoError(t, RenameBranch(repo1, "master", "main", func(isDefault bool) error {
  88. _isDefault = isDefault
  89. return nil
  90. }))
  91. assert.Equal(t, true, _isDefault)
  92. repo1 = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}).(*repo_model.Repository)
  93. assert.Equal(t, "main", repo1.DefaultBranch)
  94. pull := unittest.AssertExistsAndLoadBean(t, &PullRequest{ID: 1}).(*PullRequest) // merged
  95. assert.Equal(t, "master", pull.BaseBranch)
  96. pull = unittest.AssertExistsAndLoadBean(t, &PullRequest{ID: 2}).(*PullRequest) // open
  97. assert.Equal(t, "main", pull.BaseBranch)
  98. renamedBranch := unittest.AssertExistsAndLoadBean(t, &RenamedBranch{ID: 2}).(*RenamedBranch)
  99. assert.Equal(t, "master", renamedBranch.From)
  100. assert.Equal(t, "main", renamedBranch.To)
  101. assert.Equal(t, int64(1), renamedBranch.RepoID)
  102. unittest.AssertExistsAndLoadBean(t, &ProtectedBranch{
  103. RepoID: repo1.ID,
  104. BranchName: "main",
  105. })
  106. }
  107. func TestOnlyGetDeletedBranchOnCorrectRepo(t *testing.T) {
  108. assert.NoError(t, unittest.PrepareTestDatabase())
  109. // Get deletedBranch with ID of 1 on repo with ID 2.
  110. // This should return a nil branch as this deleted branch
  111. // is actually on repo with ID 1.
  112. repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2}).(*repo_model.Repository)
  113. deletedBranch, err := GetDeletedBranchByID(repo2.ID, 1)
  114. // Expect no error, and the returned branch is nil.
  115. assert.NoError(t, err)
  116. assert.Nil(t, deletedBranch)
  117. // Now get the deletedBranch with ID of 1 on repo with ID 1.
  118. // This should return the deletedBranch.
  119. repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}).(*repo_model.Repository)
  120. deletedBranch, err = GetDeletedBranchByID(repo1.ID, 1)
  121. // Expect no error, and the returned branch to be not nil.
  122. assert.NoError(t, err)
  123. assert.NotNil(t, deletedBranch)
  124. }