lib/markdown2: introduce Github extended mode
[nit.git] / lib / markdown2 / tests / test_markdown_github.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 # Tests for markdown Github mode
16 module test_markdown_github is test
17
18 import test_markdown
19 import test_markdown_location
20 import test_markdown_md
21 import test_markdown_man
22 import test_markdown_latex
23
24 redef class TestMarkdown
25 redef var md_parser is lazy do
26 var parser = super
27 parser.github_mode = true
28 return parser
29 end
30 end
31
32 class TestGithubLocation
33 super TestMarkdownLocation
34 test
35
36 fun test_github_strike is test do
37 var md = """
38 A ~striked~ text.
39 """
40 var loc = """
41 MdDocument: 1,1--1,17
42 MdParagraph: 1,1--1,17
43 MdText: 1,1--1,2
44 MdStrike: 1,3--1,11
45 MdText: 1,4--1,10
46 MdText: 1,12--1,17
47 """
48 assert md_to_loc(md) == loc
49 end
50
51 fun test_github_strike2 is test do
52 var md = """
53 A ~~striked~~ text.
54 """
55 var loc = """
56 MdDocument: 1,1--1,19
57 MdParagraph: 1,1--1,19
58 MdText: 1,1--1,2
59 MdStrike: 1,3--1,13
60 MdText: 1,5--1,11
61 MdText: 1,14--1,19
62 """
63 assert md_to_loc(md) == loc
64 end
65
66 fun test_github_super is test do
67 var md = """
68 A ^supered^ text.
69 """
70 var loc = """
71 MdDocument: 1,1--1,17
72 MdParagraph: 1,1--1,17
73 MdText: 1,1--1,2
74 MdSuper: 1,3--1,11
75 MdText: 1,4--1,10
76 MdText: 1,12--1,17
77 """
78 assert md_to_loc(md) == loc
79 end
80
81 fun test_github_super2 is test do
82 var md = """
83 A ^^supered^^ text.
84 """
85 var loc = """
86 MdDocument: 1,1--1,19
87 MdParagraph: 1,1--1,19
88 MdText: 1,1--1,2
89 MdSuper: 1,3--1,13
90 MdText: 1,5--1,11
91 MdText: 1,14--1,19
92 """
93 assert md_to_loc(md) == loc
94 end
95 end
96
97 class TestGithubHtml
98 super TestMarkdownHtml
99 test
100
101 fun test_strike1 is test do
102 var md = """foo ~bar~ baz\n"""
103 var html = """<p>foo <del>bar</del> baz</p>\n"""
104 assert md_to_html(md) == html
105 end
106
107 fun test_strike2 is test do
108 var md = """foo ~~bar~~ baz\n"""
109 var html = """<p>foo <del>bar</del> baz</p>\n"""
110 assert md_to_html(md) == html
111 end
112
113 fun test_strike3 is test do
114 var md = """foo ~~~bar~~~ baz\n"""
115 var html = """<p>foo <del>bar</del> baz</p>\n"""
116 assert md_to_html(md) == html
117 end
118
119 fun test_strike4 is test do
120 var md = """foo ~~~~bar~~~~ baz\n"""
121 var html = """<p>foo <del>bar</del> baz</p>\n"""
122 assert md_to_html(md) == html
123 end
124
125 fun test_strike5 is test do
126 var md = """foo ~~~~~bar~~~~~ baz\n"""
127 var html = """<p>foo <del>bar</del> baz</p>\n"""
128 assert md_to_html(md) == html
129 end
130
131 fun test_strike6 is test do
132 var md = """foo ~~~~~~bar~~~~~~ baz\n"""
133 var html = """<p>foo <del>bar</del> baz</p>\n"""
134 assert md_to_html(md) == html
135 end
136
137 fun test_strike_bad is test do
138 var md = """foo ~bar baz\n"""
139 var html = """<p>foo ~bar baz</p>\n"""
140 assert md_to_html(md) == html
141 end
142
143 fun test_strike_bad2 is test do
144 var md = """foo ~~bar~ baz\n"""
145 var html = """<p>foo <del>bar</del> baz</p>\n"""
146 assert md_to_html(md) == html
147 end
148
149 fun test_strike_bad3 is test do
150 var md = """foo ~~~bar~ baz\n"""
151 var html = """<p>foo <del>bar</del> baz</p>\n"""
152 assert md_to_html(md) == html
153 end
154
155 fun test_strike_bad4 is test do
156 var md = """foo ~~~~bar~ baz\n"""
157 var html = """<p>foo <del>bar</del> baz</p>\n"""
158 assert md_to_html(md) == html
159 end
160
161 fun test_strike_bad5 is test do
162 var md = """foo ~~~~~bar~ baz\n"""
163 var html = """<p>foo <del>bar</del> baz</p>\n"""
164 assert md_to_html(md) == html
165 end
166
167 fun test_strike_bad6 is test do
168 var md = """foo bar~ baz\n"""
169 var html = """<p>foo bar~ baz</p>\n"""
170 assert md_to_html(md) == html
171 end
172
173 fun test_strike_bad7 is test do
174 var md = """foo ~bar~~~~ baz\n"""
175 var html = """<p>foo <del>bar</del>~~~ baz</p>\n"""
176 assert md_to_html(md) == html
177 end
178
179 fun test_super1 is test do
180 var md = """foo ^bar^ baz\n"""
181 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
182 assert md_to_html(md) == html
183 end
184
185 fun test_super2 is test do
186 var md = """foo ^^bar^^ baz\n"""
187 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
188 assert md_to_html(md) == html
189 end
190
191 fun test_super3 is test do
192 var md = """foo ^^^bar^^^ baz\n"""
193 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
194 assert md_to_html(md) == html
195 end
196
197 fun test_super4 is test do
198 var md = """foo ^^^^bar^^^^ baz\n"""
199 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
200 assert md_to_html(md) == html
201 end
202
203 fun test_super5 is test do
204 var md = """foo ^^^^^bar^^^^^ baz\n"""
205 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
206 assert md_to_html(md) == html
207 end
208
209 fun test_super6 is test do
210 var md = """foo ^^^^^^bar^^^^^^ baz\n"""
211 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
212 assert md_to_html(md) == html
213 end
214
215 fun test_super_bad1 is test do
216 var md = """foo ^bar baz\n"""
217 var html = """<p>foo ^bar baz</p>\n"""
218 assert md_to_html(md) == html
219 end
220
221 fun test_super_bad is test do
222 var md = """foo ^^bar^ baz\n"""
223 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
224 assert md_to_html(md) == html
225 end
226
227 fun test_super_bad3 is test do
228 var md = """foo ^^^bar^ baz\n"""
229 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
230 assert md_to_html(md) == html
231 end
232
233 fun test_super_bad4 is test do
234 var md = """foo ^^^^bar^ baz\n"""
235 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
236 assert md_to_html(md) == html
237 end
238
239 fun test_super_bad5 is test do
240 var md = """foo ^^^^^bar^ baz\n"""
241 var html = """<p>foo <sup>bar</sup> baz</p>\n"""
242 assert md_to_html(md) == html
243 end
244
245 fun test_super_bad6 is test do
246 var md = """foo bar^ baz\n"""
247 var html = """<p>foo bar^ baz</p>\n"""
248 assert md_to_html(md) == html
249 end
250
251 fun test_super_bad7 is test do
252 var md = """foo ^bar^^^^ baz\n"""
253 var html = """<p>foo <sup>bar</sup>^^^ baz</p>\n"""
254 assert md_to_html(md) == html
255 end
256 end
257
258 class TestGithubMd
259 super TestMarkdownMd
260 test
261
262 fun test_strike_md is test do
263 var md = """~~foo~~\n"""
264 assert md_to_md(md) == md
265 end
266
267 fun test_super_md is test do
268 var md = """^^foo^^\n"""
269 assert md_to_md(md) == md
270 end
271 end
272
273 class TestGithubMan
274 super TestMarkdownMan
275 test
276
277 fun test_strike_man is test do
278 var md = """~~foo~~\n"""
279 var man = """\n[STRIKEOUT:foo]\n"""
280 assert md_to_man(md) == man
281 end
282
283 fun test_super_man is test do
284 var md = """^foo^\n"""
285 var man = """\nfoo\n"""
286 assert md_to_man(md) == man
287 end
288 end
289
290 class TestGithubLatex
291 super TestMarkdownLatex
292 test
293
294 fun test_strike_latex is test do
295 var md = """
296 A ~~super~~ text.
297 """
298 var tex = """
299 A \\sout{super} text.
300 """
301 assert md_to_tex(md) == tex
302 end
303
304 fun test_super_latex is test do
305 var md = """
306 A ^super^ text.
307 """
308 var tex = """
309 A \\textsuperscript{super} text.
310 """
311 assert md_to_tex(md) == tex
312 end
313 end