mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-29 12:16:16 +08:00
Added test for environment replacement.
Added test for the fix of issue #304
This commit is contained in:
parent
8774c90709
commit
e166ebf68b
|
@ -1,6 +1,7 @@
|
|||
package parse
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
@ -364,6 +365,65 @@ func TestParseAll(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestEnvironmentReplacement(t *testing.T) {
|
||||
setupParseTests()
|
||||
|
||||
os.Setenv("MY_PORT", "8080")
|
||||
os.Setenv("MY_ADDRESS", "servername.com")
|
||||
os.Setenv("MY_ADDRESS2", "127.0.0.1")
|
||||
|
||||
for i, test := range []struct {
|
||||
input string
|
||||
addresses [][]address // addresses per server block, in order
|
||||
}{
|
||||
{`{$MY_ADDRESS}`, [][]address{
|
||||
{{"servername.com", ""}},
|
||||
}},
|
||||
|
||||
{`{$MY_ADDRESS}:{$MY_PORT}`, [][]address{
|
||||
[]address{{"servername.com", "8080"}},
|
||||
}},
|
||||
|
||||
{`{$MY_ADDRESS2}:1234 {
|
||||
}
|
||||
localhost:{$MY_PORT} {
|
||||
}`, [][]address{
|
||||
[]address{{"127.0.0.1", "1234"}},
|
||||
[]address{{"localhost", "8080"}},
|
||||
}},
|
||||
} {
|
||||
p := testParser(test.input)
|
||||
blocks, err := p.parseAll()
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test %d: Expected no error, but got: %v", i, err)
|
||||
}
|
||||
|
||||
if len(blocks) != len(test.addresses) {
|
||||
t.Errorf("Test %d: Expected %d server blocks, got %d",
|
||||
i, len(test.addresses), len(blocks))
|
||||
continue
|
||||
}
|
||||
for j, block := range blocks {
|
||||
if len(block.Addresses) != len(test.addresses[j]) {
|
||||
t.Errorf("Test %d: Expected %d addresses in block %d, got %d",
|
||||
i, len(test.addresses[j]), j, len(block.Addresses))
|
||||
continue
|
||||
}
|
||||
for k, addr := range block.Addresses {
|
||||
if addr.Host != test.addresses[j][k].Host {
|
||||
t.Errorf("Test %d, block %d, address %d: Expected host to be '%s', but was '%s'",
|
||||
i, j, k, test.addresses[j][k].Host, addr.Host)
|
||||
}
|
||||
if addr.Port != test.addresses[j][k].Port {
|
||||
t.Errorf("Test %d, block %d, address %d: Expected port to be '%s', but was '%s'",
|
||||
i, j, k, test.addresses[j][k].Port, addr.Port)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func setupParseTests() {
|
||||
// Set up some bogus directives for testing
|
||||
ValidDirectives = map[string]struct{}{
|
||||
|
|
Loading…
Reference in New Issue
Block a user