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 5package integrations 6 7import ( 8 "net/http" 9 "net/url" 10 "strings" 11 "testing" 12 13 repo_model "code.gitea.io/gitea/models/repo" 14 "code.gitea.io/gitea/modules/test" 15 16 "github.com/stretchr/testify/assert" 17) 18 19func TestRepoActivity(t *testing.T) { 20 onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) { 21 22 session := loginUser(t, "user1") 23 24 // Create PRs (1 merged & 2 proposed) 25 testRepoFork(t, session, "user2", "repo1", "user1", "repo1") 26 testEditFile(t, session, "user1", "repo1", "master", "README.md", "Hello, World (Edited)\n") 27 resp := testPullCreate(t, session, "user1", "repo1", "master", "This is a pull title") 28 elem := strings.Split(test.RedirectURL(resp), "/") 29 assert.EqualValues(t, "pulls", elem[3]) 30 testPullMerge(t, session, elem[1], elem[2], elem[4], repo_model.MergeStyleMerge) 31 32 testEditFileToNewBranch(t, session, "user1", "repo1", "master", "feat/better_readme", "README.md", "Hello, World (Edited Again)\n") 33 testPullCreate(t, session, "user1", "repo1", "feat/better_readme", "This is a pull title") 34 35 testEditFileToNewBranch(t, session, "user1", "repo1", "master", "feat/much_better_readme", "README.md", "Hello, World (Edited More)\n") 36 testPullCreate(t, session, "user1", "repo1", "feat/much_better_readme", "This is a pull title") 37 38 // Create issues (3 new issues) 39 testNewIssue(t, session, "user2", "repo1", "Issue 1", "Description 1") 40 testNewIssue(t, session, "user2", "repo1", "Issue 2", "Description 2") 41 testNewIssue(t, session, "user2", "repo1", "Issue 3", "Description 3") 42 43 // Create releases (1 new release) 44 createNewRelease(t, session, "/user2/repo1", "v1.0.0", "v1.0.0", false, false) 45 46 // Open Activity page and check stats 47 req := NewRequest(t, "GET", "/user2/repo1/activity") 48 resp = session.MakeRequest(t, req, http.StatusOK) 49 htmlDoc := NewHTMLParser(t, resp.Body) 50 51 // Should be 1 published release 52 list := htmlDoc.doc.Find("#published-releases").Next().Find("p.desc") 53 assert.Len(t, list.Nodes, 1) 54 55 // Should be 1 merged pull request 56 list = htmlDoc.doc.Find("#merged-pull-requests").Next().Find("p.desc") 57 assert.Len(t, list.Nodes, 1) 58 59 // Should be 2 proposed pull requests 60 list = htmlDoc.doc.Find("#proposed-pull-requests").Next().Find("p.desc") 61 assert.Len(t, list.Nodes, 2) 62 63 // Should be 3 new issues 64 list = htmlDoc.doc.Find("#new-issues").Next().Find("p.desc") 65 assert.Len(t, list.Nodes, 3) 66 }) 67} 68