pagr

A 'static site generator', built using dati.
Log | Files | Refs | Atom

content_test.go (1547B)


      1 package main
      2 
      3 import (
      4 	"io/ioutil"
      5 	"os"
      6 	"path/filepath"
      7 	"testing"
      8 )
      9 
     10 func TestLoadContentDir(test *testing.T) {
     11 	test.Parallel()
     12 
     13 	var err error
     14 	tdir := filepath.Join(os.TempDir(), "pagr_test_TestLoadContentDir")
     15 	if err := os.MkdirAll(tdir, 0775); err != nil {
     16 		test.Errorf("failed to create temporary test dir: %s", tdir)
     17 	}
     18 	if err = createTestContents(tdir); err != nil {
     19 		test.Errorf("failed to create test content: %s", err)
     20 	}
     21 
     22 	var p []Page
     23 	if p, err = LoadContentDir(tdir); err != nil {
     24 		test.Fatalf("LoadContentDir failed: %s", err)
     25 	}
     26 
     27 	validateTestPages(test, p, err)
     28 
     29 	if err = os.RemoveAll(tdir); err != nil {
     30 		test.Error(err)
     31 	}
     32 }
     33 
     34 func TestNewContentFromFile(test *testing.T) {
     35 	test.Parallel()
     36 
     37 	var err error
     38 	contents := map[string]string{
     39 		"txt":  `test`,
     40 		"md":   "**test**\ntest",
     41 		"html": `<b>test</b>`,
     42 	}
     43 
     44 	tdir := filepath.Join(os.TempDir(), "pagr_test", "TestNewContentFromFile")
     45 	if err := os.MkdirAll(tdir, 0775); err != nil {
     46 		test.Errorf("failed to create temporary test dir: %s", tdir)
     47 	}
     48 	contentsPath := func(ftype string) string {
     49 		return tdir + "/test." + ftype
     50 	}
     51 
     52 	for ftype, data := range contents {
     53 		if err = ioutil.WriteFile(contentsPath(ftype), []byte(data), 0666); err != nil {
     54 			test.Error("TestNewContentFromFile setup failed:", err)
     55 		}
     56 	}
     57 
     58 	var p Page
     59 	for ftype := range contents {
     60 		if err = p.NewContentFromFile(contentsPath(ftype)); err != nil {
     61 			test.Fatal("NewContentFromFile failed for", ftype, err)
     62 		}
     63 	}
     64 
     65 	if err = os.RemoveAll(tdir); err != nil {
     66 		test.Error(err)
     67 	}
     68 }