Mercurial > yakumo_izuru > aya
annotate zs_test.go @ 34:ed40ca93db1e draft
added explicit yaml separator, fixed amber compilation sequence
author | zaitsev.serge |
---|---|
date | Wed, 02 Sep 2015 17:35:26 +0000 |
parents | e3c902a7380d |
children |
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! |
34
ed40ca93db1e
added explicit yaml separator, fixed amber compilation sequence
zaitsev.serge
parents:
33
diff
changeset
|
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 }, |
34
ed40ca93db1e
added explicit yaml separator, fixed amber compilation sequence
zaitsev.serge
parents:
33
diff
changeset
|
66 ` |
ed40ca93db1e
added explicit yaml separator, fixed amber compilation sequence
zaitsev.serge
parents:
33
diff
changeset
|
67 url: "example.com/foo.html" |
ed40ca93db1e
added explicit yaml separator, fixed amber compilation sequence
zaitsev.serge
parents:
33
diff
changeset
|
68 --- |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
69 Hello |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
70 `: Vars{ |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
71 "url": "example.com/foo.html", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
72 "__content": "Hello\n", |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
73 }, |
0 | 74 } |
2 | 75 |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
76 for script, vars := range tests { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
77 ioutil.WriteFile("test.md", []byte(script), 0644) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
78 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
|
79 t.Error(err) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
80 } else if s != vars["__content"] { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
81 t.Error(s, vars["__content"]) |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
82 } else { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
83 for key, value := range vars { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
84 if key != "__content" && v[key] != value { |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
85 t.Error(key, v[key], value) |
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 } |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
88 } |
2 | 89 } |
0 | 90 } |
91 | |
92 func TestRender(t *testing.T) { | |
18 | 93 vars := map[string]string{"foo": "bar"} |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
94 |
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
95 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
|
96 t.Error(s) |
0 | 97 } |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
98 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
|
99 t.Error(s) |
0 | 100 } |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
101 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
|
102 t.Error(s) |
0 | 103 } |
4
05fc24caac37
render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents:
2
diff
changeset
|
104 // Test error case |
33
e3c902a7380d
rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents:
23
diff
changeset
|
105 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
|
106 t.Error("error expected") |
4
05fc24caac37
render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents:
2
diff
changeset
|
107 } |
0 | 108 } |