blob: f275a45131cdabbd8e00b4341bd5d405433187e5 [file] [log] [blame]
package allowed
import (
"testing"
"go.skia.org/infra/go/testutils/unittest"
)
func TestAllowed(t *testing.T) {
unittest.SmallTest(t)
testCases := []struct {
allowed []string
value string
expected bool
message string
}{
{
allowed: []string{},
value: "test@example.org",
expected: false,
message: "empty",
},
{
allowed: []string{""},
value: "test@",
expected: false,
message: "empty domain",
},
{
allowed: []string{"test@example.org"},
value: "test@example.org",
expected: true,
message: "single email",
},
{
allowed: []string{"example.org"},
value: "test@example.org",
expected: true,
message: "single domain",
},
{
allowed: []string{"example.org"},
value: "test@google.com",
expected: false,
message: "single domain fail",
},
{
allowed: []string{"google.com", "chromium.org", "special@example.com"},
value: "test@google.com",
expected: true,
message: "multi domain",
},
{
allowed: []string{"google.com", "chromium.org", "special@example.com"},
value: "foo@chromium.org",
expected: true,
message: "multi domain 2",
},
{
allowed: []string{"google.com", "chromium.org", "special@example.com"},
value: "special@example.com",
expected: true,
message: "multi domain 3",
},
{
allowed: []string{"google.com", "chromium.org", "special@example.com"},
value: "missing@example.com",
expected: false,
message: "multi domain 4",
},
}
for _, tc := range testCases {
w := NewAllowedFromList(tc.allowed)
if got, want := w.Member(tc.value), tc.expected; got != want {
t.Errorf("Failed case Got %v Want %v: %s", got, want, tc.message)
}
}
}