loading up the forgejo repo on tangled to test page performance
at forgejo 88 lines 2.7 kB view raw
1// Copyright 2019 The Gitea Authors. All rights reserved. 2// SPDX-License-Identifier: MIT 3 4package integration 5 6import ( 7 "net/http" 8 "strings" 9 "testing" 10 11 auth_model "forgejo.org/models/auth" 12 "forgejo.org/models/unittest" 13 user_model "forgejo.org/models/user" 14 api "forgejo.org/modules/structs" 15 "forgejo.org/tests" 16 17 "github.com/stretchr/testify/assert" 18) 19 20func TestAPIAdminOrgCreate(t *testing.T) { 21 defer tests.PrepareTestEnv(t)() 22 session := loginUser(t, "user1") 23 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteAdmin) 24 25 org := api.CreateOrgOption{ 26 UserName: "user2_org", 27 FullName: "User2's organization", 28 Description: "This organization created by admin for user2", 29 Website: "https://try.gitea.io", 30 Location: "Shanghai", 31 Visibility: "private", 32 } 33 req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org). 34 AddTokenAuth(token) 35 resp := MakeRequest(t, req, http.StatusCreated) 36 37 var apiOrg api.Organization 38 DecodeJSON(t, resp, &apiOrg) 39 40 assert.Equal(t, org.UserName, apiOrg.Name) 41 assert.Equal(t, org.FullName, apiOrg.FullName) 42 assert.Equal(t, org.Description, apiOrg.Description) 43 assert.Equal(t, org.Website, apiOrg.Website) 44 assert.Equal(t, org.Location, apiOrg.Location) 45 assert.Equal(t, org.Visibility, apiOrg.Visibility) 46 47 unittest.AssertExistsAndLoadBean(t, &user_model.User{ 48 Name: org.UserName, 49 LowerName: strings.ToLower(org.UserName), 50 FullName: org.FullName, 51 }) 52} 53 54func TestAPIAdminOrgCreateBadVisibility(t *testing.T) { 55 defer tests.PrepareTestEnv(t)() 56 session := loginUser(t, "user1") 57 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteAdmin) 58 59 org := api.CreateOrgOption{ 60 UserName: "user2_org", 61 FullName: "User2's organization", 62 Description: "This organization created by admin for user2", 63 Website: "https://try.gitea.io", 64 Location: "Shanghai", 65 Visibility: "notvalid", 66 } 67 req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org). 68 AddTokenAuth(token) 69 MakeRequest(t, req, http.StatusUnprocessableEntity) 70} 71 72func TestAPIAdminOrgCreateNotAdmin(t *testing.T) { 73 defer tests.PrepareTestEnv(t)() 74 nonAdminUsername := "user2" 75 session := loginUser(t, nonAdminUsername) 76 token := getTokenForLoggedInUser(t, session) 77 org := api.CreateOrgOption{ 78 UserName: "user2_org", 79 FullName: "User2's organization", 80 Description: "This organization created by admin for user2", 81 Website: "https://try.gitea.io", 82 Location: "Shanghai", 83 Visibility: "public", 84 } 85 req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org). 86 AddTokenAuth(token) 87 MakeRequest(t, req, http.StatusForbidden) 88}