diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2019-04-25 00:16:14 +0800 |
---|---|---|
committer | techknowlogick <matti@mdranta.net> | 2019-04-24 12:16:14 -0400 |
commit | 1d8b521ae1fc22a114c1aa0ad5ef4d5d26011c7c (patch) | |
tree | e150972ca6ea4cd7e5085c3b184d3ababa2ce846 /integrations/api_org_test.go | |
parent | 08d8ea940394bd01f182edc515c832be50a05fc0 (diff) | |
download | gitea-1d8b521ae1fc22a114c1aa0ad5ef4d5d26011c7c.tar.gz gitea-1d8b521ae1fc22a114c1aa0ad5ef4d5d26011c7c.zip |
Add tests for Org API (#6731)
Diffstat (limited to 'integrations/api_org_test.go')
-rw-r--r-- | integrations/api_org_test.go | 100 |
1 files changed, 72 insertions, 28 deletions
diff --git a/integrations/api_org_test.go b/integrations/api_org_test.go index d30b746738..3dd4b759b1 100644 --- a/integrations/api_org_test.go +++ b/integrations/api_org_test.go @@ -6,43 +6,87 @@ package integrations import ( "net/http" + "net/url" "strings" "testing" "code.gitea.io/gitea/models" + "code.gitea.io/gitea/modules/setting" api "code.gitea.io/sdk/gitea" "github.com/stretchr/testify/assert" ) func TestAPIOrg(t *testing.T) { - prepareTestEnv(t) - - session := loginUser(t, "user1") - - token := getTokenForLoggedInUser(t, session) - var org = api.CreateOrgOption{ - UserName: "user1_org", - FullName: "User1's organization", - Description: "This organization created by user1", - Website: "https://try.gitea.io", - Location: "Shanghai", - } - req := NewRequestWithJSON(t, "POST", "/api/v1/orgs?token="+token, &org) - resp := session.MakeRequest(t, req, http.StatusCreated) - - var apiOrg api.Organization - DecodeJSON(t, resp, &apiOrg) - - assert.Equal(t, org.UserName, apiOrg.UserName) - assert.Equal(t, org.FullName, apiOrg.FullName) - assert.Equal(t, org.Description, apiOrg.Description) - assert.Equal(t, org.Website, apiOrg.Website) - assert.Equal(t, org.Location, apiOrg.Location) - - models.AssertExistsAndLoadBean(t, &models.User{ - Name: org.UserName, - LowerName: strings.ToLower(org.UserName), - FullName: org.FullName, + onGiteaRun(t, func(*testing.T, *url.URL) { + session := loginUser(t, "user1") + + token := getTokenForLoggedInUser(t, session) + var org = api.CreateOrgOption{ + UserName: "user1_org", + FullName: "User1's organization", + Description: "This organization created by user1", + Website: "https://try.gitea.io", + Location: "Shanghai", + } + req := NewRequestWithJSON(t, "POST", "/api/v1/orgs?token="+token, &org) + resp := session.MakeRequest(t, req, http.StatusCreated) + + var apiOrg api.Organization + DecodeJSON(t, resp, &apiOrg) + + assert.Equal(t, org.UserName, apiOrg.UserName) + assert.Equal(t, org.FullName, apiOrg.FullName) + assert.Equal(t, org.Description, apiOrg.Description) + assert.Equal(t, org.Website, apiOrg.Website) + assert.Equal(t, org.Location, apiOrg.Location) + + models.AssertExistsAndLoadBean(t, &models.User{ + Name: org.UserName, + LowerName: strings.ToLower(org.UserName), + 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) }) } |