1 # This file is part of NIT ( http://www.nitlanguage.org ).
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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.
15 module test_commonmark_links
is test
19 class TestCommonmarkLinks
20 super TestMarkdownHtml
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
125 fun test480
is test
do
126 var md
= """[link](/url "title \\""")\n"""
127 var html
= """<p><a href="/url" title="title """>link</a></p>\n"""
128 assert md_to_html
(md
) == html
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
137 fun test482
is test
do
138 var md
= """[link](/url "title "and" title")\n"""
139 var html
= """<p>[link](/url "title "and" title")</p>\n"""
140 assert md_to_html
(md
) == html
143 fun test483
is test
do
144 var md
= """[link](/url 'title "and" title')\n"""
145 var html
= """<p><a href="/url" title="title "and" title">link</a></p>\n"""
146 assert md_to_html
(md
) == html
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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