gitea源码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package integration
  4. import (
  5. "net/http"
  6. "net/url"
  7. "strings"
  8. "testing"
  9. "code.gitea.io/gitea/models/db"
  10. repo_model "code.gitea.io/gitea/models/repo"
  11. "code.gitea.io/gitea/models/unittest"
  12. "code.gitea.io/gitea/modules/test"
  13. "github.com/stretchr/testify/assert"
  14. )
  15. func TestRepoActivity(t *testing.T) {
  16. onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
  17. session := loginUser(t, "user1")
  18. // Create PRs (1 merged & 2 proposed)
  19. testRepoFork(t, session, "user2", "repo1", "user1", "repo1", "")
  20. testEditFile(t, session, "user1", "repo1", "master", "README.md", "Hello, World (Edited)\n")
  21. resp := testPullCreate(t, session, "user1", "repo1", false, "master", "master", "This is a pull title")
  22. elem := strings.Split(test.RedirectURL(resp), "/")
  23. assert.Equal(t, "pulls", elem[3])
  24. testPullMerge(t, session, elem[1], elem[2], elem[4], repo_model.MergeStyleMerge, false)
  25. testEditFileToNewBranch(t, session, "user1", "repo1", "master", "feat/better_readme", "README.md", "Hello, World (Edited Again)\n")
  26. testPullCreate(t, session, "user1", "repo1", false, "master", "feat/better_readme", "This is a pull title")
  27. testEditFileToNewBranch(t, session, "user1", "repo1", "master", "feat/much_better_readme", "README.md", "Hello, World (Edited More)\n")
  28. testPullCreate(t, session, "user1", "repo1", false, "master", "feat/much_better_readme", "This is a pull title")
  29. // Create issues (3 new issues)
  30. testNewIssue(t, session, "user2", "repo1", "Issue 1", "Description 1")
  31. testNewIssue(t, session, "user2", "repo1", "Issue 2", "Description 2")
  32. testNewIssue(t, session, "user2", "repo1", "Issue 3", "Description 3")
  33. // Create releases (1 new release)
  34. createNewRelease(t, session, "/user2/repo1", "v1.0.0", "v1.0.0", false, false)
  35. // Open Activity page and check stats
  36. req := NewRequest(t, "GET", "/user2/repo1/activity")
  37. resp = session.MakeRequest(t, req, http.StatusOK)
  38. htmlDoc := NewHTMLParser(t, resp.Body)
  39. // Should be 1 published release
  40. list := htmlDoc.doc.Find("#published-releases").Next().Find("p.desc")
  41. assert.Len(t, list.Nodes, 1)
  42. // Should be 1 merged pull request
  43. list = htmlDoc.doc.Find("#merged-pull-requests").Next().Find("p.desc")
  44. assert.Len(t, list.Nodes, 1)
  45. // Should be 2 proposed pull requests
  46. list = htmlDoc.doc.Find("#proposed-pull-requests").Next().Find("p.desc")
  47. assert.Len(t, list.Nodes, 2)
  48. // Should be 3 new issues
  49. list = htmlDoc.doc.Find("#new-issues").Next().Find("p.desc")
  50. assert.Len(t, list.Nodes, 3)
  51. // Non-existing default branch
  52. repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{Name: "repo1"})
  53. repo1.DefaultBranch = "no-such-branch"
  54. _, _ = db.GetEngine(t.Context()).Cols("default_branch").Update(repo1)
  55. req = NewRequest(t, "GET", "/user2/repo1/activity")
  56. req.Header.Add("Accept", "text/html")
  57. resp = session.MakeRequest(t, req, http.StatusNotFound)
  58. assert.Contains(t, resp.Body.String(), `Default branch "no-such-branch" does not exist.`)
  59. })
  60. }