1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-09-30 19:22:08 +00:00
forgejo/tests/integration/email_block_allowlist_test.go
2025-08-30 09:45:19 +02:00

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)
}