Introduce source.Filesystem

This provides an abstraction over how files are processed by Hugo.  This
allows for alternatives like CMS systems or Dropbox, etc.
This commit is contained in:
Noah Campbell
2013-09-04 22:28:59 -07:00
parent d4d9da9f3a
commit 610c06e658
8 changed files with 182 additions and 73 deletions

32
source/filesystem_test.go Normal file
View File

@@ -0,0 +1,32 @@
package source
import (
"bytes"
"testing"
)
func TestEmptySourceFilesystem(t *testing.T) {
src := new(Filesystem)
if len(src.Files()) != 0 {
t.Errorf("new filesystem should contain 0 files.")
}
}
func TestAddFile(t *testing.T) {
src := new(Filesystem)
src.add("foobar", bytes.NewReader([]byte("aaa")))
if len(src.Files()) != 1 {
t.Errorf("Files() should return 1 file")
}
f := src.Files()[0]
if f.Name != "foobar" {
t.Errorf("File name should be 'foobar', got: %s", f.Name)
}
b := new(bytes.Buffer)
b.ReadFrom(f.Contents)
if b.String() != "aaa" {
t.Errorf("File contents should be 'aaa', got: %s", b.String())
}
}