Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

api_org_avatar_test.go 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // Copyright 2023 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package integration
  4. import (
  5. "encoding/base64"
  6. "net/http"
  7. "os"
  8. "testing"
  9. auth_model "code.gitea.io/gitea/models/auth"
  10. api "code.gitea.io/gitea/modules/structs"
  11. "code.gitea.io/gitea/tests"
  12. "github.com/stretchr/testify/assert"
  13. )
  14. func TestAPIUpdateOrgAvatar(t *testing.T) {
  15. defer tests.PrepareTestEnv(t)()
  16. session := loginUser(t, "user1")
  17. token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteOrganization)
  18. // Test what happens if you use a valid image
  19. avatar, err := os.ReadFile("tests/integration/avatar.png")
  20. assert.NoError(t, err)
  21. if err != nil {
  22. assert.FailNow(t, "Unable to open avatar.png")
  23. }
  24. opts := api.UpdateUserAvatarOption{
  25. Image: base64.StdEncoding.EncodeToString(avatar),
  26. }
  27. req := NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar?token="+token, &opts)
  28. MakeRequest(t, req, http.StatusNoContent)
  29. // Test what happens if you don't have a valid Base64 string
  30. opts = api.UpdateUserAvatarOption{
  31. Image: "Invalid",
  32. }
  33. req = NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar?token="+token, &opts)
  34. MakeRequest(t, req, http.StatusBadRequest)
  35. // Test what happens if you use a file that is not an image
  36. text, err := os.ReadFile("tests/integration/README.md")
  37. assert.NoError(t, err)
  38. if err != nil {
  39. assert.FailNow(t, "Unable to open README.md")
  40. }
  41. opts = api.UpdateUserAvatarOption{
  42. Image: base64.StdEncoding.EncodeToString(text),
  43. }
  44. req = NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar?token="+token, &opts)
  45. MakeRequest(t, req, http.StatusInternalServerError)
  46. }
  47. func TestAPIDeleteOrgAvatar(t *testing.T) {
  48. defer tests.PrepareTestEnv(t)()
  49. session := loginUser(t, "user1")
  50. token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteOrganization)
  51. req := NewRequest(t, "DELETE", "/api/v1/orgs/org3/avatar?token="+token)
  52. MakeRequest(t, req, http.StatusNoContent)
  53. }