diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-04-17 19:55:38 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-04-17 20:01:21 +0200 |
commit | 77159b4b9b58190f50201be48dc514d969cf063a (patch) | |
tree | 11ae86c2dcc027b63e23c05ddcb899e9aa8a16bf /hugolib | |
parent | 215b8939bd14717d321dc8ad82458ac7b2e24391 (diff) |
Add some schemaless BaseURL tests
See #2085
Diffstat (limited to 'hugolib')
-rw-r--r-- | hugolib/site_test.go | 80 |
1 files changed, 43 insertions, 37 deletions
diff --git a/hugolib/site_test.go b/hugolib/site_test.go index dfef52f4e..f0c7a8e2d 100644 --- a/hugolib/site_test.go +++ b/hugolib/site_test.go @@ -628,54 +628,60 @@ func TestAbsURLify(t *testing.T) { {filepath.FromSlash("sect/doc1.html"), []byte("<!doctype html><html><head></head><body><a href=\"#frag1\">link</a></body></html>")}, {filepath.FromSlash("content/blue/doc2.html"), []byte("---\nf: t\n---\n<!doctype html><html><body>more content</body></html>")}, } - for _, canonify := range []bool{true, false} { - viper.Set("CanonifyURLs", canonify) - viper.Set("BaseURL", "http://auth/bub") - s := &Site{ - Source: &source.InMemorySource{ByteSource: sources}, - targets: targetList{page: &target.PagePub{UglyURLs: true}}, - } - t.Logf("Rendering with BaseURL %q and CanonifyURLs set %v", viper.GetString("baseURL"), canonify) - s.initializeSiteInfo() + for _, baseURL := range []string{"http://auth/bub", "http://base", "//base"} { + for _, canonify := range []bool{true, false} { + viper.Set("CanonifyURLs", canonify) + viper.Set("BaseURL", baseURL) + s := &Site{ + Source: &source.InMemorySource{ByteSource: sources}, + targets: targetList{page: &target.PagePub{UglyURLs: true}}, + } + t.Logf("Rendering with BaseURL %q and CanonifyURLs set %v", viper.GetString("baseURL"), canonify) + s.initializeSiteInfo() - s.prepTemplates("blue/single.html", templateWithURLAbs) + s.prepTemplates("blue/single.html", templateWithURLAbs) - if err := s.createPages(); err != nil { - t.Fatalf("Unable to create pages: %s", err) - } + if err := s.createPages(); err != nil { + t.Fatalf("Unable to create pages: %s", err) + } - if err := s.buildSiteMeta(); err != nil { - t.Fatalf("Unable to build site metadata: %s", err) - } + if err := s.buildSiteMeta(); err != nil { + t.Fatalf("Unable to build site metadata: %s", err) + } - if err := s.renderPages(); err != nil { - t.Fatalf("Unable to render pages. %s", err) - } + if err := s.renderPages(); err != nil { + t.Fatalf("Unable to render pages. %s", err) + } - tests := []struct { - file, expected string - }{ - {"content/blue/doc2.html", "<a href=\"http://auth/bub/foobar.jpg\">Going</a>"}, - {"sect/doc1.html", "<!doctype html><html><head></head><body><a href=\"#frag1\">link</a></body></html>"}, - } + tests := []struct { + file, expected string + }{ + {"content/blue/doc2.html", "<a href=\"%s/foobar.jpg\">Going</a>"}, + {"sect/doc1.html", "<!doctype html><html><head></head><body><a href=\"#frag1\">link</a></body></html>"}, + } - for _, test := range tests { + for _, test := range tests { - file, err := hugofs.Destination().Open(filepath.FromSlash(test.file)) - if err != nil { - t.Fatalf("Unable to locate rendered content: %s", test.file) - } + file, err := hugofs.Destination().Open(filepath.FromSlash(test.file)) + if err != nil { + t.Fatalf("Unable to locate rendered content: %s", test.file) + } - content := helpers.ReaderToString(file) + content := helpers.ReaderToString(file) - expected := test.expected + expected := test.expected - if !canonify { - expected = strings.Replace(expected, viper.GetString("baseurl"), "", -1) - } + if strings.Contains(expected, "%s") { + expected = fmt.Sprintf(expected, baseURL) + } + + if !canonify { + expected = strings.Replace(expected, baseURL, "", -1) + } - if content != expected { - t.Errorf("AbsURLify content expected:\n%q\ngot\n%q", expected, content) + if content != expected { + t.Errorf("AbsURLify with baseURL %q content expected:\n%q\ngot\n%q", baseURL, expected, content) + } } } } |