Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

api_admin_org_test.go 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. // Copyright 2019 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package integrations
  5. import (
  6. "net/http"
  7. "net/url"
  8. "strings"
  9. "testing"
  10. "code.gitea.io/gitea/models/unittest"
  11. user_model "code.gitea.io/gitea/models/user"
  12. api "code.gitea.io/gitea/modules/structs"
  13. "github.com/stretchr/testify/assert"
  14. )
  15. func TestAPIAdminOrgCreate(t *testing.T) {
  16. onGiteaRun(t, func(*testing.T, *url.URL) {
  17. session := loginUser(t, "user1")
  18. token := getTokenForLoggedInUser(t, session)
  19. var org = api.CreateOrgOption{
  20. UserName: "user2_org",
  21. FullName: "User2's organization",
  22. Description: "This organization created by admin for user2",
  23. Website: "https://try.gitea.io",
  24. Location: "Shanghai",
  25. Visibility: "private",
  26. }
  27. req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs?token="+token, &org)
  28. resp := session.MakeRequest(t, req, http.StatusCreated)
  29. var apiOrg api.Organization
  30. DecodeJSON(t, resp, &apiOrg)
  31. assert.Equal(t, org.UserName, apiOrg.UserName)
  32. assert.Equal(t, org.FullName, apiOrg.FullName)
  33. assert.Equal(t, org.Description, apiOrg.Description)
  34. assert.Equal(t, org.Website, apiOrg.Website)
  35. assert.Equal(t, org.Location, apiOrg.Location)
  36. assert.Equal(t, org.Visibility, apiOrg.Visibility)
  37. unittest.AssertExistsAndLoadBean(t, &user_model.User{
  38. Name: org.UserName,
  39. LowerName: strings.ToLower(org.UserName),
  40. FullName: org.FullName,
  41. })
  42. })
  43. }
  44. func TestAPIAdminOrgCreateBadVisibility(t *testing.T) {
  45. onGiteaRun(t, func(*testing.T, *url.URL) {
  46. session := loginUser(t, "user1")
  47. token := getTokenForLoggedInUser(t, session)
  48. var org = api.CreateOrgOption{
  49. UserName: "user2_org",
  50. FullName: "User2's organization",
  51. Description: "This organization created by admin for user2",
  52. Website: "https://try.gitea.io",
  53. Location: "Shanghai",
  54. Visibility: "notvalid",
  55. }
  56. req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs?token="+token, &org)
  57. session.MakeRequest(t, req, http.StatusUnprocessableEntity)
  58. })
  59. }
  60. func TestAPIAdminOrgCreateNotAdmin(t *testing.T) {
  61. defer prepareTestEnv(t)()
  62. nonAdminUsername := "user2"
  63. session := loginUser(t, nonAdminUsername)
  64. token := getTokenForLoggedInUser(t, session)
  65. var org = api.CreateOrgOption{
  66. UserName: "user2_org",
  67. FullName: "User2's organization",
  68. Description: "This organization created by admin for user2",
  69. Website: "https://try.gitea.io",
  70. Location: "Shanghai",
  71. Visibility: "public",
  72. }
  73. req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs?token="+token, &org)
  74. session.MakeRequest(t, req, http.StatusForbidden)
  75. }