mirror of
https://github.com/gohugoio/hugo.git
synced 2024-07-02 15:20:28 +00:00
parent
fabf026f49
commit
12742bac71
|
@ -42,12 +42,16 @@ import (
|
||||||
func TestPageBundlerSiteRegular(t *testing.T) {
|
func TestPageBundlerSiteRegular(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
for _, ugly := range []bool{false, true} {
|
baseBaseURL := "https://example.com"
|
||||||
t.Run(fmt.Sprintf("ugly=%t", ugly),
|
|
||||||
func(t *testing.T) {
|
|
||||||
|
|
||||||
|
for _, baseURLPath := range []string{"", "/hugo"} {
|
||||||
|
for _, ugly := range []bool{false, true} {
|
||||||
|
t.Run(fmt.Sprintf("ugly=%t,path=%s", ugly, baseURLPath),
|
||||||
|
func(t *testing.T) {
|
||||||
|
baseURL := baseBaseURL + baseURLPath
|
||||||
assert := require.New(t)
|
assert := require.New(t)
|
||||||
fs, cfg := newTestBundleSources(t)
|
fs, cfg := newTestBundleSources(t)
|
||||||
|
cfg.Set("baseURL", baseURL)
|
||||||
assert.NoError(loadDefaultSettingsFor(cfg))
|
assert.NoError(loadDefaultSettingsFor(cfg))
|
||||||
assert.NoError(loadLanguageSettings(cfg, nil))
|
assert.NoError(loadLanguageSettings(cfg, nil))
|
||||||
|
|
||||||
|
@ -90,11 +94,11 @@ func TestPageBundlerSiteRegular(t *testing.T) {
|
||||||
assert.Contains(singlePage.content(), "TheContent")
|
assert.Contains(singlePage.content(), "TheContent")
|
||||||
|
|
||||||
if ugly {
|
if ugly {
|
||||||
assert.Equal("/a/1.html", singlePage.RelPermalink())
|
assert.Equal(baseURLPath+"/a/1.html", singlePage.RelPermalink())
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/a/1.html"), "TheContent")
|
th.assertFileContent(filepath.FromSlash("/work/public/a/1.html"), "TheContent")
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
assert.Equal("/a/1/", singlePage.RelPermalink())
|
assert.Equal(baseURLPath+"/a/1/", singlePage.RelPermalink())
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/a/1/index.html"), "TheContent")
|
th.assertFileContent(filepath.FromSlash("/work/public/a/1/index.html"), "TheContent")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,9 +122,9 @@ func TestPageBundlerSiteRegular(t *testing.T) {
|
||||||
assert.NotNil(rootBundle)
|
assert.NotNil(rootBundle)
|
||||||
assert.True(rootBundle.Parent().IsHome())
|
assert.True(rootBundle.Parent().IsHome())
|
||||||
if ugly {
|
if ugly {
|
||||||
assert.Equal("/root.html", rootBundle.RelPermalink())
|
assert.Equal(baseURLPath+"/root.html", rootBundle.RelPermalink())
|
||||||
} else {
|
} else {
|
||||||
assert.Equal("/root/", rootBundle.RelPermalink())
|
assert.Equal(baseURLPath+"/root/", rootBundle.RelPermalink())
|
||||||
}
|
}
|
||||||
|
|
||||||
leafBundle2 := s.getPage(KindPage, "a/b/index.md")
|
leafBundle2 := s.getPage(KindPage, "a/b/index.md")
|
||||||
|
@ -154,7 +158,7 @@ func TestPageBundlerSiteRegular(t *testing.T) {
|
||||||
altFormat := leafBundle1.OutputFormats().Get("CUSTOMO")
|
altFormat := leafBundle1.OutputFormats().Get("CUSTOMO")
|
||||||
assert.NotNil(altFormat)
|
assert.NotNil(altFormat)
|
||||||
|
|
||||||
assert.Equal("https://example.com/2017/pageslug/c/logo.png", image.Permalink())
|
assert.Equal(baseURL+"/2017/pageslug/c/logo.png", image.Permalink())
|
||||||
|
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/2017/pageslug/c/logo.png"), "content")
|
th.assertFileContent(filepath.FromSlash("/work/public/2017/pageslug/c/logo.png"), "content")
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug/c/logo.png"), "content")
|
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug/c/logo.png"), "content")
|
||||||
|
@ -162,14 +166,27 @@ func TestPageBundlerSiteRegular(t *testing.T) {
|
||||||
// Custom media type defined in site config.
|
// Custom media type defined in site config.
|
||||||
assert.Len(leafBundle1.Resources.ByType("bepsays"), 1)
|
assert.Len(leafBundle1.Resources.ByType("bepsays"), 1)
|
||||||
|
|
||||||
|
relPermalinker := func(s string) string {
|
||||||
|
return fmt.Sprintf(s, baseURLPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
permalinker := func(s string) string {
|
||||||
|
return fmt.Sprintf(s, baseURL)
|
||||||
|
}
|
||||||
|
|
||||||
|
if permalinker == nil {
|
||||||
|
}
|
||||||
|
|
||||||
if ugly {
|
if ugly {
|
||||||
assert.Equal("/2017/pageslug.html", leafBundle1.RelPermalink())
|
assert.Equal(baseURLPath+"/2017/pageslug.html", leafBundle1.RelPermalink())
|
||||||
|
assert.Equal(baseURL+"/2017/pageslug.html", leafBundle1.Permalink())
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/2017/pageslug.html"),
|
th.assertFileContent(filepath.FromSlash("/work/public/2017/pageslug.html"),
|
||||||
"TheContent",
|
"TheContent",
|
||||||
"Sunset RelPermalink: /2017/pageslug/sunset1.jpg",
|
relPermalinker("Sunset RelPermalink: %s/2017/pageslug/sunset1.jpg"),
|
||||||
|
permalinker("Sunset Permalink: %s/2017/pageslug/sunset1.jpg"),
|
||||||
"Thumb Width: 123",
|
"Thumb Width: 123",
|
||||||
"Thumb Name: my-sunset-1",
|
"Thumb Name: my-sunset-1",
|
||||||
"Short Sunset RelPermalink: /2017/pageslug/sunset2.jpg",
|
relPermalinker("Short Sunset RelPermalink: %s/2017/pageslug/sunset2.jpg"),
|
||||||
"Short Thumb Width: 56",
|
"Short Thumb Width: 56",
|
||||||
"1: Image Title: Sunset Galore 1",
|
"1: Image Title: Sunset Galore 1",
|
||||||
"1: Image Params: map[myparam:My Sunny Param]",
|
"1: Image Params: map[myparam:My Sunny Param]",
|
||||||
|
@ -179,26 +196,28 @@ func TestPageBundlerSiteRegular(t *testing.T) {
|
||||||
)
|
)
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug.html"), "TheContent")
|
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug.html"), "TheContent")
|
||||||
|
|
||||||
assert.Equal("/a/b.html", leafBundle2.RelPermalink())
|
assert.Equal(baseURLPath+"/a/b.html", leafBundle2.RelPermalink())
|
||||||
|
|
||||||
// 은행
|
// 은행
|
||||||
assert.Equal("/c/%EC%9D%80%ED%96%89.html", unicodeBundle.RelPermalink())
|
assert.Equal(baseURLPath+"/c/%EC%9D%80%ED%96%89.html", unicodeBundle.RelPermalink())
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/c/은행.html"), "Content for 은행")
|
th.assertFileContent(filepath.FromSlash("/work/public/c/은행.html"), "Content for 은행")
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/c/은행/logo-은행.png"), "은행 PNG")
|
th.assertFileContent(filepath.FromSlash("/work/public/c/은행/logo-은행.png"), "은행 PNG")
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
assert.Equal("/2017/pageslug/", leafBundle1.RelPermalink())
|
assert.Equal(baseURLPath+"/2017/pageslug/", leafBundle1.RelPermalink())
|
||||||
|
assert.Equal(baseURL+"/2017/pageslug/", leafBundle1.Permalink())
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/2017/pageslug/index.html"), "TheContent")
|
th.assertFileContent(filepath.FromSlash("/work/public/2017/pageslug/index.html"), "TheContent")
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug/cindex.html"), "TheContent")
|
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug/cindex.html"), "TheContent")
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/2017/pageslug/index.html"), "Single Title")
|
th.assertFileContent(filepath.FromSlash("/work/public/2017/pageslug/index.html"), "Single Title")
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/root/index.html"), "Single Title")
|
th.assertFileContent(filepath.FromSlash("/work/public/root/index.html"), "Single Title")
|
||||||
|
|
||||||
assert.Equal("/a/b/", leafBundle2.RelPermalink())
|
assert.Equal(baseURLPath+"/a/b/", leafBundle2.RelPermalink())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -490,6 +509,7 @@ Content: {{ .Content }}
|
||||||
{{ $sunset := .Resources.GetMatch "my-sunset-1*" }}
|
{{ $sunset := .Resources.GetMatch "my-sunset-1*" }}
|
||||||
{{ with $sunset }}
|
{{ with $sunset }}
|
||||||
Sunset RelPermalink: {{ .RelPermalink }}
|
Sunset RelPermalink: {{ .RelPermalink }}
|
||||||
|
Sunset Permalink: {{ .Permalink }}
|
||||||
{{ $thumb := .Fill "123x123" }}
|
{{ $thumb := .Fill "123x123" }}
|
||||||
Thumb Width: {{ $thumb.Width }}
|
Thumb Width: {{ $thumb.Width }}
|
||||||
Thumb Name: {{ $thumb.Name }}
|
Thumb Name: {{ $thumb.Name }}
|
||||||
|
|
|
@ -301,6 +301,18 @@ T4: {{ $r2.Data.Integrity }}|
|
||||||
b.AssertFileContent("public/index.html", `T4: sha256-Hgu9bGhroFC46wP/7txk/cnYCUf86CGrvl1tyNJSxaw=|`)
|
b.AssertFileContent("public/index.html", `T4: sha256-Hgu9bGhroFC46wP/7txk/cnYCUf86CGrvl1tyNJSxaw=|`)
|
||||||
|
|
||||||
}},
|
}},
|
||||||
|
// https://github.com/gohugoio/hugo/issues/5226
|
||||||
|
{"baseurl-path", func() bool { return true }, func(b *sitesBuilder) {
|
||||||
|
b.WithSimpleConfigFileAndBaseURL("https://example.com/hugo/")
|
||||||
|
b.WithTemplates("home.html", `
|
||||||
|
{{ $r1 := "ab" | resources.FromString "rocks/hugo.txt" }}
|
||||||
|
T1: {{ $r1.Permalink }}|{{ $r1.RelPermalink }}
|
||||||
|
`)
|
||||||
|
}, func(b *sitesBuilder) {
|
||||||
|
b.AssertFileContent("public/index.html", `T1: https://example.com/hugo/rocks/hugo.txt|/hugo/rocks/hugo.txt`)
|
||||||
|
|
||||||
|
}},
|
||||||
|
|
||||||
{"template", func() bool { return true }, func(b *sitesBuilder) {}, func(b *sitesBuilder) {
|
{"template", func() bool { return true }, func(b *sitesBuilder) {}, func(b *sitesBuilder) {
|
||||||
}},
|
}},
|
||||||
}
|
}
|
||||||
|
|
|
@ -181,10 +181,13 @@ privacyEnhanced = true
|
||||||
`
|
`
|
||||||
|
|
||||||
func (s *sitesBuilder) WithSimpleConfigFile() *sitesBuilder {
|
func (s *sitesBuilder) WithSimpleConfigFile() *sitesBuilder {
|
||||||
var config = `
|
return s.WithSimpleConfigFileAndBaseURL("http://example.com/")
|
||||||
baseURL = "http://example.com/"
|
}
|
||||||
|
|
||||||
` + commonConfigSections
|
func (s *sitesBuilder) WithSimpleConfigFileAndBaseURL(baseURL string) *sitesBuilder {
|
||||||
|
config := fmt.Sprintf("baseURL = %q", baseURL)
|
||||||
|
|
||||||
|
config = config + commonConfigSections
|
||||||
return s.WithConfigFile("toml", config)
|
return s.WithConfigFile("toml", config)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue