11package htmlrenderer
22
33import (
4+ "fmt"
45 "html/template"
56 "net/http"
67 "net/http/httptest"
8+ "path/filepath"
79 "testing"
810
911 "github.com/mojixcoder/kid/errors"
@@ -15,6 +17,13 @@ func newTestHTMLRenderer() *defaultHTMLRenderer {
1517 return htmlRenderer
1618}
1719
20+ func getNewLineStr () string {
21+ if filepath .Separator != rune ('/' ) {
22+ return "\r \n "
23+ }
24+ return "\n "
25+ }
26+
1827func TestNew (t * testing.T ) {
1928 htmlRenderer := New ("templates/" , "layouts/" , ".html" , true )
2029
@@ -56,12 +65,16 @@ func TestDefaultHTMLRendererGetTemplateAndLayoutFiles(t *testing.T) {
5665 assert .NoError (t , err )
5766 assert .Equal (
5867 t ,
59- []string {"../ testdata/ templates/ layouts/ base.html" },
68+ []string {filepath . Join ( ".." , " testdata" , " templates" , " layouts" , " base.html") },
6069 layoutFiles ,
6170 )
6271 assert .Equal (
6372 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+ },
6578 templateFiles ,
6679 )
6780
@@ -164,20 +177,32 @@ func TestDefaultHTMLRendererRenderHTML(t *testing.T) {
164177 assert .Equal (t , "template doesn't_exists.html not found" , httpErr .Message )
165178 assert .Equal (t , http .StatusInternalServerError , httpErr .Code )
166179
180+ newline := getNewLineStr ()
181+
167182 res = httptest .NewRecorder ()
168183 err = htmlRenderer .RenderHTML (res , "index.html" , nil )
169184 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+ )
171190
172191 res = httptest .NewRecorder ()
173192 err = htmlRenderer .RenderHTML (res , "pages/page.html" , map [string ]string {"key" : "page contents" })
174193 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+ )
176198
177199 res = httptest .NewRecorder ()
178200 err = htmlRenderer .RenderHTML (res , "pages/page2.html" , nil )
179201 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+ )
181206}
182207
183208func TestNewInternalServerHTTPError (t * testing.T ) {
0 commit comments