mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package hugolib
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"path/filepath"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	qt "github.com/frankban/quicktest"
 | 
						|
)
 | 
						|
 | 
						|
func TestContentFactory(t *testing.T) {
 | 
						|
	t.Parallel()
 | 
						|
 | 
						|
	c := qt.New(t)
 | 
						|
 | 
						|
	c.Run("Simple", func(c *qt.C) {
 | 
						|
		workingDir := "/my/work"
 | 
						|
		b := newTestSitesBuilder(c)
 | 
						|
		b.WithWorkingDir(workingDir).WithConfigFile("toml", `
 | 
						|
 | 
						|
workingDir="/my/work"
 | 
						|
 | 
						|
[module]
 | 
						|
[[module.mounts]]
 | 
						|
source = 'mcontent/en'
 | 
						|
target = 'content'
 | 
						|
lang  = 'en'
 | 
						|
[[module.mounts]]
 | 
						|
source = 'archetypes'
 | 
						|
target = 'archetypes'
 | 
						|
	
 | 
						|
`)
 | 
						|
 | 
						|
		b.WithSourceFile(filepath.Join("mcontent/en/bundle", "index.md"), "")
 | 
						|
 | 
						|
		b.WithSourceFile(filepath.Join("archetypes", "post.md"), `---
 | 
						|
title: "{{ replace .Name "-" " " | title }}"
 | 
						|
date: {{ .Date }}
 | 
						|
draft: true
 | 
						|
---
 | 
						|
 | 
						|
Hello World.
 | 
						|
`)
 | 
						|
		b.CreateSites()
 | 
						|
		cf := NewContentFactory(b.H)
 | 
						|
		abs, err := cf.CreateContentPlaceHolder(filepath.FromSlash("mcontent/en/blog/mypage.md"))
 | 
						|
		b.Assert(err, qt.IsNil)
 | 
						|
		b.Assert(abs, qt.Equals, filepath.FromSlash("/my/work/mcontent/en/blog/mypage.md"))
 | 
						|
		b.Build(BuildCfg{SkipRender: true})
 | 
						|
 | 
						|
		p := b.H.GetContentPage(abs)
 | 
						|
		b.Assert(p, qt.Not(qt.IsNil))
 | 
						|
 | 
						|
		var buf bytes.Buffer
 | 
						|
		b.Assert(cf.ApplyArchetypeFilename(&buf, p, "", "post.md"), qt.IsNil)
 | 
						|
 | 
						|
		b.Assert(buf.String(), qt.Contains, `title: "Mypage"`)
 | 
						|
	})
 | 
						|
 | 
						|
	// Issue #9129
 | 
						|
	c.Run("Content in both project and theme", func(c *qt.C) {
 | 
						|
		b := newTestSitesBuilder(c)
 | 
						|
		b.WithConfigFile("toml", `
 | 
						|
theme = 'ipsum'		
 | 
						|
`)
 | 
						|
 | 
						|
		themeDir := filepath.Join("themes", "ipsum")
 | 
						|
		b.WithSourceFile("content/posts/foo.txt", `Hello.`)
 | 
						|
		b.WithSourceFile(filepath.Join(themeDir, "content/posts/foo.txt"), `Hello.`)
 | 
						|
		b.CreateSites()
 | 
						|
		cf := NewContentFactory(b.H)
 | 
						|
		abs, err := cf.CreateContentPlaceHolder(filepath.FromSlash("posts/test.md"))
 | 
						|
		b.Assert(err, qt.IsNil)
 | 
						|
		b.Assert(abs, qt.Equals, filepath.FromSlash("content/posts/test.md"))
 | 
						|
 | 
						|
	})
 | 
						|
 | 
						|
}
 |