diff options
Diffstat (limited to 'environment_test.go')
| -rw-r--r-- | environment_test.go | 74 |
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()) +} |
