2019-05-30 20:57:55 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package integrations
import (
"net/http"
"net/url"
"strings"
"testing"
2021-11-16 11:53:21 +03:00
"code.gitea.io/gitea/models/unittest"
2021-11-24 12:49:20 +03:00
user_model "code.gitea.io/gitea/models/user"
2019-05-30 20:57:55 +03:00
api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
func TestAPIAdminOrgCreate ( t * testing . T ) {
onGiteaRun ( t , func ( * testing . T , * url . URL ) {
session := loginUser ( t , "user1" )
token := getTokenForLoggedInUser ( t , session )
2022-01-20 20:46:10 +03:00
org := api . CreateOrgOption {
2019-05-30 20:57:55 +03:00
UserName : "user2_org" ,
FullName : "User2's organization" ,
Description : "This organization created by admin for user2" ,
Website : "https://try.gitea.io" ,
Location : "Shanghai" ,
Visibility : "private" ,
}
req := NewRequestWithJSON ( t , "POST" , "/api/v1/admin/users/user2/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 )
assert . Equal ( t , org . Visibility , apiOrg . Visibility )
2021-11-24 12:49:20 +03:00
unittest . AssertExistsAndLoadBean ( t , & user_model . User {
2019-05-30 20:57:55 +03:00
Name : org . UserName ,
LowerName : strings . ToLower ( org . UserName ) ,
FullName : org . FullName ,
} )
} )
}
func TestAPIAdminOrgCreateBadVisibility ( t * testing . T ) {
onGiteaRun ( t , func ( * testing . T , * url . URL ) {
session := loginUser ( t , "user1" )
token := getTokenForLoggedInUser ( t , session )
2022-01-20 20:46:10 +03:00
org := api . CreateOrgOption {
2019-05-30 20:57:55 +03:00
UserName : "user2_org" ,
FullName : "User2's organization" ,
Description : "This organization created by admin for user2" ,
Website : "https://try.gitea.io" ,
Location : "Shanghai" ,
Visibility : "notvalid" ,
}
req := NewRequestWithJSON ( t , "POST" , "/api/v1/admin/users/user2/orgs?token=" + token , & org )
session . MakeRequest ( t , req , http . StatusUnprocessableEntity )
} )
}
func TestAPIAdminOrgCreateNotAdmin ( t * testing . T ) {
2019-11-26 02:21:37 +03:00
defer prepareTestEnv ( t ) ( )
2019-05-30 20:57:55 +03:00
nonAdminUsername := "user2"
session := loginUser ( t , nonAdminUsername )
token := getTokenForLoggedInUser ( t , session )
2022-01-20 20:46:10 +03:00
org := api . CreateOrgOption {
2019-05-30 20:57:55 +03:00
UserName : "user2_org" ,
FullName : "User2's organization" ,
Description : "This organization created by admin for user2" ,
Website : "https://try.gitea.io" ,
Location : "Shanghai" ,
Visibility : "public" ,
}
req := NewRequestWithJSON ( t , "POST" , "/api/v1/admin/users/user2/orgs?token=" + token , & org )
session . MakeRequest ( t , req , http . StatusForbidden )
}