Add tests for Org API (#6731)

tokarchuk/v1.17
Lunny Xiao 6 years ago committed by techknowlogick
parent 08d8ea9403
commit 1d8b521ae1
  1. 100
      integrations/api_org_test.go

@ -6,43 +6,87 @@ package integrations
import ( import (
"net/http" "net/http"
"net/url"
"strings" "strings"
"testing" "testing"
"code.gitea.io/gitea/models" "code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/sdk/gitea" api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func TestAPIOrg(t *testing.T) { func TestAPIOrg(t *testing.T) {
prepareTestEnv(t) onGiteaRun(t, func(*testing.T, *url.URL) {
session := loginUser(t, "user1")
session := loginUser(t, "user1")
token := getTokenForLoggedInUser(t, session)
token := getTokenForLoggedInUser(t, session) var org = api.CreateOrgOption{
var org = api.CreateOrgOption{ UserName: "user1_org",
UserName: "user1_org", FullName: "User1's organization",
FullName: "User1's organization", Description: "This organization created by user1",
Description: "This organization created by user1", Website: "https://try.gitea.io",
Website: "https://try.gitea.io", Location: "Shanghai",
Location: "Shanghai", }
} req := NewRequestWithJSON(t, "POST", "/api/v1/orgs?token="+token, &org)
req := NewRequestWithJSON(t, "POST", "/api/v1/orgs?token="+token, &org) resp := session.MakeRequest(t, req, http.StatusCreated)
resp := session.MakeRequest(t, req, http.StatusCreated)
var apiOrg api.Organization
var apiOrg api.Organization DecodeJSON(t, resp, &apiOrg)
DecodeJSON(t, resp, &apiOrg)
assert.Equal(t, org.UserName, apiOrg.UserName)
assert.Equal(t, org.UserName, apiOrg.UserName) assert.Equal(t, org.FullName, apiOrg.FullName)
assert.Equal(t, org.FullName, apiOrg.FullName) assert.Equal(t, org.Description, apiOrg.Description)
assert.Equal(t, org.Description, apiOrg.Description) assert.Equal(t, org.Website, apiOrg.Website)
assert.Equal(t, org.Website, apiOrg.Website) assert.Equal(t, org.Location, apiOrg.Location)
assert.Equal(t, org.Location, apiOrg.Location)
models.AssertExistsAndLoadBean(t, &models.User{
models.AssertExistsAndLoadBean(t, &models.User{ Name: org.UserName,
Name: org.UserName, LowerName: strings.ToLower(org.UserName),
LowerName: strings.ToLower(org.UserName), FullName: org.FullName,
FullName: org.FullName, })
req = NewRequestf(t, "GET", "/api/v1/orgs/%s", org.UserName)
resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiOrg)
assert.EqualValues(t, org.UserName, apiOrg.UserName)
req = NewRequestf(t, "GET", "/api/v1/orgs/%s/repos", org.UserName)
resp = session.MakeRequest(t, req, http.StatusOK)
var repos []*api.Repository
DecodeJSON(t, resp, &repos)
for _, repo := range repos {
assert.False(t, repo.Private)
}
req = NewRequestf(t, "GET", "/api/v1/orgs/%s/members", org.UserName)
resp = session.MakeRequest(t, req, http.StatusOK)
// user1 on this org is public
var users []*api.User
DecodeJSON(t, resp, &users)
assert.EqualValues(t, 1, len(users))
assert.EqualValues(t, "user1", users[0].UserName)
})
}
func TestAPIOrgDeny(t *testing.T) {
onGiteaRun(t, func(*testing.T, *url.URL) {
setting.Service.RequireSignInView = true
defer func() {
setting.Service.RequireSignInView = false
}()
var orgName = "user1_org"
req := NewRequestf(t, "GET", "/api/v1/orgs/%s", orgName)
MakeRequest(t, req, http.StatusNotFound)
req = NewRequestf(t, "GET", "/api/v1/orgs/%s/repos", orgName)
MakeRequest(t, req, http.StatusNotFound)
req = NewRequestf(t, "GET", "/api/v1/orgs/%s/members", orgName)
MakeRequest(t, req, http.StatusNotFound)
}) })
} }

Loading…
Cancel
Save