1
1
package htmlrenderer
2
2
3
3
import (
4
+ "fmt"
4
5
"html/template"
5
6
"net/http"
6
7
"net/http/httptest"
8
+ "path/filepath"
7
9
"testing"
8
10
9
11
"github.com/mojixcoder/kid/errors"
@@ -15,6 +17,13 @@ func newTestHTMLRenderer() *defaultHTMLRenderer {
15
17
return htmlRenderer
16
18
}
17
19
20
+ func getNewLineStr () string {
21
+ if filepath .Separator != rune ('/' ) {
22
+ return "\r \n "
23
+ }
24
+ return "\n "
25
+ }
26
+
18
27
func TestNew (t * testing.T ) {
19
28
htmlRenderer := New ("templates/" , "layouts/" , ".html" , true )
20
29
@@ -56,12 +65,16 @@ func TestDefaultHTMLRendererGetTemplateAndLayoutFiles(t *testing.T) {
56
65
assert .NoError (t , err )
57
66
assert .Equal (
58
67
t ,
59
- []string {"../ testdata/ templates/ layouts/ base.html" },
68
+ []string {filepath . Join ( ".." , " testdata" , " templates" , " layouts" , " base.html") },
60
69
layoutFiles ,
61
70
)
62
71
assert .Equal (
63
72
t ,
64
- []string {"../testdata/templates/index.html" , "../testdata/templates/pages/page.html" , "../testdata/templates/pages/page2.html" },
73
+ []string {
74
+ filepath .Join (".." , "testdata" , "templates" , "index.html" ),
75
+ filepath .Join (".." , "testdata" , "templates" , "pages" , "page.html" ),
76
+ filepath .Join (".." , "testdata" , "templates" , "pages" , "page2.html" ),
77
+ },
65
78
templateFiles ,
66
79
)
67
80
@@ -164,20 +177,32 @@ func TestDefaultHTMLRendererRenderHTML(t *testing.T) {
164
177
assert .Equal (t , "template doesn't_exists.html not found" , httpErr .Message )
165
178
assert .Equal (t , http .StatusInternalServerError , httpErr .Code )
166
179
180
+ newline := getNewLineStr ()
181
+
167
182
res = httptest .NewRecorder ()
168
183
err = htmlRenderer .RenderHTML (res , "index.html" , nil )
169
184
assert .NoError (t , err )
170
- assert .Equal (t , "\n <html><body>\n <p>content</p>\n </body></html>\n " , res .Body .String ())
185
+ assert .Equal (
186
+ t ,
187
+ fmt .Sprintf ("%s<html><body>%s<p>content</p>%s</body></html>%s" , newline , newline , newline , newline ),
188
+ res .Body .String (),
189
+ )
171
190
172
191
res = httptest .NewRecorder ()
173
192
err = htmlRenderer .RenderHTML (res , "pages/page.html" , map [string ]string {"key" : "page contents" })
174
193
assert .NoError (t , err )
175
- assert .Equal (t , "\n <html><body>\n <p>page contents</p>\n </body></html>\n " , res .Body .String ())
194
+ assert .Equal (t ,
195
+ fmt .Sprintf ("%s<html><body>%s<p>page contents</p>%s</body></html>%s" , newline , newline , newline , newline ),
196
+ res .Body .String (),
197
+ )
176
198
177
199
res = httptest .NewRecorder ()
178
200
err = htmlRenderer .RenderHTML (res , "pages/page2.html" , nil )
179
201
assert .NoError (t , err )
180
- assert .Equal (t , "\n <html><body>\n <p>Hello Tom</p>\n </body></html>\n " , res .Body .String ())
202
+ assert .Equal (t ,
203
+ fmt .Sprintf ("%s<html><body>%s<p>Hello Tom</p>%s</body></html>%s" , newline , newline , newline , newline ),
204
+ res .Body .String (),
205
+ )
181
206
}
182
207
183
208
func TestNewInternalServerHTTPError (t * testing.T ) {
0 commit comments