mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-09-30 19:22:08 +00:00
66 lines
1.6 KiB
Go
66 lines
1.6 KiB
Go
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package integration
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"forgejo.org/modules/setting"
|
|
"forgejo.org/modules/test"
|
|
"forgejo.org/modules/validation"
|
|
"forgejo.org/tests"
|
|
|
|
"github.com/gobwas/glob"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestEmailBlocklist(t *testing.T) {
|
|
defer test.MockVariableValue(
|
|
&setting.Service.EmailDomainBlockList,
|
|
[]glob.Glob{glob.MustCompile("evil")},
|
|
)()
|
|
|
|
defer tests.PrepareTestEnv(t)()
|
|
|
|
emailValid, ok := validation.IsEmailDomainAllowed("🐸@pond")
|
|
assert.True(t, emailValid)
|
|
assert.True(t, ok)
|
|
|
|
emailValid, ok = validation.IsEmailDomainAllowed("🐸@pond (what-is-this@evil)")
|
|
assert.True(t, emailValid)
|
|
assert.True(t, ok)
|
|
|
|
emailValid, ok = validation.IsEmailDomainAllowed("jomo@evil")
|
|
assert.True(t, emailValid)
|
|
assert.False(t, ok)
|
|
|
|
emailValid, ok = validation.IsEmailDomainAllowed("jomo@evil (but-does-it@break)")
|
|
assert.True(t, emailValid)
|
|
assert.False(t, ok)
|
|
}
|
|
|
|
func TestEmailAllowlist(t *testing.T) {
|
|
defer test.MockVariableValue(
|
|
&setting.Service.EmailDomainAllowList,
|
|
[]glob.Glob{glob.MustCompile("pond")},
|
|
)()
|
|
|
|
defer tests.PrepareTestEnv(t)()
|
|
|
|
emailValid, ok := validation.IsEmailDomainAllowed("🐸@pond")
|
|
assert.True(t, emailValid)
|
|
assert.True(t, ok)
|
|
|
|
emailValid, ok = validation.IsEmailDomainAllowed("🐸@pond (what-is-this@evil)")
|
|
assert.True(t, emailValid)
|
|
assert.True(t, ok)
|
|
|
|
emailValid, ok = validation.IsEmailDomainAllowed("jomo@evil")
|
|
assert.True(t, emailValid)
|
|
assert.False(t, ok)
|
|
|
|
emailValid, ok = validation.IsEmailDomainAllowed("jomo@evil (but-does-it@break)")
|
|
assert.True(t, emailValid)
|
|
assert.False(t, ok)
|
|
}
|