summaryrefslogtreecommitdiffstats
path: root/source/filesystem_test.go
diff options
context:
space:
mode:
authorNoah Campbell <noahcampbell@gmail.com>2013-09-04 22:28:59 -0700
committerNoah Campbell <noahcampbell@gmail.com>2013-09-04 22:42:52 -0700
commit610c06e6589770d950d8fd4e01efd90b132fcff5 (patch)
tree859f0cb1ce70875175d3910e4ccd05fdd8173393 /source/filesystem_test.go
parentd4d9da9f3a6358e8325d0c3f973a5842ef3be039 (diff)
downloadhugo-610c06e6589770d950d8fd4e01efd90b132fcff5.tar.gz
hugo-610c06e6589770d950d8fd4e01efd90b132fcff5.zip
Introduce source.Filesystem
This provides an abstraction over how files are processed by Hugo. This allows for alternatives like CMS systems or Dropbox, etc.
Diffstat (limited to 'source/filesystem_test.go')
-rw-r--r--source/filesystem_test.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/source/filesystem_test.go b/source/filesystem_test.go
new file mode 100644
index 000000000..2aac9b0dc
--- /dev/null
+++ b/source/filesystem_test.go
@@ -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())
+ }
+}