Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/domain/domain_test.go')
-rw-r--r--internal/domain/domain_test.go148
1 files changed, 93 insertions, 55 deletions
diff --git a/internal/domain/domain_test.go b/internal/domain/domain_test.go
index 32bf2e3d..b65396a7 100644
--- a/internal/domain/domain_test.go
+++ b/internal/domain/domain_test.go
@@ -11,7 +11,6 @@ import (
"testing"
"time"
- log "github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -27,16 +26,19 @@ func serveFileOrNotFound(domain *D) http.HandlerFunc {
}
func TestGroupServeHTTP(t *testing.T) {
- setUpTests()
+ cleanup := setUpTests(t)
+ defer cleanup()
testGroup := &D{
- group: "group",
projectName: "",
- projects: map[string]*project{
- "group.test.io": &project{},
- "group.gitlab-example.com": &project{},
- "project": &project{},
- "project2": &project{},
+ group: group{
+ name: "group",
+ projects: map[string]*project{
+ "group.test.io": &project{},
+ "group.gitlab-example.com": &project{},
+ "project": &project{},
+ "project2": &project{},
+ },
},
}
@@ -64,10 +66,11 @@ func TestGroupServeHTTP(t *testing.T) {
}
func TestDomainServeHTTP(t *testing.T) {
- setUpTests()
+ cleanup := setUpTests(t)
+ defer cleanup()
testDomain := &D{
- group: "group",
+ group: group{name: "group"},
projectName: "project2",
config: &domainConfig{
Domain: "test.domain.com",
@@ -95,7 +98,7 @@ func TestIsHTTPSOnly(t *testing.T) {
{
name: "Custom domain with HTTPS-only enabled",
domain: &D{
- group: "group",
+ group: group{name: "group"},
projectName: "project",
config: &domainConfig{HTTPSOnly: true},
},
@@ -105,7 +108,7 @@ func TestIsHTTPSOnly(t *testing.T) {
{
name: "Custom domain with HTTPS-only disabled",
domain: &D{
- group: "group",
+ group: group{name: "group"},
projectName: "project",
config: &domainConfig{HTTPSOnly: false},
},
@@ -115,9 +118,11 @@ func TestIsHTTPSOnly(t *testing.T) {
{
name: "Default group domain with HTTPS-only enabled",
domain: &D{
- group: "group",
projectName: "project",
- projects: projects{"test-domain": &project{HTTPSOnly: true}},
+ group: group{
+ name: "group",
+ projects: projects{"test-domain": &project{HTTPSOnly: true}},
+ },
},
url: "http://test-domain",
expected: true,
@@ -125,9 +130,11 @@ func TestIsHTTPSOnly(t *testing.T) {
{
name: "Default group domain with HTTPS-only disabled",
domain: &D{
- group: "group",
projectName: "project",
- projects: projects{"test-domain": &project{HTTPSOnly: false}},
+ group: group{
+ name: "group",
+ projects: projects{"test-domain": &project{HTTPSOnly: false}},
+ },
},
url: "http://test-domain",
expected: false,
@@ -135,9 +142,11 @@ func TestIsHTTPSOnly(t *testing.T) {
{
name: "Case-insensitive default group domain with HTTPS-only enabled",
domain: &D{
- group: "group",
projectName: "project",
- projects: projects{"test-domain": &project{HTTPSOnly: true}},
+ group: group{
+ name: "group",
+ projects: projects{"test-domain": &project{HTTPSOnly: true}},
+ },
},
url: "http://Test-domain",
expected: true,
@@ -145,9 +154,11 @@ func TestIsHTTPSOnly(t *testing.T) {
{
name: "Other group domain with HTTPS-only enabled",
domain: &D{
- group: "group",
projectName: "project",
- projects: projects{"project": &project{HTTPSOnly: true}},
+ group: group{
+ name: "group",
+ projects: projects{"project": &project{HTTPSOnly: true}},
+ },
},
url: "http://test-domain/project",
expected: true,
@@ -155,9 +166,11 @@ func TestIsHTTPSOnly(t *testing.T) {
{
name: "Other group domain with HTTPS-only disabled",
domain: &D{
- group: "group",
projectName: "project",
- projects: projects{"project": &project{HTTPSOnly: false}},
+ group: group{
+ name: "group",
+ projects: projects{"project": &project{HTTPSOnly: false}},
+ },
},
url: "http://test-domain/project",
expected: false,
@@ -165,7 +178,7 @@ func TestIsHTTPSOnly(t *testing.T) {
{
name: "Unknown project",
domain: &D{
- group: "group",
+ group: group{name: "group"},
projectName: "project",
},
url: "http://test-domain/project",
@@ -209,16 +222,19 @@ func testHTTPGzip(t *testing.T, handler http.HandlerFunc, mode, url string, valu
}
func TestGroupServeHTTPGzip(t *testing.T) {
- setUpTests()
+ cleanup := setUpTests(t)
+ defer cleanup()
testGroup := &D{
- group: "group",
projectName: "",
- projects: map[string]*project{
- "group.test.io": &project{},
- "group.gitlab-example.com": &project{},
- "project": &project{},
- "project2": &project{},
+ group: group{
+ name: "group",
+ projects: map[string]*project{
+ "group.test.io": &project{},
+ "group.gitlab-example.com": &project{},
+ "project": &project{},
+ "project2": &project{},
+ },
},
}
@@ -285,17 +301,20 @@ func testHTTP404(t *testing.T, handler http.HandlerFunc, mode, url string, value
}
func TestGroup404ServeHTTP(t *testing.T) {
- setUpTests()
+ cleanup := setUpTests(t)
+ defer cleanup()
testGroup := &D{
- group: "group.404",
projectName: "",
- projects: map[string]*project{
- "domain.404": &project{},
- "group.404.test.io": &project{},
- "project.404": &project{},
- "project.404.symlink": &project{},
- "project.no.404": &project{},
+ group: group{
+ name: "group.404",
+ projects: map[string]*project{
+ "domain.404": &project{},
+ "group.404.test.io": &project{},
+ "project.404": &project{},
+ "project.404.symlink": &project{},
+ "project.no.404": &project{},
+ },
},
}
@@ -311,10 +330,11 @@ func TestGroup404ServeHTTP(t *testing.T) {
}
func TestDomain404ServeHTTP(t *testing.T) {
- setUpTests()
+ cleanup := setUpTests(t)
+ defer cleanup()
testDomain := &D{
- group: "group.404",
+ group: group{name: "group.404"},
projectName: "domain.404",
config: &domainConfig{
Domain: "domain.404.com",
@@ -326,10 +346,11 @@ func TestDomain404ServeHTTP(t *testing.T) {
}
func TestPredefined404ServeHTTP(t *testing.T) {
- setUpTests()
+ cleanup := setUpTests(t)
+ defer cleanup()
testDomain := &D{
- group: "group",
+ group: group{name: "group"},
}
testHTTP404(t, serveFileOrNotFound(testDomain), "GET", "http://group.test.io/not-existing-file", nil, "The page you're looking for could not be found")
@@ -337,7 +358,7 @@ func TestPredefined404ServeHTTP(t *testing.T) {
func TestGroupCertificate(t *testing.T) {
testGroup := &D{
- group: "group",
+ group: group{name: "group"},
projectName: "",
}
@@ -348,7 +369,7 @@ func TestGroupCertificate(t *testing.T) {
func TestDomainNoCertificate(t *testing.T) {
testDomain := &D{
- group: "group",
+ group: group{name: "group"},
projectName: "project2",
config: &domainConfig{
Domain: "test.domain.com",
@@ -366,7 +387,7 @@ func TestDomainNoCertificate(t *testing.T) {
func TestDomainCertificate(t *testing.T) {
testDomain := &D{
- group: "group",
+ group: group{name: "group"},
projectName: "project2",
config: &domainConfig{
Domain: "test.domain.com",
@@ -381,10 +402,15 @@ func TestDomainCertificate(t *testing.T) {
}
func TestCacheControlHeaders(t *testing.T) {
+ cleanup := setUpTests(t)
+ defer cleanup()
+
testGroup := &D{
- group: "group",
- projects: map[string]*project{
- "group.test.io": &project{},
+ group: group{
+ name: "group",
+ projects: map[string]*project{
+ "group.test.io": &project{},
+ },
},
}
w := httptest.NewRecorder()
@@ -431,15 +457,27 @@ func TestOpenNoFollow(t *testing.T) {
var chdirSet = false
-func setUpTests() {
+func setUpTests(t require.TestingT) func() {
+ return chdirInPath(t, "../../shared/pages")
+}
+
+func chdirInPath(t require.TestingT, path string) func() {
+ noOp := func() {}
if chdirSet {
- return
+ return noOp
}
- err := os.Chdir("../../shared/pages")
- if err != nil {
- log.WithError(err).Print("chdir")
- } else {
- chdirSet = true
+ cwd, err := os.Getwd()
+ require.NoError(t, err, "Cannot Getwd")
+
+ err = os.Chdir(path)
+ require.NoError(t, err, "Cannot Chdir")
+
+ chdirSet = true
+ return func() {
+ err := os.Chdir(cwd)
+ require.NoError(t, err, "Cannot Chdir in cleanup")
+
+ chdirSet = false
}
}