// Copyright 2022 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .

package serverconfigs_test

import (
	"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
	"github.com/iwind/TeaGo/assert"
	"testing"
)

func TestReferersConfig_MatchDomain(t *testing.T) {
	var a = assert.NewAssertion(t)

	{
		var config = &serverconfigs.ReferersConfig{
			IsOn:         true,
			AllowDomains: []string{},
			DenyDomains:  []string{"a.com", "b.com"},
		}
		a.IsTrue(config.MatchDomain("example.com", "c.com"))
		a.IsTrue(config.MatchDomain("example.com", "d.com"))
		a.IsFalse(config.MatchDomain("example.com", "a.com"))
	}

	{
		var config = &serverconfigs.ReferersConfig{
			IsOn:         true,
			AllowDomains: []string{"c.com", "e.com"},
			DenyDomains:  []string{"a.com", "b.com", "e.com"},
		}
		a.IsTrue(config.MatchDomain("example.com", "c.com"))
		a.IsFalse(config.MatchDomain("example.com", "d.com"))
		a.IsFalse(config.MatchDomain("example.com", "e.com"))
		a.IsFalse(config.MatchDomain("example.com", "a.com"))
	}

	{
		var config = &serverconfigs.ReferersConfig{
			IsOn:         true,
			AllowDomains: []string{"c.com", "e.com"},
			DenyDomains:  []string{},
		}
		a.IsTrue(config.MatchDomain("example.com", "c.com"))
		a.IsFalse(config.MatchDomain("example.com", "d.com"))
		a.IsTrue(config.MatchDomain("example.com", "e.com"))
		a.IsFalse(config.MatchDomain("example.com", "a.com"))
	}
}
