loading up the forgejo repo on tangled to test page performance
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}