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_test.go 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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/modules/markdown"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestRepo(t *testing.T) {
  11. repo := &Repository{Name: "testRepo"}
  12. repo.Owner = &User{Name: "testOwner"}
  13. repo.Units = nil
  14. assert.Nil(t, repo.ComposeMetas())
  15. externalTracker := RepoUnit{
  16. Type: UnitTypeExternalTracker,
  17. Config: &ExternalTrackerConfig{
  18. ExternalTrackerFormat: "https://someurl.com/{user}/{repo}/{issue}",
  19. },
  20. }
  21. testSuccess := func(expectedStyle string) {
  22. repo.Units = []*RepoUnit{&externalTracker}
  23. repo.ExternalMetas = nil
  24. metas := repo.ComposeMetas()
  25. assert.Equal(t, expectedStyle, metas["style"])
  26. assert.Equal(t, "testRepo", metas["repo"])
  27. assert.Equal(t, "testOwner", metas["user"])
  28. assert.Equal(t, "https://someurl.com/{user}/{repo}/{issue}", metas["format"])
  29. }
  30. testSuccess(markdown.IssueNameStyleNumeric)
  31. externalTracker.ExternalTrackerConfig().ExternalTrackerStyle = markdown.IssueNameStyleAlphanumeric
  32. testSuccess(markdown.IssueNameStyleAlphanumeric)
  33. externalTracker.ExternalTrackerConfig().ExternalTrackerStyle = markdown.IssueNameStyleNumeric
  34. testSuccess(markdown.IssueNameStyleNumeric)
  35. }
  36. func TestGetRepositoryCount(t *testing.T) {
  37. assert.NoError(t, PrepareTestDatabase())
  38. count, err1 := GetRepositoryCount(&User{ID: int64(10)})
  39. privateCount, err2 := GetPrivateRepositoryCount(&User{ID: int64(10)})
  40. publicCount, err3 := GetPublicRepositoryCount(&User{ID: int64(10)})
  41. assert.NoError(t, err1)
  42. assert.NoError(t, err2)
  43. assert.NoError(t, err3)
  44. assert.Equal(t, int64(3), count)
  45. assert.Equal(t, (privateCount + publicCount), count)
  46. }
  47. func TestGetPublicRepositoryCount(t *testing.T) {
  48. assert.NoError(t, PrepareTestDatabase())
  49. count, err := GetPublicRepositoryCount(&User{ID: int64(10)})
  50. assert.NoError(t, err)
  51. assert.Equal(t, int64(1), count)
  52. }
  53. func TestGetPrivateRepositoryCount(t *testing.T) {
  54. assert.NoError(t, PrepareTestDatabase())
  55. count, err := GetPrivateRepositoryCount(&User{ID: int64(10)})
  56. assert.NoError(t, err)
  57. assert.Equal(t, int64(2), count)
  58. }
  59. func TestUpdateRepositoryVisibilityChanged(t *testing.T) {
  60. assert.NoError(t, PrepareTestDatabase())
  61. // Get sample repo and change visibility
  62. repo, err := GetRepositoryByID(9)
  63. repo.IsPrivate = true
  64. // Update it
  65. err = UpdateRepository(repo, true)
  66. assert.NoError(t, err)
  67. // Check visibility of action has become private
  68. act := Action{}
  69. _, err = x.ID(3).Get(&act)
  70. assert.NoError(t, err)
  71. assert.Equal(t, true, act.IsPrivate)
  72. }
  73. func TestGetUserFork(t *testing.T) {
  74. assert.NoError(t, PrepareTestDatabase())
  75. // User13 has repo 11 forked from repo10
  76. repo, err := GetRepositoryByID(10)
  77. assert.NoError(t, err)
  78. assert.NotNil(t, repo)
  79. repo, err = repo.GetUserFork(13)
  80. assert.NoError(t, err)
  81. assert.NotNil(t, repo)
  82. repo, err = GetRepositoryByID(9)
  83. assert.NoError(t, err)
  84. assert.NotNil(t, repo)
  85. repo, err = repo.GetUserFork(13)
  86. assert.NoError(t, err)
  87. assert.Nil(t, repo)
  88. }
  89. func TestForkRepository(t *testing.T) {
  90. assert.NoError(t, PrepareTestDatabase())
  91. // User13 has repo 11 forked from repo10
  92. repo, err := GetRepositoryByID(10)
  93. assert.NoError(t, err)
  94. assert.NotNil(t, repo)
  95. repo, err = ForkRepository(&User{ID: 13}, repo, "test", "test")
  96. assert.Nil(t, repo)
  97. assert.Error(t, err)
  98. assert.True(t, IsErrRepoAlreadyExist(err))
  99. }