Add tests for Org API (#6731)
This commit is contained in:
		
							parent
							
								
									08d8ea9403
								
							
						
					
					
						commit
						1d8b521ae1
					
				
					 1 changed files with 67 additions and 23 deletions
				
			
		|  | @ -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) | ||||
| 	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 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) | ||||
| 
 | ||||
| 	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) | ||||
| 
 | ||||
| 	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, | ||||
| 		}) | ||||
| 
 | ||||
| 	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) | ||||
| 	}) | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue