diff options
author | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2017-08-30 22:29:57 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2017-09-08 20:18:43 +0300 |
commit | da9570f37b6c8ad71dc5636e33c31d49018c2821 (patch) | |
tree | db21860e362df4e9d210b599450c42c0c04e4355 /acceptance_test.go | |
parent | cdb4ab073c7c4c3a9ef53df4c6f13e6642878395 (diff) |
Add multiflag support for new flag implementation
In the parent of this commit, I've added a new flag implementation to
support config using env vars or a config file. This commits add support
for multiflag value setting, when using a csv like structure for those
values.
This was needed as for those only the first value was being read.
Diffstat (limited to 'acceptance_test.go')
-rw-r--r-- | acceptance_test.go | 54 |
1 files changed, 43 insertions, 11 deletions
diff --git a/acceptance_test.go b/acceptance_test.go index f71bd85f..d6fc1400 100644 --- a/acceptance_test.go +++ b/acceptance_test.go @@ -3,6 +3,7 @@ package main import ( "fmt" "io/ioutil" + "net" "net/http" "net/http/httptest" "os" @@ -307,21 +308,52 @@ func TestProxyRequest(t *testing.T) { func TestEnvironmentVariablesConfig(t *testing.T) { skipUnlessEnabled(t) - os.Setenv("REDIRECT_HTTP", "true") - defer func() { os.Unsetenv("REDIRECT_HTTP") }() + os.Setenv("LISTEN_HTTP", net.JoinHostPort(httpListener.Host, httpListener.Port)) + defer func() { os.Unsetenv("LISTEN_HTTP") }() - teardown := RunPagesProcess(t, *pagesBinary, listeners, "") + teardown := RunPagesProcess(t, *pagesBinary, []ListenSpec{}, "") defer teardown() - rsp, err := GetRedirectPage(t, httpListener, "group.gitlab-example.com", "project/") - assert.NoError(t, err) - defer rsp.Body.Close() - assert.Equal(t, http.StatusTemporaryRedirect, rsp.StatusCode) - assert.Equal(t, 1, len(rsp.Header["Location"])) - assert.Equal(t, "https://group.gitlab-example.com/project/", rsp.Header.Get("Location")) + rsp, err := GetPageFromListener(t, httpListener, "group.gitlab-example.com:", "project/") - rsp, err = GetPageFromListener(t, httpsListener, "group.gitlab-example.com", "project/") assert.NoError(t, err) - defer rsp.Body.Close() + rsp.Body.Close() assert.Equal(t, http.StatusOK, rsp.StatusCode) } + +func TestMixedConfigSources(t *testing.T) { + skipUnlessEnabled(t) + os.Setenv("LISTEN_HTTP", net.JoinHostPort(httpListener.Host, httpListener.Port)) + defer func() { os.Unsetenv("LISTEN_HTTP") }() + + teardown := RunPagesProcess(t, *pagesBinary, []ListenSpec{httpsListener}, "") + defer teardown() + + for _, listener := range []ListenSpec{httpListener, httpsListener} { + rsp, err := GetPageFromListener(t, listener, "group.gitlab-example.com", "project/") + + assert.NoError(t, err) + rsp.Body.Close() + assert.Equal(t, http.StatusOK, rsp.StatusCode) + } +} + +func TestMultiFlagEnvironmentVariables(t *testing.T) { + skipUnlessEnabled(t) + listenSpec := []ListenSpec{{"http", "127.0.0.1", "37001"}, {"http", "127.0.0.1", "37002"}} + envVarValue := fmt.Sprintf("%s,%s", net.JoinHostPort("127.0.0.1", "37001"), net.JoinHostPort("127.0.0.1", "37002")) + + os.Setenv("LISTEN_HTTP", envVarValue) + defer func() { os.Unsetenv("LISTEN_HTTP") }() + + teardown := RunPagesProcess(t, *pagesBinary, []ListenSpec{}, "") + defer teardown() + + for _, listener := range listenSpec { + rsp, err := GetPageFromListener(t, listener, "group.gitlab-example.com", "project/") + + assert.NoError(t, err) + rsp.Body.Close() + assert.Equal(t, http.StatusOK, rsp.StatusCode) + } +} |