Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
caddy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Łukasz Nowak
caddy
Commits
0168a627
Commit
0168a627
authored
Jul 29, 2015
by
Maxime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added test on markdown static files generation
parent
d1eb2ea9
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
160 additions
and
2 deletions
+160
-2
config/setup/markdown_test.go
config/setup/markdown_test.go
+96
-2
config/setup/testdata/blog/first_post.md
config/setup/testdata/blog/first_post.md
+1
-0
config/setup/testdata/header.html
config/setup/testdata/header.html
+1
-0
config/setup/testdata/tpl_with_include.html
config/setup/testdata/tpl_with_include.html
+10
-0
middleware/markdown/markdown_test.go
middleware/markdown/markdown_test.go
+39
-0
middleware/markdown/testdata/og/first.md
middleware/markdown/testdata/og/first.md
+1
-0
middleware/markdown/testdata/og_static/og/first.md/index.html
...leware/markdown/testdata/og_static/og/first.md/index.html
+12
-0
No files found.
config/setup/markdown_test.go
View file @
0168a627
...
...
@@ -2,8 +2,14 @@ package setup
import
(
"fmt"
"github.com/mholt/caddy/middleware/markdown"
"io/ioutil"
"net/http"
"os"
"path/filepath"
"testing"
"github.com/mholt/caddy/middleware"
"github.com/mholt/caddy/middleware/markdown"
)
func
TestMarkdown
(
t
*
testing
.
T
)
{
...
...
@@ -33,8 +39,82 @@ func TestMarkdown(t *testing.T) {
if
fmt
.
Sprint
(
myHandler
.
Configs
[
0
]
.
Extensions
)
!=
fmt
.
Sprint
([]
string
{
".md"
})
{
t
.
Errorf
(
"Expected .md as the Default Extension"
)
}
}
func
TestMarkdownStaticGen
(
t
*
testing
.
T
)
{
c
:=
NewTestController
(
`markdown /blog {
ext .md
template tpl_with_include.html
sitegen
}`
)
c
.
Root
=
"./testdata"
mid
,
err
:=
Markdown
(
c
)
if
err
!=
nil
{
t
.
Errorf
(
"Expected no errors, got: %v"
,
err
)
}
if
mid
==
nil
{
t
.
Fatal
(
"Expected middleware, was nil instead"
)
}
for
_
,
start
:=
range
c
.
Startup
{
err
:=
start
()
if
err
!=
nil
{
t
.
Errorf
(
"Startup error: %v"
,
err
)
}
}
next
:=
middleware
.
HandlerFunc
(
func
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
(
int
,
error
)
{
t
.
Fatalf
(
"Next shouldn't be called"
)
return
0
,
nil
})
hndlr
:=
mid
(
next
)
mkdwn
,
ok
:=
hndlr
.
(
markdown
.
Markdown
)
if
!
ok
{
t
.
Fatalf
(
"Was expecting a markdown.Markdown but got %T"
,
hndlr
)
}
expectedStaticFiles
:=
map
[
string
]
string
{
"/blog/first_post.md"
:
"testdata/generated_site/blog/first_post.md/index.html"
}
if
fmt
.
Sprint
(
expectedStaticFiles
)
!=
fmt
.
Sprint
(
mkdwn
.
Configs
[
0
]
.
StaticFiles
)
{
t
.
Fatalf
(
"Test expected StaticFiles to be %s, but got %s"
,
fmt
.
Sprint
(
expectedStaticFiles
),
fmt
.
Sprint
(
mkdwn
.
Configs
[
0
]
.
StaticFiles
))
}
filePath
:=
"testdata/generated_site/blog/first_post.md/index.html"
if
_
,
err
:=
os
.
Stat
(
filePath
);
err
!=
nil
{
t
.
Fatalf
(
"An error occured when getting the file information: %v"
,
err
)
}
html
,
err
:=
ioutil
.
ReadFile
(
filePath
)
if
err
!=
nil
{
t
.
Fatalf
(
"An error occured when getting the file content: %v"
,
err
)
}
expectedBody
:=
`<!DOCTYPE html>
<html>
<head>
<title>first_post</title>
</head>
<body>
<h1>Header title</h1>
<h1>Test h1</h1>
</body>
</html>
`
if
string
(
html
)
!=
expectedBody
{
t
.
Fatalf
(
"Expected file content: %v got: %v"
,
expectedBody
,
html
)
}
fp
:=
filepath
.
Join
(
c
.
Root
,
markdown
.
DefaultStaticDir
)
if
err
=
os
.
RemoveAll
(
fp
);
err
!=
nil
{
t
.
Errorf
(
"Error while removing the generated static files: "
,
err
)
}
}
func
TestMarkdownParse
(
t
*
testing
.
T
)
{
tests
:=
[]
struct
{
inputMarkdownConfig
string
...
...
@@ -52,9 +132,20 @@ func TestMarkdownParse(t *testing.T) {
Styles
:
[]
string
{
"/resources/css/blog.css"
},
Scripts
:
[]
string
{
"/resources/js/blog.js"
},
}}},
{
`markdown /blog {
ext .md
template tpl_with_include.html
sitegen
}`
,
false
,
[]
markdown
.
Config
{{
PathScope
:
"/blog"
,
Extensions
:
[]
string
{
".md"
},
Templates
:
map
[
string
]
string
{
markdown
.
DefaultTemplate
:
"testdata/tpl_with_include.html"
},
StaticDir
:
markdown
.
DefaultStaticDir
,
}}},
}
for
i
,
test
:=
range
tests
{
c
:=
NewTestController
(
test
.
inputMarkdownConfig
)
c
.
Root
=
"./testdata"
actualMarkdownConfigs
,
err
:=
markdownParse
(
c
)
if
err
==
nil
&&
test
.
shouldErr
{
...
...
@@ -81,7 +172,10 @@ func TestMarkdownParse(t *testing.T) {
t
.
Errorf
(
"Test %d expected %dth Markdown Config Scripts to be %s , but got %s"
,
i
,
j
,
fmt
.
Sprint
(
test
.
expectedMarkdownConfig
[
j
]
.
Scripts
),
fmt
.
Sprint
(
actualMarkdownConfig
.
Scripts
))
}
if
fmt
.
Sprint
(
actualMarkdownConfig
.
Templates
)
!=
fmt
.
Sprint
(
test
.
expectedMarkdownConfig
[
j
]
.
Templates
)
{
t
.
Errorf
(
"Test %d expected %dth Markdown Config Templates to be %s , but got %s"
,
i
,
j
,
fmt
.
Sprint
(
test
.
expectedMarkdownConfig
[
j
]
.
Templates
),
fmt
.
Sprint
(
actualMarkdownConfig
.
Templates
))
}
}
}
...
...
config/setup/testdata/blog/first_post.md
0 → 100644
View file @
0168a627
# Test h1
config/setup/testdata/header.html
0 → 100644
View file @
0168a627
<h1>
Header title
</h1>
config/setup/testdata/tpl_with_include.html
0 → 100644
View file @
0168a627
<!DOCTYPE html>
<html>
<head>
<title>
{{.Doc.title}}
</title>
</head>
<body>
{{.Include "header.html"}}
{{.Doc.body}}
</body>
</html>
middleware/markdown/markdown_test.go
View file @
0168a627
...
...
@@ -33,6 +33,16 @@ func TestMarkdown(t *testing.T) {
Scripts
:
[]
string
{
"/resources/js/log.js"
,
"/resources/js/default.js"
},
Templates
:
make
(
map
[
string
]
string
),
},
Config
{
Renderer
:
blackfriday
.
HtmlRenderer
(
0
,
""
,
""
),
PathScope
:
"/og"
,
Extensions
:
[]
string
{
".md"
},
Styles
:
[]
string
{},
Scripts
:
[]
string
{},
Templates
:
templates
,
StaticDir
:
"/og_static"
,
StaticFiles
:
map
[
string
]
string
{
"/og/first.md"
:
"testdata/og_static/og/first.md/index.html"
},
},
},
IndexFiles
:
[]
string
{
"index.html"
},
Next
:
middleware
.
HandlerFunc
(
func
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
(
int
,
error
)
{
...
...
@@ -123,4 +133,33 @@ func getTrue() bool {
if
respBody
!=
expectedBody
{
t
.
Fatalf
(
"Expected body: %v got: %v"
,
expectedBody
,
respBody
)
}
req
,
err
=
http
.
NewRequest
(
"GET"
,
"/og/first.md"
,
nil
)
if
err
!=
nil
{
t
.
Fatalf
(
"Could not create HTTP request: %v"
,
err
)
}
rec
=
httptest
.
NewRecorder
()
md
.
ServeHTTP
(
rec
,
req
)
if
rec
.
Code
!=
http
.
StatusOK
{
t
.
Fatalf
(
"Wrong status, expected: %d and got %d"
,
http
.
StatusOK
,
rec
.
Code
)
}
respBody
=
rec
.
Body
.
String
()
expectedBody
=
`<!DOCTYPE html>
<html>
<head>
<title>first_post</title>
</head>
<body>
<h1>Header title</h1>
<h1>Test h1</h1>
</body>
</html>`
respBody
=
replacer
.
Replace
(
respBody
)
expectedBody
=
replacer
.
Replace
(
expectedBody
)
if
respBody
!=
expectedBody
{
t
.
Fatalf
(
"Expected body: %v got: %v"
,
expectedBody
,
respBody
)
}
}
middleware/markdown/testdata/og/first.md
0 → 100644
View file @
0168a627
# Test h1
middleware/markdown/testdata/og_static/og/first.md/index.html
0 → 100644
View file @
0168a627
<!DOCTYPE html>
<html>
<head>
<title>
first_post
</title>
</head>
<body>
<h1>
Header title
</h1>
<h1>
Test h1
</h1>
</body>
</html>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment