shithub: hugo

Download patch

ref: 77159b4b9b58190f50201be48dc514d969cf063a
parent: 215b8939bd14717d321dc8ad82458ac7b2e24391
author: Bjørn Erik Pedersen <[email protected]>
date: Sun Apr 17 15:55:38 EDT 2016

Add some schemaless BaseURL tests

See #2085

--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -628,54 +628,60 @@
 		{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 content != expected {
-				t.Errorf("AbsURLify content expected:\n%q\ngot\n%q", expected, content)
+				if !canonify {
+					expected = strings.Replace(expected, baseURL, "", -1)
+				}
+
+				if content != expected {
+					t.Errorf("AbsURLify with baseURL %q content expected:\n%q\ngot\n%q", baseURL, expected, content)
+				}
 			}
 		}
 	}