Add tests for Org API (#6731)
This commit is contained in:
		
							parent
							
								
									08d8ea9403
								
							
						
					
					
						commit
						1d8b521ae1
					
				|  | @ -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) | ||||||
|  | 		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) | ||||||
| 
 | 
 | ||||||
| 	token := getTokenForLoggedInUser(t, session) | 		var apiOrg api.Organization | ||||||
| 	var org = api.CreateOrgOption{ | 		DecodeJSON(t, resp, &apiOrg) | ||||||
| 		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 | 		assert.Equal(t, org.UserName, apiOrg.UserName) | ||||||
| 	DecodeJSON(t, resp, &apiOrg) | 		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) | ||||||
| 
 | 
 | ||||||
| 	assert.Equal(t, org.UserName, apiOrg.UserName) | 		models.AssertExistsAndLoadBean(t, &models.User{ | ||||||
| 	assert.Equal(t, org.FullName, apiOrg.FullName) | 			Name:      org.UserName, | ||||||
| 	assert.Equal(t, org.Description, apiOrg.Description) | 			LowerName: strings.ToLower(org.UserName), | ||||||
| 	assert.Equal(t, org.Website, apiOrg.Website) | 			FullName:  org.FullName, | ||||||
| 	assert.Equal(t, org.Location, apiOrg.Location) | 		}) | ||||||
| 
 | 
 | ||||||
| 	models.AssertExistsAndLoadBean(t, &models.User{ | 		req = NewRequestf(t, "GET", "/api/v1/orgs/%s", org.UserName) | ||||||
| 		Name:      org.UserName, | 		resp = session.MakeRequest(t, req, http.StatusOK) | ||||||
| 		LowerName: strings.ToLower(org.UserName), | 		DecodeJSON(t, resp, &apiOrg) | ||||||
| 		FullName:  org.FullName, | 		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…
	
		Reference in New Issue