123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- package models
-
- import (
- "path"
- "testing"
-
- "code.gitea.io/gitea/modules/setting"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestAction_GetRepoPath(t *testing.T) {
- assert.NoError(t, PrepareTestDatabase())
- repo := AssertExistsAndLoadBean(t, &Repository{}).(*Repository)
- owner := AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
- action := &Action{RepoID: repo.ID}
- assert.Equal(t, path.Join(owner.Name, repo.Name), action.GetRepoPath())
- }
-
- func TestAction_GetRepoLink(t *testing.T) {
- assert.NoError(t, PrepareTestDatabase())
- repo := AssertExistsAndLoadBean(t, &Repository{}).(*Repository)
- owner := AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
- action := &Action{RepoID: repo.ID}
- setting.AppSubURL = "/suburl/"
- expected := path.Join(setting.AppSubURL, owner.Name, repo.Name)
- assert.Equal(t, expected, action.GetRepoLink())
- }
-
- func TestPushCommits_ToAPIPayloadCommits(t *testing.T) {
- pushCommits := NewPushCommits()
- pushCommits.Commits = []*PushCommit{
- {
- Sha1: "69554a6",
- CommitterEmail: "user2@example.com",
- CommitterName: "User2",
- AuthorEmail: "user2@example.com",
- AuthorName: "User2",
- Message: "not signed commit",
- },
- {
- Sha1: "27566bd",
- CommitterEmail: "user2@example.com",
- CommitterName: "User2",
- AuthorEmail: "user2@example.com",
- AuthorName: "User2",
- Message: "good signed commit (with not yet validated email)",
- },
- {
- Sha1: "5099b81",
- CommitterEmail: "user2@example.com",
- CommitterName: "User2",
- AuthorEmail: "user2@example.com",
- AuthorName: "User2",
- Message: "good signed commit",
- },
- }
- pushCommits.Len = len(pushCommits.Commits)
-
- repo := AssertExistsAndLoadBean(t, &Repository{ID: 16}).(*Repository)
- payloadCommits, err := pushCommits.ToAPIPayloadCommits(repo.RepoPath(), "/user2/repo16")
- assert.NoError(t, err)
- assert.EqualValues(t, 3, len(payloadCommits))
-
- assert.Equal(t, "69554a6", payloadCommits[0].ID)
- assert.Equal(t, "not signed commit", payloadCommits[0].Message)
- assert.Equal(t, "/user2/repo16/commit/69554a6", payloadCommits[0].URL)
- assert.Equal(t, "User2", payloadCommits[0].Committer.Name)
- assert.Equal(t, "user2", payloadCommits[0].Committer.UserName)
- assert.Equal(t, "User2", payloadCommits[0].Author.Name)
- assert.Equal(t, "user2", payloadCommits[0].Author.UserName)
- assert.EqualValues(t, []string{}, payloadCommits[0].Added)
- assert.EqualValues(t, []string{}, payloadCommits[0].Removed)
- assert.EqualValues(t, []string{"readme.md"}, payloadCommits[0].Modified)
-
- assert.Equal(t, "27566bd", payloadCommits[1].ID)
- assert.Equal(t, "good signed commit (with not yet validated email)", payloadCommits[1].Message)
- assert.Equal(t, "/user2/repo16/commit/27566bd", payloadCommits[1].URL)
- assert.Equal(t, "User2", payloadCommits[1].Committer.Name)
- assert.Equal(t, "user2", payloadCommits[1].Committer.UserName)
- assert.Equal(t, "User2", payloadCommits[1].Author.Name)
- assert.Equal(t, "user2", payloadCommits[1].Author.UserName)
- assert.EqualValues(t, []string{}, payloadCommits[1].Added)
- assert.EqualValues(t, []string{}, payloadCommits[1].Removed)
- assert.EqualValues(t, []string{"readme.md"}, payloadCommits[1].Modified)
-
- assert.Equal(t, "5099b81", payloadCommits[2].ID)
- assert.Equal(t, "good signed commit", payloadCommits[2].Message)
- assert.Equal(t, "/user2/repo16/commit/5099b81", payloadCommits[2].URL)
- assert.Equal(t, "User2", payloadCommits[2].Committer.Name)
- assert.Equal(t, "user2", payloadCommits[2].Committer.UserName)
- assert.Equal(t, "User2", payloadCommits[2].Author.Name)
- assert.Equal(t, "user2", payloadCommits[2].Author.UserName)
- assert.EqualValues(t, []string{"readme.md"}, payloadCommits[2].Added)
- assert.EqualValues(t, []string{}, payloadCommits[2].Removed)
- assert.EqualValues(t, []string{}, payloadCommits[2].Modified)
- }
-
- func TestPushCommits_AvatarLink(t *testing.T) {
- pushCommits := NewPushCommits()
- pushCommits.Commits = []*PushCommit{
- {
- Sha1: "abcdef1",
- CommitterEmail: "user2@example.com",
- CommitterName: "User Two",
- AuthorEmail: "user4@example.com",
- AuthorName: "User Four",
- Message: "message1",
- },
- {
- Sha1: "abcdef2",
- CommitterEmail: "user2@example.com",
- CommitterName: "User Two",
- AuthorEmail: "user2@example.com",
- AuthorName: "User Two",
- Message: "message2",
- },
- }
- pushCommits.Len = len(pushCommits.Commits)
-
- assert.Equal(t,
- "/suburl/user/avatar/user2/-1",
- pushCommits.AvatarLink("user2@example.com"))
-
- assert.Equal(t,
- "https://secure.gravatar.com/avatar/19ade630b94e1e0535b3df7387434154?d=identicon",
- pushCommits.AvatarLink("nonexistent@example.com"))
- }
-
- func TestGetFeeds(t *testing.T) {
- // test with an individual user
- assert.NoError(t, PrepareTestDatabase())
- user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
-
- actions, err := GetFeeds(GetFeedsOptions{
- RequestedUser: user,
- RequestingUserID: user.ID,
- IncludePrivate: true,
- OnlyPerformedBy: false,
- IncludeDeleted: true,
- })
- assert.NoError(t, err)
- if assert.Len(t, actions, 1) {
- assert.EqualValues(t, 1, actions[0].ID)
- assert.EqualValues(t, user.ID, actions[0].UserID)
- }
-
- actions, err = GetFeeds(GetFeedsOptions{
- RequestedUser: user,
- RequestingUserID: user.ID,
- IncludePrivate: false,
- OnlyPerformedBy: false,
- })
- assert.NoError(t, err)
- assert.Len(t, actions, 0)
- }
-
- func TestGetFeeds2(t *testing.T) {
- // test with an organization user
- assert.NoError(t, PrepareTestDatabase())
- org := AssertExistsAndLoadBean(t, &User{ID: 3}).(*User)
- const userID = 2 // user2 is an owner of the organization
-
- actions, err := GetFeeds(GetFeedsOptions{
- RequestedUser: org,
- RequestingUserID: userID,
- IncludePrivate: true,
- OnlyPerformedBy: false,
- IncludeDeleted: true,
- })
- assert.NoError(t, err)
- assert.Len(t, actions, 1)
- if assert.Len(t, actions, 1) {
- assert.EqualValues(t, 2, actions[0].ID)
- assert.EqualValues(t, org.ID, actions[0].UserID)
- }
-
- actions, err = GetFeeds(GetFeedsOptions{
- RequestedUser: org,
- RequestingUserID: userID,
- IncludePrivate: false,
- OnlyPerformedBy: false,
- IncludeDeleted: true,
- })
- assert.NoError(t, err)
- assert.Len(t, actions, 0)
- }
|