Mercurial > yakumo_izuru > aya
annotate zs_test.go @ 33:e3c902a7380d draft
rewritten using zs templates, allowing go templates using <% %> delimiters
author | zaitsev.serge |
---|---|
date | Wed, 02 Sep 2015 17:05:09 +0000 |
parents | 40f55059fbfa |
children | ed40ca93db1e |
rev | line source |
---|---|
0 | 1 package main |
2 | |
4
05fc24caac37
render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents:
2
diff
changeset
|
3 import ( |
17 | 4 "io/ioutil" |
4
05fc24caac37
render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents:
2
diff
changeset
|
5 "os" |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
6 "path/filepath" |
4
05fc24caac37
render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents:
2
diff
changeset
|
7 "testing" |
05fc24caac37
render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents:
2
diff
changeset
|
8 ) |
0 | 9 |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
10 func TestRenameExt(t *testing.T) { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
11 if s := renameExt("foo.amber", ".amber", ".html"); s != "foo.html" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
12 t.Error(s) |
0 | 13 } |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
14 if s := renameExt("foo.amber", "", ".html"); s != "foo.html" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
15 t.Error(s) |
0 | 16 } |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
17 if s := renameExt("foo.amber", ".md", ".html"); s != "foo.amber" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
18 t.Error(s) |
0 | 19 } |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
20 if s := renameExt("foo", ".amber", ".html"); s != "foo" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
21 t.Error(s) |
0 | 22 } |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
23 if s := renameExt("foo", "", ".html"); s != "foo.html" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
24 t.Error(s) |
0 | 25 } |
26 } | |
27 | |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
28 func TestRun(t *testing.T) { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
29 // external command |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
30 if s, err := run(Vars{}, "echo", "hello"); err != nil || s != "hello\n" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
31 t.Error(s, err) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
32 } |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
33 // passing variables to plugins |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
34 if s, err := run(Vars{"foo": "bar"}, "sh", "-c", "echo $ZS_FOO"); err != nil || s != "bar\n" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
35 t.Error(s, err) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
36 } |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
37 |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
38 // custom plugin overriding external command |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
39 os.Mkdir(ZSDIR, 0755) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
40 script := `#!/bin/sh |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
41 echo foo |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
42 ` |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
43 ioutil.WriteFile(filepath.Join(ZSDIR, "echo"), []byte(script), 0755) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
44 if s, err := run(Vars{}, "echo", "hello"); err != nil || s != "foo\n" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
45 t.Error(s, err) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
46 } |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
47 os.Remove(filepath.Join(ZSDIR, "echo")) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
48 os.Remove(ZSDIR) |
17 | 49 } |
50 | |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
51 func TestVars(t *testing.T) { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
52 tests := map[string]Vars{ |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
53 ` |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
54 foo: bar |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
55 title: Hello, world! |
0 | 56 |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
57 Some content in markdown |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
58 `: Vars{ |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
59 "foo": "bar", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
60 "title": "Hello, world!", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
61 "url": "test.html", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
62 "file": "test.md", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
63 "output": filepath.Join(PUBDIR, "test.html"), |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
64 "__content": "Some content in markdown\n", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
65 }, |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
66 `url: "example.com/foo.html" |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
67 |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
68 Hello |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
69 `: Vars{ |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
70 "url": "example.com/foo.html", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
71 "__content": "Hello\n", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
72 }, |
0 | 73 } |
2 | 74 |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
75 for script, vars := range tests { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
76 ioutil.WriteFile("test.md", []byte(script), 0644) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
77 if v, s, err := getVars("test.md", Vars{"baz": "123"}); err != nil { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
78 t.Error(err) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
79 } else if s != vars["__content"] { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
80 t.Error(s, vars["__content"]) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
81 } else { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
82 for key, value := range vars { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
83 if key != "__content" && v[key] != value { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
84 t.Error(key, v[key], value) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
85 } |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
86 } |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
87 } |
2 | 88 } |
0 | 89 } |
90 | |
91 func TestRender(t *testing.T) { | |
18 | 92 vars := map[string]string{"foo": "bar"} |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
93 |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
94 if s, _ := render("foo bar", vars); s != "foo bar" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
95 t.Error(s) |
0 | 96 } |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
97 if s, _ := render("a {{printf short}} text", vars); s != "a short text" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
98 t.Error(s) |
0 | 99 } |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
100 if s, _ := render("{{printf Hello}} x{{foo}}z", vars); s != "Hello xbarz" { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
101 t.Error(s) |
0 | 102 } |
4
05fc24caac37
render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents:
2
diff
changeset
|
103 // Test error case |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
104 if _, err := render("a {{greet text ", vars); err == nil { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
105 t.Error("error expected") |
4
05fc24caac37
render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents:
2
diff
changeset
|
106 } |
0 | 107 } |