lib/core/stream: LineIterator use CachedIterator
[nit.git] / lib / markdown2 / tests / test_commonmark_links.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 module test_commonmark_links is test
16
17 import test_markdown
18
19 class TestCommonmarkLinks
20 super TestMarkdownHtml
21 test
22
23 fun test462 is test do
24 var md = """[link](/uri "title")\n"""
25 var html = """<p><a href="/uri" title="title">link</a></p>\n"""
26 assert md_to_html(md) == html
27 end
28
29 fun test463 is test do
30 var md = """[link](/uri)\n"""
31 var html = """<p><a href="/uri">link</a></p>\n"""
32 assert md_to_html(md) == html
33 end
34
35 fun test464 is test do
36 var md = """[link]()\n"""
37 var html = """<p><a href="">link</a></p>\n"""
38 assert md_to_html(md) == html
39 end
40
41 fun test465 is test do
42 var md = """[link](<>)\n"""
43 var html = """<p><a href="">link</a></p>\n"""
44 assert md_to_html(md) == html
45 end
46
47 fun test466 is test do
48 var md = """[link](/my uri)\n"""
49 var html = """<p>[link](/my uri)</p>\n"""
50 assert md_to_html(md) == html
51 end
52
53 fun test467 is test do
54 var md = """[link](</my%20uri>)\n"""
55 var html = """<p><a href="/my%20uri">link</a></p>\n"""
56 assert md_to_html(md) == html
57 end
58
59 fun test468 is test do
60 var md = """[link](foo\nbar)\n"""
61 var html = """<p>[link](foo\nbar)</p>\n"""
62 assert md_to_html(md) == html
63 end
64
65 fun test469 is test do
66 var md = """[link](<foo\nbar>)\n"""
67 var html = """<p>[link](<foo\nbar>)</p>\n"""
68 assert md_to_html(md) == html
69 end
70
71 fun test470 is test do
72 var md = """[link](\\(foo\\))\n"""
73 var html = """<p><a href="(foo)">link</a></p>\n"""
74 assert md_to_html(md) == html
75 end
76
77 fun test471 is test do
78 var md = """[link](foo(and(bar)))\n"""
79 var html = """<p><a href="foo(and(bar))">link</a></p>\n"""
80 assert md_to_html(md) == html
81 end
82
83 fun test472 is test do
84 var md = """[link](foo\\(and\\(bar\\))\n"""
85 var html = """<p><a href="foo(and(bar)">link</a></p>\n"""
86 assert md_to_html(md) == html
87 end
88
89 fun test473 is test do
90 var md = """[link](<foo(and(bar)>)\n"""
91 var html = """<p><a href="foo(and(bar)">link</a></p>\n"""
92 assert md_to_html(md) == html
93 end
94
95 fun test474 is test do
96 var md = """[link](foo\\)\\:)\n"""
97 var html = """<p><a href="foo):">link</a></p>\n"""
98 assert md_to_html(md) == html
99 end
100
101 fun test475 is test do
102 var md = """[link](#fragment)\n\n[link](http://example.com#fragment)\n\n[link](http://example.com?foo=3#frag)\n"""
103 var html = """<p><a href="#fragment">link</a></p>\n<p><a href="http://example.com#fragment">link</a></p>\n<p><a href="http://example.com?foo=3#frag">link</a></p>\n"""
104 assert md_to_html(md) == html
105 end
106
107 fun test476 is test do
108 var md = """[link](foo\\bar)\n"""
109 var html = """<p><a href="foo%5Cbar">link</a></p>\n"""
110 assert md_to_html(md) == html
111 end
112
113 fun test478 is test do
114 var md = """[link]("title")\n"""
115 var html = """<p><a href="%22title%22">link</a></p>\n"""
116 assert md_to_html(md) == html
117 end
118
119 fun test479 is test do
120 var md = """[link](/url "title")\n[link](/url 'title')\n[link](/url (title))\n"""
121 var html = """<p><a href="/url" title="title">link</a>\n<a href="/url" title="title">link</a>\n<a href="/url" title="title">link</a></p>\n"""
122 assert md_to_html(md) == html
123 end
124
125 fun test480 is test do
126 var md = """[link](/url "title \\"&quot;")\n"""
127 var html = """<p><a href="/url" title="title &quot;&quot;">link</a></p>\n"""
128 assert md_to_html(md) == html
129 end
130
131 fun test481 is test do
132 var md = """[link](/urlĀ "title")\n"""
133 var html = """<p><a href="/url%C2%A0%22title%22">link</a></p>\n"""
134 assert md_to_html(md) == html
135 end
136
137 fun test482 is test do
138 var md = """[link](/url "title "and" title")\n"""
139 var html = """<p>[link](/url &quot;title &quot;and&quot; title&quot;)</p>\n"""
140 assert md_to_html(md) == html
141 end
142
143 fun test483 is test do
144 var md = """[link](/url 'title "and" title')\n"""
145 var html = """<p><a href="/url" title="title &quot;and&quot; title">link</a></p>\n"""
146 assert md_to_html(md) == html
147 end
148
149 fun test484 is test do
150 var md = """[link]( /uri\n "title" )\n"""
151 var html = """<p><a href="/uri" title="title">link</a></p>\n"""
152 assert md_to_html(md) == html
153 end
154
155 fun test485 is test do
156 var md = """[link] (/uri)\n"""
157 var html = """<p>[link] (/uri)</p>\n"""
158 assert md_to_html(md) == html
159 end
160
161 fun test486 is test do
162 var md = """[link [foo [bar]]](/uri)\n"""
163 var html = """<p><a href="/uri">link [foo [bar]]</a></p>\n"""
164 assert md_to_html(md) == html
165 end
166
167 fun test487 is test do
168 var md = """[link] bar](/uri)\n"""
169 var html = """<p>[link] bar](/uri)</p>\n"""
170 assert md_to_html(md) == html
171 end
172
173 fun test488 is test do
174 var md = """[link [bar](/uri)\n"""
175 var html = """<p>[link <a href="/uri">bar</a></p>\n"""
176 assert md_to_html(md) == html
177 end
178
179 fun test489 is test do
180 var md = """[link \\[bar](/uri)\n"""
181 var html = """<p><a href="/uri">link [bar</a></p>\n"""
182 assert md_to_html(md) == html
183 end
184
185 fun test490 is test do
186 var md = """[link *foo **bar** `#`*](/uri)\n"""
187 var html = """<p><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>\n"""
188 assert md_to_html(md) == html
189 end
190
191 fun test491 is test do
192 var md = """[![moon](moon.jpg)](/uri)\n"""
193 var html = """<p><a href="/uri"><img src="moon.jpg" alt="moon" /></a></p>\n"""
194 assert md_to_html(md) == html
195 end
196
197 fun test492 is test do
198 var md = """[foo [bar](/uri)](/uri)\n"""
199 var html = """<p>[foo <a href="/uri">bar</a>](/uri)</p>\n"""
200 assert md_to_html(md) == html
201 end
202
203 fun test493 is test do
204 var md = """[foo *[bar [baz](/uri)](/uri)*](/uri)\n"""
205 var html = """<p>[foo <em>[bar <a href="/uri">baz</a>](/uri)</em>](/uri)</p>\n"""
206 assert md_to_html(md) == html
207 end
208
209 fun test494 is test do
210 var md = """![[[foo](uri1)](uri2)](uri3)\n"""
211 var html = """<p><img src="uri3" alt="[foo](uri2)" /></p>\n"""
212 assert md_to_html(md) == html
213 end
214
215 fun test495 is test do
216 var md = """*[foo*](/uri)\n"""
217 var html = """<p>*<a href="/uri">foo*</a></p>\n"""
218 assert md_to_html(md) == html
219 end
220
221 fun test496 is test do
222 var md = """[foo *bar](baz*)\n"""
223 var html = """<p><a href="baz*">foo *bar</a></p>\n"""
224 assert md_to_html(md) == html
225 end
226
227 fun test497 is test do
228 var md = """*foo [bar* baz]\n"""
229 var html = """<p><em>foo [bar</em> baz]</p>\n"""
230 assert md_to_html(md) == html
231 end
232
233 fun test498 is test do
234 var md = """[foo <bar attr="](baz)">\n"""
235 var html = """<p>[foo <bar attr="](baz)"></p>\n"""
236 assert md_to_html(md) == html
237 end
238
239 fun test499 is test do
240 var md = """[foo`](/uri)`\n"""
241 var html = """<p>[foo<code>](/uri)</code></p>\n"""
242 assert md_to_html(md) == html
243 end
244
245 fun test500 is test do
246 var md = """[foo<http://example.com/?search=](uri)>\n"""
247 var html = """<p>[foo<a href="http://example.com/?search=%5D(uri)">http://example.com/?search=](uri)</a></p>\n"""
248 assert md_to_html(md) == html
249 end
250
251 fun test501 is test do
252 var md = """[foo][bar]\n\n[bar]: /url "title"\n"""
253 var html = """<p><a href="/url" title="title">foo</a></p>\n"""
254 assert md_to_html(md) == html
255 end
256
257 fun test502 is test do
258 var md = """[link [foo [bar]]][ref]\n\n[ref]: /uri\n"""
259 var html = """<p><a href="/uri">link [foo [bar]]</a></p>\n"""
260 assert md_to_html(md) == html
261 end
262
263 fun test503 is test do
264 var md = """[link \\[bar][ref]\n\n[ref]: /uri\n"""
265 var html = """<p><a href="/uri">link [bar</a></p>\n"""
266 assert md_to_html(md) == html
267 end
268
269 fun test504 is test do
270 var md = """[link *foo **bar** `#`*][ref]\n\n[ref]: /uri\n"""
271 var html = """<p><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>\n"""
272 assert md_to_html(md) == html
273 end
274
275 fun test505 is test do
276 var md = """[![moon](moon.jpg)][ref]\n\n[ref]: /uri\n"""
277 var html = """<p><a href="/uri"><img src="moon.jpg" alt="moon" /></a></p>\n"""
278 assert md_to_html(md) == html
279 end
280
281 fun test506 is test do
282 var md = """[foo [bar](/uri)][ref]\n\n[ref]: /uri\n"""
283 var html = """<p>[foo <a href="/uri">bar</a>]<a href="/uri">ref</a></p>\n"""
284 assert md_to_html(md) == html
285 end
286
287 fun test507 is test do
288 var md = """[foo *bar [baz][ref]*][ref]\n\n[ref]: /uri\n"""
289 var html = """<p>[foo <em>bar <a href="/uri">baz</a></em>]<a href="/uri">ref</a></p>\n"""
290 assert md_to_html(md) == html
291 end
292
293 fun test508 is test do
294 var md = """*[foo*][ref]\n\n[ref]: /uri\n"""
295 var html = """<p>*<a href="/uri">foo*</a></p>\n"""
296 assert md_to_html(md) == html
297 end
298
299 fun test509 is test do
300 var md = """[foo *bar][ref]\n\n[ref]: /uri\n"""
301 var html = """<p><a href="/uri">foo *bar</a></p>\n"""
302 assert md_to_html(md) == html
303 end
304
305 fun test510 is test do
306 var md = """[foo <bar attr="][ref]">\n\n[ref]: /uri\n"""
307 var html = """<p>[foo <bar attr="][ref]"></p>\n"""
308 assert md_to_html(md) == html
309 end
310
311 fun test511 is test do
312 var md = """[foo`][ref]`\n\n[ref]: /uri\n"""
313 var html = """<p>[foo<code>][ref]</code></p>\n"""
314 assert md_to_html(md) == html
315 end
316
317 fun test512 is test do
318 var md = """[foo<http://example.com/?search=][ref]>\n\n[ref]: /uri\n"""
319 var html = """<p>[foo<a href="http://example.com/?search=%5D%5Bref%5D">http://example.com/?search=][ref]</a></p>\n"""
320 assert md_to_html(md) == html
321 end
322
323 fun test513 is test do
324 var md = """[foo][BaR]\n\n[bar]: /url "title"\n"""
325 var html = """<p><a href="/url" title="title">foo</a></p>\n"""
326 assert md_to_html(md) == html
327 end
328
329 fun test515 is test do
330 var md = """[Foo\n bar]: /url\n\n[Baz][Foo bar]\n"""
331 var html = """<p><a href="/url">Baz</a></p>\n"""
332 assert md_to_html(md) == html
333 end
334
335 fun test516 is test do
336 var md = """[foo] [bar]\n\n[bar]: /url "title"\n"""
337 var html = """<p>[foo] <a href="/url" title="title">bar</a></p>\n"""
338 assert md_to_html(md) == html
339 end
340
341 fun test517 is test do
342 var md = """[foo]\n[bar]\n\n[bar]: /url "title"\n"""
343 var html = """<p>[foo]\n<a href="/url" title="title">bar</a></p>\n"""
344 assert md_to_html(md) == html
345 end
346
347 fun test518 is test do
348 var md = """[foo]: /url1\n\n[foo]: /url2\n\n[bar][foo]\n"""
349 var html = """<p><a href="/url1">bar</a></p>\n"""
350 assert md_to_html(md) == html
351 end
352
353 fun test519 is test do
354 var md = """[bar][foo\\!]\n\n[foo!]: /url\n"""
355 var html = """<p>[bar][foo!]</p>\n"""
356 assert md_to_html(md) == html
357 end
358
359 fun test520 is test do
360 var md = """[foo][ref[]\n\n[ref[]: /uri\n"""
361 var html = """<p>[foo][ref[]</p>\n<p>[ref[]: /uri</p>\n"""
362 assert md_to_html(md) == html
363 end
364
365 fun test521 is test do
366 var md = """[foo][ref[bar]]\n\n[ref[bar]]: /uri\n"""
367 var html = """<p>[foo][ref[bar]]</p>\n<p>[ref[bar]]: /uri</p>\n"""
368 assert md_to_html(md) == html
369 end
370
371 fun test522 is test do
372 var md = """[[[foo]]]\n\n[[[foo]]]: /url\n"""
373 var html = """<p>[[[foo]]]</p>\n<p>[[[foo]]]: /url</p>\n"""
374 assert md_to_html(md) == html
375 end
376
377 fun test523 is test do
378 var md = """[foo][ref\\[]\n\n[ref\\[]: /uri\n"""
379 var html = """<p><a href="/uri">foo</a></p>\n"""
380 assert md_to_html(md) == html
381 end
382
383 fun test524 is test do
384 var md = """[bar\\\\]: /uri\n\n[bar\\\\]\n"""
385 var html = """<p><a href="/uri">bar\\</a></p>\n"""
386 assert md_to_html(md) == html
387 end
388
389 fun test525 is test do
390 var md = """[]\n\n[]: /uri\n"""
391 var html = """<p>[]</p>\n<p>[]: /uri</p>\n"""
392 assert md_to_html(md) == html
393 end
394
395 fun test526 is test do
396 var md = """[\n ]\n\n[\n ]: /uri\n"""
397 var html = """<p>[\n]</p>\n<p>[\n]: /uri</p>\n"""
398 assert md_to_html(md) == html
399 end
400
401 fun test527 is test do
402 var md = """[foo][]\n\n[foo]: /url "title"\n"""
403 var html = """<p><a href="/url" title="title">foo</a></p>\n"""
404 assert md_to_html(md) == html
405 end
406
407 fun test528 is test do
408 var md = """[*foo* bar][]\n\n[*foo* bar]: /url "title"\n"""
409 var html = """<p><a href="/url" title="title"><em>foo</em> bar</a></p>\n"""
410 assert md_to_html(md) == html
411 end
412
413 fun test529 is test do
414 var md = """[Foo][]\n\n[foo]: /url "title"\n"""
415 var html = """<p><a href="/url" title="title">Foo</a></p>\n"""
416 assert md_to_html(md) == html
417 end
418
419 fun test530 is test do
420 var md = """[foo] \n[]\n\n[foo]: /url "title"\n"""
421 var html = """<p><a href="/url" title="title">foo</a>\n[]</p>\n"""
422 assert md_to_html(md) == html
423 end
424
425 fun test531 is test do
426 var md = """[foo]\n\n[foo]: /url "title"\n"""
427 var html = """<p><a href="/url" title="title">foo</a></p>\n"""
428 assert md_to_html(md) == html
429 end
430
431 fun test532 is test do
432 var md = """[*foo* bar]\n\n[*foo* bar]: /url "title"\n"""
433 var html = """<p><a href="/url" title="title"><em>foo</em> bar</a></p>\n"""
434 assert md_to_html(md) == html
435 end
436
437 fun test533 is test do
438 var md = """[[*foo* bar]]\n\n[*foo* bar]: /url "title"\n"""
439 var html = """<p>[<a href="/url" title="title"><em>foo</em> bar</a>]</p>\n"""
440 assert md_to_html(md) == html
441 end
442
443 fun test534 is test do
444 var md = """[[bar [foo]\n\n[foo]: /url\n"""
445 var html = """<p>[[bar <a href="/url">foo</a></p>\n"""
446 assert md_to_html(md) == html
447 end
448
449 fun test535 is test do
450 var md = """[Foo]\n\n[foo]: /url "title"\n"""
451 var html = """<p><a href="/url" title="title">Foo</a></p>\n"""
452 assert md_to_html(md) == html
453 end
454
455 fun test536 is test do
456 var md = """[foo] bar\n\n[foo]: /url\n"""
457 var html = """<p><a href="/url">foo</a> bar</p>\n"""
458 assert md_to_html(md) == html
459 end
460
461 fun test537 is test do
462 var md = """\\[foo]\n\n[foo]: /url "title"\n"""
463 var html = """<p>[foo]</p>\n"""
464 assert md_to_html(md) == html
465 end
466
467 fun test538 is test do
468 var md = """[foo*]: /url\n\n*[foo*]\n"""
469 var html = """<p>*<a href="/url">foo*</a></p>\n"""
470 assert md_to_html(md) == html
471 end
472
473 fun test539 is test do
474 var md = """[foo][bar]\n\n[foo]: /url1\n[bar]: /url2\n"""
475 var html = """<p><a href="/url2">foo</a></p>\n"""
476 assert md_to_html(md) == html
477 end
478
479 fun test540 is test do
480 var md = """[foo][]\n\n[foo]: /url1\n"""
481 var html = """<p><a href="/url1">foo</a></p>\n"""
482 assert md_to_html(md) == html
483 end
484
485 fun test541 is test do
486 var md = """[foo]()\n\n[foo]: /url1\n"""
487 var html = """<p><a href="">foo</a></p>\n"""
488 assert md_to_html(md) == html
489 end
490
491 fun test542 is test do
492 var md = """[foo](not a link)\n\n[foo]: /url1\n"""
493 var html = """<p><a href="/url1">foo</a>(not a link)</p>\n"""
494 assert md_to_html(md) == html
495 end
496
497 fun test543 is test do
498 var md = """[foo][bar][baz]\n\n[baz]: /url\n"""
499 var html = """<p>[foo]<a href="/url">bar</a></p>\n"""
500 assert md_to_html(md) == html
501 end
502
503 fun test544 is test do
504 var md = """[foo][bar][baz]\n\n[baz]: /url1\n[bar]: /url2\n"""
505 var html = """<p><a href="/url2">foo</a><a href="/url1">baz</a></p>\n"""
506 assert md_to_html(md) == html
507 end
508
509 fun test545 is test do
510 var md = """[foo][bar][baz]\n\n[baz]: /url1\n[foo]: /url2\n"""
511 var html = """<p>[foo]<a href="/url1">bar</a></p>\n"""
512 assert md_to_html(md) == html
513 end
514 end