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

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-10-31 13:13:14 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-10-31 18:11:53 +0300
commit33c474b9b3bd470670740f30c5131071ce906b22 (patch)
tree3b19224f1045c333a5c2a884be648a29f334e54e /hugolib
parented2682325aeb8fd1c8139077d14a5f6906757a4e (diff)
hugofs: Fix crash in multilingual content fs
Fixes #6463
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/language_content_dir_test.go87
1 files changed, 87 insertions, 0 deletions
diff --git a/hugolib/language_content_dir_test.go b/hugolib/language_content_dir_test.go
index 5406422dd..0d1033c1f 100644
--- a/hugolib/language_content_dir_test.go
+++ b/hugolib/language_content_dir_test.go
@@ -319,3 +319,90 @@ Content.
c.Assert(nnHome.RelPermalink(), qt.Equals, "/nn/")
}
+
+// https://github.com/gohugoio/hugo/issues/6463
+func TestLanguageRootSectionsMismatch(t *testing.T) {
+ t.Parallel()
+
+ config := `
+baseURL: "https://example.org/"
+languageCode: "en-us"
+title: "My New Hugo Site"
+theme: "mytheme"
+
+contentDir: "content/en"
+
+languages:
+ en:
+ weight: 1
+ languageName: "English"
+ contentDir: content/en
+ es:
+ weight: 2
+ languageName: "Español"
+ contentDir: content/es
+ fr:
+ weight: 4
+ languageName: "Française"
+ contentDir: content/fr
+
+
+`
+ createPage := func(title string) string {
+ return fmt.Sprintf(`---
+title: %q
+---
+
+`, title)
+ }
+
+ b := newTestSitesBuilder(t)
+ b.WithConfigFile("yaml", config)
+
+ b.WithSourceFile("themes/mytheme/layouts/index.html", `MYTHEME`)
+ b.WithTemplates("index.html", `
+Lang: {{ .Lang }}
+{{ range .Site.RegularPages }}
+Page: {{ .RelPermalink }}|{{ .Title -}}
+{{ end }}
+
+`)
+ b.WithSourceFile("static/hello.txt", `hello`)
+ b.WithContent("en/_index.md", createPage("en home"))
+ b.WithContent("es/_index.md", createPage("es home"))
+ b.WithContent("fr/_index.md", createPage("fr home"))
+
+ for i := 1; i < 3; i++ {
+ b.WithContent(fmt.Sprintf("en/event/page%d.md", i), createPage(fmt.Sprintf("ev-en%d", i)))
+ b.WithContent(fmt.Sprintf("es/event/page%d.md", i), createPage(fmt.Sprintf("ev-es%d", i)))
+ b.WithContent(fmt.Sprintf("fr/event/page%d.md", i), createPage(fmt.Sprintf("ev-fr%d", i)))
+ b.WithContent(fmt.Sprintf("en/blog/page%d.md", i), createPage(fmt.Sprintf("blog-en%d", i)))
+ b.WithContent(fmt.Sprintf("es/blog/page%d.md", i), createPage(fmt.Sprintf("blog-es%d", i)))
+ b.WithContent(fmt.Sprintf("fr/other/page%d.md", i), createPage(fmt.Sprintf("other-fr%d", i)))
+ }
+
+ b.Build(BuildCfg{})
+
+ b.AssertFileContent("public/index.html", `
+Lang: en
+Page: /blog/page1/|blog-en1
+Page: /blog/page2/|blog-en2
+Page: /event/page1/|ev-en1
+Page: /event/page2/|ev-en2
+`)
+
+ b.AssertFileContent("public/es/index.html", `
+Lang: es
+Page: /es/blog/page1/|blog-es1
+Page: /es/blog/page2/|blog-es2
+Page: /es/event/page1/|ev-es1
+Page: /es/event/page2/|ev-es2
+`)
+ b.AssertFileContent("public/fr/index.html", `
+Lang: fr
+Page: /fr/event/page1/|ev-fr1
+Page: /fr/event/page2/|ev-fr2
+Page: /fr/other/page1/|other-fr1
+Page: /fr/other/page2/|other-fr2`)
+
+}