aboutsummaryrefslogtreecommitdiff
path: root/environment_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'environment_test.go')
-rw-r--r--environment_test.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/environment_test.go b/environment_test.go
index e104ece..39b497e 100644
--- a/environment_test.go
+++ b/environment_test.go
@@ -4,9 +4,12 @@
package rescached
import (
+ "bytes"
+ "os"
"testing"
"github.com/shuLhan/share/lib/dns"
+ libhttp "github.com/shuLhan/share/lib/http"
"github.com/shuLhan/share/lib/ini"
"github.com/shuLhan/share/lib/test"
)
@@ -54,3 +57,74 @@ parent = https://kilabit.info/dns-query
test.Assert(t, "environment", c.exp, got)
}
}
+
+func TestLoadEnvironment(t *testing.T) {
+ var (
+ expEnv = &Environment{
+ fileConfig: "cmd/rescached/rescached.cfg.test",
+
+ WUIListen: "127.0.0.1:5381",
+ HostsBlocks: map[string]*hostsBlock{
+ "pgl.yoyo.org": &hostsBlock{
+ Name: "pgl.yoyo.org",
+ URL: `http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&startdate[day]=&startdate[month]=&startdate[year]=&mimetype=plaintext`,
+ },
+ "www.malwaredomainlist.com": &hostsBlock{
+ Name: "www.malwaredomainlist.com",
+ URL: `http://www.malwaredomainlist.com/hostslist/hosts.txt`,
+ },
+ "winhelp2002.mvps.org": &hostsBlock{
+ Name: "winhelp2002.mvps.org",
+ URL: `http://winhelp2002.mvps.org/hosts.txt`,
+ },
+ "someonewhocares.org": &hostsBlock{
+ Name: "someonewhocares.org",
+ URL: `http://someonewhocares.org/hosts/hosts`,
+ },
+ },
+ HttpdOptions: &libhttp.ServerOptions{
+ Address: defWuiAddress,
+ },
+ ServerOptions: dns.ServerOptions{
+ ListenAddress: "127.0.0.1:5350",
+ NameServers: []string{
+ "udp://10.8.0.1",
+ },
+ TLSAllowInsecure: true,
+ },
+
+ Debug: 2,
+ }
+ expBuffer []byte
+
+ gotEnv *Environment
+ gotBuffer bytes.Buffer
+ err error
+ )
+
+ expBuffer, err = os.ReadFile("testdata/rescached.cfg.test.out")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ gotEnv, err = LoadEnvironment("cmd/rescached/rescached.cfg.test")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ gotEnv.HttpdOptions.Memfs = nil
+
+ test.Assert(t, "LoadEnvironment", expEnv, gotEnv)
+
+ gotEnv.HostsBlocks["test"] = &hostsBlock{
+ Name: "test",
+ URL: "http://someurl",
+ }
+
+ err = gotEnv.Write(&gotBuffer)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ test.Assert(t, "Write", expBuffer, gotBuffer.Bytes())
+}