Files
gitea-pages/tests/cname_test.go

70 lines
1.3 KiB
Go

package tests
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"gopkg.d7z.net/gitea-pages/pkg/core"
"gopkg.d7z.net/middleware/kv"
)
func TestCNAMERegex(t *testing.T) {
db, _ := kv.NewMemory("")
meta := core.NewServerMeta(nil, nil, "example.com", nil, db, 0, 0, 0)
tests := []struct {
domain string
valid bool
}{
{"a.com", true},
{"sub.a.com", true},
{"a.b.c.d.com", true},
{"invalid_name.com", false},
{"-start.com", false},
{"end-.com", false},
{"a.com-too-long-tld-xxxxxxxxxxxxxxxxxxx", false},
}
for _, tt := range tests {
_, ok := meta.AliasCheck(tt.domain)
assert.Equal(t, tt.valid, ok, "Testing domain: %s", tt.domain)
}
}
func TestAliasBindCAS(t *testing.T) {
db, _ := kv.NewMemory("")
alias := core.NewDomainAlias(db)
ctx := context.Background()
err := alias.Bind(ctx, []string{"a.com", "b.com"}, "owner1", "repo1")
assert.NoError(t, err)
a, err := alias.Query(ctx, "a.com")
assert.NoError(t, err)
if assert.NotNil(t, a) {
assert.Equal(t, "owner1", a.Owner)
}
err = alias.Bind(ctx, []string{"b.com", "c.com"}, "owner1", "repo1")
assert.NoError(t, err)
_, err = alias.Query(ctx, "a.com")
assert.Error(t, err)
a, err = alias.Query(ctx, "c.com")
assert.NoError(t, err)
if assert.NotNil(t, a) {
assert.Equal(t, "owner1", a.Owner)
}
}