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_search_test.go 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 integrations
  5. import (
  6. "net/http"
  7. "testing"
  8. "time"
  9. "code.gitea.io/gitea/models"
  10. "github.com/PuerkitoBio/goquery"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func resultFilenames(t testing.TB, doc *HTMLDoc) []string {
  14. resultsSelection := doc.doc.Find(".repository.search")
  15. assert.EqualValues(t, 1, resultsSelection.Length(),
  16. "Invalid template (repo search template has changed?)")
  17. filenameSelections := resultsSelection.Find(".repo-search-result").Find(".header").Find("span.file")
  18. result := make([]string, filenameSelections.Length())
  19. filenameSelections.Each(func(i int, selection *goquery.Selection) {
  20. result[i] = selection.Text()
  21. })
  22. return result
  23. }
  24. func TestSearchRepo(t *testing.T) {
  25. prepareTestEnv(t)
  26. repo, err := models.GetRepositoryByOwnerAndName("user2", "repo1")
  27. assert.NoError(t, err)
  28. waiter := make(chan error, 1)
  29. models.UpdateRepoIndexer(repo, waiter)
  30. select {
  31. case err := <-waiter:
  32. assert.NoError(t, err)
  33. case <-time.After(1 * time.Minute):
  34. assert.Fail(t, "UpdateRepoIndexer took too long")
  35. }
  36. req := NewRequestf(t, "GET", "/user2/repo1/search?q=Description&page=1")
  37. resp := MakeRequest(t, req, http.StatusOK)
  38. filenames := resultFilenames(t, NewHTMLParser(t, resp.Body))
  39. assert.EqualValues(t, []string{"README.md"}, filenames)
  40. }