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.

topic_test.go 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // Copyright 2018 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. "github.com/stretchr/testify/assert"
  8. )
  9. func TestAddTopic(t *testing.T) {
  10. totalNrOfTopics := 6
  11. repo1NrOfTopics := 3
  12. repo2NrOfTopics := 2
  13. assert.NoError(t, PrepareTestDatabase())
  14. topics, _, err := FindTopics(&FindTopicOptions{})
  15. assert.NoError(t, err)
  16. assert.Len(t, topics, totalNrOfTopics)
  17. topics, total, err := FindTopics(&FindTopicOptions{
  18. ListOptions: ListOptions{Page: 1, PageSize: 2},
  19. })
  20. assert.NoError(t, err)
  21. assert.Len(t, topics, 2)
  22. assert.EqualValues(t, 6, total)
  23. topics, _, err = FindTopics(&FindTopicOptions{
  24. RepoID: 1,
  25. })
  26. assert.NoError(t, err)
  27. assert.Len(t, topics, repo1NrOfTopics)
  28. assert.NoError(t, SaveTopics(2, "golang"))
  29. repo2NrOfTopics = 1
  30. topics, _, err = FindTopics(&FindTopicOptions{})
  31. assert.NoError(t, err)
  32. assert.Len(t, topics, totalNrOfTopics)
  33. topics, _, err = FindTopics(&FindTopicOptions{
  34. RepoID: 2,
  35. })
  36. assert.NoError(t, err)
  37. assert.Len(t, topics, repo2NrOfTopics)
  38. assert.NoError(t, SaveTopics(2, "golang", "gitea"))
  39. repo2NrOfTopics = 2
  40. totalNrOfTopics++
  41. topic, err := GetTopicByName("gitea")
  42. assert.NoError(t, err)
  43. assert.EqualValues(t, 1, topic.RepoCount)
  44. topics, _, err = FindTopics(&FindTopicOptions{})
  45. assert.NoError(t, err)
  46. assert.Len(t, topics, totalNrOfTopics)
  47. topics, _, err = FindTopics(&FindTopicOptions{
  48. RepoID: 2,
  49. })
  50. assert.NoError(t, err)
  51. assert.Len(t, topics, repo2NrOfTopics)
  52. }
  53. func TestTopicValidator(t *testing.T) {
  54. assert.True(t, ValidateTopic("12345"))
  55. assert.True(t, ValidateTopic("2-test"))
  56. assert.True(t, ValidateTopic("test-3"))
  57. assert.True(t, ValidateTopic("first"))
  58. assert.True(t, ValidateTopic("second-test-topic"))
  59. assert.True(t, ValidateTopic("third-project-topic-with-max-length"))
  60. assert.False(t, ValidateTopic("$fourth-test,topic"))
  61. assert.False(t, ValidateTopic("-fifth-test-topic"))
  62. assert.False(t, ValidateTopic("sixth-go-project-topic-with-excess-length"))
  63. }