summaryrefslogtreecommitdiffstats
path: root/tpl/template_test.go
diff options
context:
space:
mode:
authorbep <bjorn.erik.pedersen@gmail.com>2015-05-31 13:01:20 +0200
committerbep <bjorn.erik.pedersen@gmail.com>2015-05-31 13:13:28 +0200
commite4ed9d6b021a75d060bf598369fdee12b29a89fb (patch)
tree2f53c1b238d96dead0778be571da5c1047503249 /tpl/template_test.go
parentbe45399cba0a47910db7a142e1574a9da1534713 (diff)
Add some Ace test cases
See #1178
Diffstat (limited to 'tpl/template_test.go')
-rw-r--r--tpl/template_test.go72
1 files changed, 72 insertions, 0 deletions
diff --git a/tpl/template_test.go b/tpl/template_test.go
index 3c009c599..99c85affb 100644
--- a/tpl/template_test.go
+++ b/tpl/template_test.go
@@ -1,11 +1,83 @@
package tpl
import (
+ "bytes"
"errors"
"io/ioutil"
+ "os"
+ "path/filepath"
"testing"
)
+// Some tests for Issue #1178 -- Ace
+func TestAceTemplates(t *testing.T) {
+
+ for i, this := range []struct {
+ basePath string
+ innerPath string
+ baseContent string
+ innerContent string
+ expect string
+ expectErr int
+ }{
+ {"", filepath.FromSlash("_default/single.ace"), "", "{{ . }}", "DATA", 0},
+ {filepath.FromSlash("_default/baseof.ace"), filepath.FromSlash("_default/single.ace"),
+ `= content main
+ h2 This is a content named "main" of an inner template. {{ . }}`,
+ `= doctype html
+html lang=en
+ head
+ meta charset=utf-8
+ title Base and Inner Template
+ body
+ h1 This is a base template {{ . }}
+ = yield main`, `<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Base and Inner Template</title></head><body><h1>This is a base template DATA</h1></body></html>`, 0},
+ } {
+
+ for _, root := range []string{"", os.TempDir()} {
+
+ templ := New()
+
+ basePath := this.basePath
+ innerPath := this.innerPath
+
+ if basePath != "" && root != "" {
+ basePath = filepath.Join(root, basePath)
+ }
+
+ if innerPath != "" && root != "" {
+ innerPath = filepath.Join(root, innerPath)
+ }
+
+ d := "DATA"
+
+ err := templ.AddAceTemplate("mytemplate.ace", basePath, innerPath,
+ []byte(this.baseContent), []byte(this.innerContent))
+
+ if err != nil && this.expectErr == 0 {
+ t.Errorf("Test %d with root '%s' errored: %s", i, root, err)
+ } else if err == nil && this.expectErr == 1 {
+ t.Errorf("#1 Test %d with root '%s' should have errored", i, root)
+ }
+
+ var buff bytes.Buffer
+ err = templ.ExecuteTemplate(&buff, "mytemplate.html", d)
+
+ if err != nil && this.expectErr == 0 {
+ t.Errorf("Test %d with root '%s' errored: %s", i, root, err)
+ } else if err == nil && this.expectErr == 2 {
+ t.Errorf("#2 Test with root '%s' %d should have errored", root, i)
+ } else {
+ result := buff.String()
+ if result != this.expect {
+ t.Errorf("Test %d with root '%s' got\n%s\nexpected\n%s", i, root, result, this.expect)
+ }
+ }
+ }
+ }
+
+}
+
// Test for bugs discovered by https://github.com/dvyukov/go-fuzz
func TestTplGoFuzzReports(t *testing.T) {