scope: refuse `&x` where x is a local variable
[nit.git] / lib / markdown2 / tests / test_markdown_wikilinks.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 Wikilinks mode
16 module test_markdown_wikilinks 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 do
26 var parser = super
27 parser.wikilinks_mode = true
28 return parser
29 end
30 end
31
32 class TestWikilinksLocation
33 super TestMarkdownLocation
34 test
35
36 fun test_wikilinks1 is test do
37 var md = """
38 A [[wiki link]] and text.
39 """
40 var loc = """
41 MdDocument: 1,1--1,25
42 MdParagraph: 1,1--1,25
43 MdText: 1,1--1,2
44 MdWikilink: 1,3--1,15
45 MdText: 1,5--1,13
46 MdText: 1,16--1,25
47 """
48 assert md_to_loc(md) == loc
49 end
50
51 fun test_wikilinks2 is test do
52 var md = """
53 A [[wiki: link | with: more, args: end]] and text.
54 """
55 var loc = """
56 MdDocument: 1,1--1,50
57 MdParagraph: 1,1--1,50
58 MdText: 1,1--1,2
59 MdWikilink: 1,3--1,40
60 MdText: 1,5--1,38
61 MdText: 1,41--1,50
62 """
63 assert md_to_loc(md) == loc
64 end
65
66 end
67
68 class TestWikilinksHtml
69 super TestMarkdownHtml
70 test
71
72 fun test_wikilinks1 is test do
73 var md = """[[foo]]\n"""
74 var html = """<p><wiki link="foo">foo</wiki></p>\n"""
75 assert md_to_html(md) == html
76 end
77
78 fun test_wikilinks2 is test do
79 var md = """[[foo | bar baz]]\n"""
80 var html = """<p><wiki link="bar%20baz">foo</wiki></p>\n"""
81 assert md_to_html(md) == html
82 end
83
84 fun test_wikilinks3 is test do
85 var md = """This is a [[link]] and this is another [[one]].\n"""
86 var html = """<p>This is a <wiki link="link">link</wiki> and this is another <wiki link="one">one</wiki>.</p>\n"""
87 assert md_to_html(md) == html
88 end
89
90 fun test_wikilinks4 is test do
91 var md = """[[very: complex | link: with, more: options]]\n"""
92 var html = """<p><wiki link="link:%20with,%20more:%20options">very: complex</wiki></p>\n"""
93 assert md_to_html(md) == html
94 end
95
96 fun test_wikilink_bad1 is test do
97 var md = """Not a [wikilink]].\n"""
98 var html = """<p>Not a [wikilink]].</p>\n"""
99 assert md_to_html(md) == html
100 end
101
102 fun test_wikilink_bad2 is test do
103 var md = """Not a [[wikilink].\n"""
104 var html = """<p>Not a [[wikilink].</p>\n"""
105 assert md_to_html(md) == html
106 end
107
108 fun test_wikilink_bad3 is test do
109 var md = """Not a ![[wikilink]].\n"""
110 var html = """<p>Not a ![[wikilink]].</p>\n"""
111 assert md_to_html(md) == html
112 end
113
114 fun test_wikilink_bad4 is test do
115 var md = """Not a [wikilink].\n"""
116 var html = """<p>Not a [wikilink].</p>\n"""
117 assert md_to_html(md) == html
118 end
119
120 fun test_link is test do
121 var md = """A standard [link](url).\n"""
122 var html = """<p>A standard <a href="url">link</a>.</p>\n"""
123 assert md_to_html(md) == html
124 end
125
126 fun test_image is test do
127 var md = """A standard ![image](url).\n"""
128 var html = """<p>A standard <img src="url" alt="image" />.</p>\n"""
129 assert md_to_html(md) == html
130 end
131
132 fun test_link_ref1 is test do
133 var md = """A standard [link definition].\n\n[link definition]: url\n"""
134 var html = """<p>A standard <a href="url">link definition</a>.</p>\n"""
135 assert md_to_html(md) == html
136 end
137
138 fun test_link_ref2 is test do
139 var md = """[[wikilinks]] are not \n\n[[link definition]]: url\n"""
140 var html = """<p><wiki link="wikilinks">wikilinks</wiki> are not</p>\n<p><wiki link="link%20definition">link definition</wiki>: url</p>\n"""
141 assert md_to_html(md) == html
142 end
143 end
144
145 class TestWikilinksMd
146 super TestMarkdownMd
147 test
148
149 fun test_wikilinks_md1 is test do
150 var md = """[[foo]]\n"""
151 assert md_to_md(md) == md
152 end
153
154 fun test_wikilinks_md2 is test do
155 var md = """[[foo: bar | baz: b, c: d]]\n"""
156 assert md_to_md(md) == md
157 end
158 end
159
160 class TestWikilinksMan
161 super TestMarkdownMan
162 test
163
164 fun test_wikilinks_man is test do
165 var md = """[[foo]]\n"""
166 var man = """\n(foo)\n"""
167 assert md_to_man(md) == man
168 end
169 end
170
171 class TestWikilinksLatex
172 super TestMarkdownLatex
173 test
174
175 fun test_wikilinks_latex is test do
176 var md = """[[foo]]\n"""
177 var tex = """\\texttt{foo}\n"""
178 assert md_to_tex(md) == tex
179 end
180 end