You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

user_form_test.go 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. // Copyright 2018 The Gogs Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package forms
  4. import (
  5. "strconv"
  6. "testing"
  7. auth_model "code.gitea.io/gitea/models/auth"
  8. "code.gitea.io/gitea/modules/setting"
  9. "github.com/gobwas/glob"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestRegisterForm_IsDomainAllowed_Empty(t *testing.T) {
  13. oldService := setting.Service
  14. defer func() {
  15. setting.Service = oldService
  16. }()
  17. setting.Service.EmailDomainAllowList = nil
  18. form := RegisterForm{}
  19. assert.True(t, form.IsEmailDomainAllowed())
  20. }
  21. func TestRegisterForm_IsDomainAllowed_InvalidEmail(t *testing.T) {
  22. oldService := setting.Service
  23. defer func() {
  24. setting.Service = oldService
  25. }()
  26. setting.Service.EmailDomainAllowList = []glob.Glob{glob.MustCompile("gitea.io")}
  27. tt := []struct {
  28. email string
  29. }{
  30. {"invalid-email"},
  31. {"gitea.io"},
  32. }
  33. for _, v := range tt {
  34. form := RegisterForm{Email: v.email}
  35. assert.False(t, form.IsEmailDomainAllowed())
  36. }
  37. }
  38. func TestRegisterForm_IsDomainAllowed_AllowedEmail(t *testing.T) {
  39. oldService := setting.Service
  40. defer func() {
  41. setting.Service = oldService
  42. }()
  43. setting.Service.EmailDomainAllowList = []glob.Glob{glob.MustCompile("gitea.io"), glob.MustCompile("*.allow")}
  44. tt := []struct {
  45. email string
  46. valid bool
  47. }{
  48. {"security@gitea.io", true},
  49. {"security@gITea.io", true},
  50. {"invalid", false},
  51. {"seee@example.com", false},
  52. {"user@my.allow", true},
  53. {"user@my.allow1", false},
  54. }
  55. for _, v := range tt {
  56. form := RegisterForm{Email: v.email}
  57. assert.Equal(t, v.valid, form.IsEmailDomainAllowed())
  58. }
  59. }
  60. func TestRegisterForm_IsDomainAllowed_BlockedEmail(t *testing.T) {
  61. oldService := setting.Service
  62. defer func() {
  63. setting.Service = oldService
  64. }()
  65. setting.Service.EmailDomainAllowList = nil
  66. setting.Service.EmailDomainBlockList = []glob.Glob{glob.MustCompile("gitea.io"), glob.MustCompile("*.block")}
  67. tt := []struct {
  68. email string
  69. valid bool
  70. }{
  71. {"security@gitea.io", false},
  72. {"security@gitea.example", true},
  73. {"invalid", true},
  74. {"user@my.block", false},
  75. {"user@my.block1", true},
  76. }
  77. for _, v := range tt {
  78. form := RegisterForm{Email: v.email}
  79. assert.Equal(t, v.valid, form.IsEmailDomainAllowed())
  80. }
  81. }
  82. func TestNewAccessTokenForm_GetScope(t *testing.T) {
  83. tests := []struct {
  84. form NewAccessTokenForm
  85. scope auth_model.AccessTokenScope
  86. expectedErr error
  87. }{
  88. {
  89. form: NewAccessTokenForm{Name: "test", Scope: []string{"read:repository"}},
  90. scope: "read:repository",
  91. },
  92. {
  93. form: NewAccessTokenForm{Name: "test", Scope: []string{"read:repository", "write:user"}},
  94. scope: "read:repository,write:user",
  95. },
  96. }
  97. for i, test := range tests {
  98. t.Run(strconv.Itoa(i), func(t *testing.T) {
  99. scope, err := test.form.GetScope()
  100. assert.Equal(t, test.expectedErr, err)
  101. assert.Equal(t, test.scope, scope)
  102. })
  103. }
  104. }