Separate out the external links tests
[lhc/web/wiklou.git] / maintenance / parserTests.txt
1 # MediaWiki Parser test cases
2 # see also http://meta.wikimedia.org/wiki/Parser_testing
3
4 !! test
5 Blank input
6 !! input
7 !! result
8 !! end
9
10 !! test
11 Simple paragraph
12 !! input
13 This is a simple paragraph.
14 !! result
15 <p>This is a simple paragraph.
16 </p>
17 !! end
18
19 !! test
20 Simple list
21 !! input
22 * Item 1
23 * Item 2
24 !! result
25 <ul><li> Item 1
26 </li><li> Item 2
27 </li></ul>
28 !! end
29
30 !! test
31 Italics and bold
32 !! input
33 * plain
34 * plain''italic''plain
35 * plain''italic''plain''italic''plain
36 * plain'''bold'''plain
37 * plain'''bold'''plain'''bold'''plain
38 * plain''italic''plain'''bold'''plain
39 * plain'''bold'''plain''italic''plain
40 * plain''italic'''bold-italic'''italic''plain
41 * plain'''bold''bold-italic''bold'''plain
42 * plain'''''bold-italic'''italic''plain
43 * plain'''''bold-italic''bold'''plain
44 * plain''italic'''bold-italic'''''plain
45 * plain'''bold''bold-italic'''''plain
46 * plain l'''italic''plain
47 !! result
48 <ul><li> plain
49 </li><li> plain<i>italic</i>plain
50 </li><li> plain<i>italic</i>plain<i>italic</i>plain
51 </li><li> plain<b>bold</b>plain
52 </li><li> plain<b>bold</b>plain<b>bold</b>plain
53 </li><li> plain<i>italic</i>plain<b>bold</b>plain
54 </li><li> plain<b>bold</b>plain<i>italic</i>plain
55 </li><li> plain<i>italic<b>bold-italic</b>italic</i>plain
56 </li><li> plain<b>bold<i>bold-italic</i>bold</b>plain
57 </li><li> plain<i><b>bold-italic</b>italic</i>plain
58 </li><li> plain<b><i>bold-italic</i>bold</b>plain
59 </li><li> plain<i>italic<b>bold-italic</b></i>plain
60 </li><li> plain<b>bold<i>bold-italic</i></b>plain
61 </li><li> plain l'<i>italic</i>plain
62 </li></ul>
63 !! end
64
65 ###
66 ### <nowiki> test cases
67 ###
68
69 !! test
70 <nowiki> unordered list
71 !! input
72 <nowiki>* This is not an unordered list item.</nowiki>
73 !! result
74 <p>* This is not an unordered list item.
75 </p>
76 !! end
77
78 !! test
79 <nowiki> spacing
80 !! input
81 <nowiki>Lorem ipsum dolor
82
83 sed abit.
84 sed nullum.
85
86 :and a colon
87 </nowiki>
88 !! result
89 <p>Lorem ipsum dolor
90
91 sed abit.
92 sed nullum.
93
94 :and a colon
95
96 </p>
97 !! end
98
99 !! test
100 nowiki 3
101 !! input
102 :There is not nowiki.
103 :There is <nowiki>nowiki</nowiki>.
104
105 #There is not nowiki.
106 #There is <nowiki>nowiki</nowiki>.
107
108 *There is not nowiki.
109 *There is <nowiki>nowiki</nowiki>.
110 !! result
111 <dl><dd>There is not nowiki.
112 </dd><dd>There is nowiki.
113 </dd></dl>
114 <ol><li>There is not nowiki.
115 </li><li>There is nowiki.
116 </li></ol>
117 <ul><li>There is not nowiki.
118 </li><li>There is nowiki.
119 </li></ul>
120 !! end
121
122 ###
123 ### comment test cases
124 ###
125 !! test
126 comment test 1
127 !! input
128 <!-- comment 1 --> asdf
129 <!-- comment 2 -->
130 !! result
131 <pre>asdf
132 </pre>
133 !! end
134
135 !! test
136 comment test 2
137 !! input
138 asdf
139 <!-- comment 1 -->
140 jkl
141 !! result
142 <p>asdf
143 jkl
144 </p>
145 !! end
146
147 !! test
148 comment test 3
149 !! input
150 asdf
151 <!-- comment 1 -->
152 <!-- comment 2 -->
153 jkl
154 !! result
155 <p>asdf
156 jkl
157 </p>
158 !! end
159
160 !! test
161 comment test 4
162 !! input
163 asdf<!-- comment 1 -->jkl
164 !! result
165 <p>asdfjkl
166 </p>
167 !! end
168
169 ###
170 ### External links
171 ###
172 !! test
173 External links: non-bracketed
174 !! input
175 Non-bracketed: http://example.com
176 !! result
177 <p>Non-bracketed: <a href="http://example.com" class='external'>http://example.com</a>
178 </p>
179 !! end
180
181 !! test
182 External links: numbered
183 !! input
184 Numbered: [http://example.com]
185 !! result
186 <p>Numbered: <a href="http://example.com" class='external' title="http://example.com">[1]</a><span class='urlexpansion'> (<i>http://example.com</i>)</span>
187 </p>
188 !!end
189
190 !! test
191 External links: specified text
192 !! input
193 Specified text: [http://example.com link]
194 !! result
195 <p>Specified text: <a href="http://example.com" class='external' title="http://example.com">link</a><span class='urlexpansion'> (<i>http://example.com</i>)</span>
196 </p>
197 !!end
198
199 !! test
200 External links: trail
201 !! input
202 Trail (not sure if this is meant to work): [http://example.com link]s
203 !! result
204 <p>Trail (not sure if this is meant to work): <a href="http://example.com" class='external' title="http://example.com">link</a>s<span class='urlexpansion'> (<i>http://example.com</i>)</span>
205 </p>
206 !! end
207
208 !! test
209 External links: dollar sign in URL
210 !! input
211 http://example.com/1$2345
212 !! result
213 <p><a href="http://example.com/1$2345" class='external'>http://example.com/1$2345</a>
214 </p>
215 !! end
216
217 !! test
218 External links: dollar sign in URL (named)
219 !! input
220 [http://example.com/1$2345]
221 !! result
222 <p><a href="http://example.com/1$2345" class='external' title="http://example.com/1$2345">[1]</a><span class='urlexpansion'> (<i>http://example.com/1$2345</i>)</span>
223 </p>
224 !!end
225
226 !! test
227 External image
228 !! input
229 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
230 !! result
231 <p>External image: <img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
232 </p>
233 !! end
234
235 !! test
236 External image from https
237 !! input
238 External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
239 !! result
240 <p>External image from https: <img src="https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
241 </p>
242 !! end
243
244 !! test
245 Link to non-http image, no img tag
246 !! input
247 Link to non-http image, no img tag: ftp://example.com/test.jpg
248 !! result
249 <p>Link to non-http image, no img tag: <a href="ftp://example.com/test.jpg" class='external'>ftp://example.com/test.jpg</a>
250 </p>
251 !! end
252
253 !! test
254 External links: terminating separator
255 !! input
256 Terminating separator: http://example.com/thing,
257 !! result
258 <p>Terminating separator: <a href="http://example.com/thing" class='external'>http://example.com/thing</a>,
259 </p>
260 !! end
261
262 !! test
263 External links: intervening separator
264 !! input
265 Intervening separator: http://example.com/1,2,3
266 !! result
267 <p>Intervening separator: <a href="http://example.com/1,2,3" class='external'>http://example.com/1,2,3</a>
268 </p>
269 !! end
270
271 !! test
272 External links: old bug with URL in query
273 !! input
274 Old bug with URL in query: [http://example.com/thing?url=http://example.com link]
275 !! result
276 <p>Old bug with URL in query: <a href="http://example.com/thing?url=http://example.com" class='external' title="http://example.com/thing?url=http://example.com">link</a><span class='urlexpansion'> (<i>http://example.com/thing?url=http://example.com</i>)</span>
277 </p>
278 !! end
279
280 !! test
281 External links: old URL-in-URL bug, mixed protocols
282 !! input
283 And again with mixed protocols: [ftp://example.com?url=http://example.com link]
284 !! result
285 <p>And again with mixed protocols: <a href="ftp://example.com?url=http://example.com" class='external' title="ftp://example.com?url=http://example.com">link</a><span class='urlexpansion'> (<i>ftp://example.com?url=http://example.com</i>)</span>
286 </p>
287 !!end
288
289 !! test
290 External links: URL in text
291 !! input
292 URL in text: [http://example.com http://example.com]
293 !! result
294 <p>URL in text: <a href="http://example.com" class='external'>http://example.com</a>
295 </p>
296 !! end
297
298 !! test
299 External links: Clickable images
300 !! input
301 ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png]
302 !! result
303 <p>ja-style clickable images: <a href="http://example.com" class='external' title="http://example.com"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /></a><span class='urlexpansion'> (<i>http://example.com</i>)</span>
304 </p>
305 !!end
306
307 !! test
308 External links: raw ampersand
309 !! input
310 Old &amp; use: http://x&y
311 !! result
312 <p>Old &amp; use: <a href="http://x&amp;y" class='external'>http://x&amp;y</a>
313 </p>
314 !! end
315
316
317 ###
318 ### Quotes
319 ###
320
321 !! test
322 Quotes
323 !! input
324 Normal text. '''Bold text.''' Normal text. ''Italic text.''
325
326 Normal text. '''''Bold italic text.''''' Normal text.
327 !!result
328 <p>Normal text. <b>Bold text.</b> Normal text. <i>Italic text.</i>
329 </p><p>Normal text. <i><b>Bold italic text.</b></i> Normal text.
330 </p>
331 !! end
332
333
334 !! test
335 Unclosed and unmatched quotes
336 !! input
337 '''''Bold italic text '''with bold deactivated''' in between.'''''
338
339 '''''Bold italic text ''with italic deactivated'' in between.'''''
340
341 '''Bold text..
342
343 ..spanning two paragraphs (should not work).'''
344
345 '''Bold tag left open
346
347 ''Italic tag left open
348
349 Normal text.
350
351 <!-- Unmatching number of opening, closing tags: -->
352 '''This year''''s election ''should'' beat '''last year''''s.
353
354 ''Tom'''s car is bigger than ''Susan'''s.
355 !! result
356 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
357 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
358 </p><p><b>Bold text..</b>
359 </p><p>..spanning two paragraphs (should not work).<b></b>
360 </p><p><b>Bold tag left open</b>
361 </p><p><i>Italic tag left open</i>
362 </p><p>Normal text.
363 </p><p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s.
364 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
365 </p>
366 !! end
367
368 ###
369 ### Internal links
370 ###
371 !! test
372 Internal links
373 !! input
374 Plain link, capitalized: [[Main Page]]
375
376 Plain link, uncapitalized: [[main Page]]
377 !! result
378 <p>Plain link, capitalized: <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
379 </p><p>Plain link, uncapitalized: <a href="/wiki/Main_Page" title="Main Page">main Page</a>
380 </p>
381 !! end
382
383 !! test
384 Internal links 2
385 !! disabled
386 !!input
387
388 Piped link: [[Main Page|The Main Page]]
389
390 Broken link: [[Zigzagzogzagzig]]
391
392 Link with prefix: XXX[[main Page]], XXX[[Main Page]]
393
394 Link with suffix: [[Main Page]]XXX
395
396 Link with 3 brackets: [[[main page]]]
397
398 Piped link with 3 brackets: [[[main page|the main page]]]
399
400 Link to namespaces: [[Talk:Parser testing]], [[Meta:Disclaimers]]
401
402 Piped link to namespace: [[Meta:Disclaimers|The disclaimers]]
403
404 Link to category: [[:Category:MediaWiki User's Guide]]
405
406 Link to image page: [[:Image:Ncwikicol.png]]
407
408 Plain link to URL: [[http://www.example.org]]
409
410 Piped link to URL: [[http://www.example.org|an example URL]]
411 !! result
412 </p><p>Piped link: <a href="/wiki/Main_Page">The Main Page</a></p>
413 <p>Broken link: <a href="/w/wiki.phtml?title=Zigzagzogzagzig&action=edit" class="new">Zigzagzogzagzig</a></p>
414 <p>Link with prefix: xxx<a href="/wiki/Main_Page">main Page</a>, xxx<a href="/wiki/Main_Page">Main Page</a>, Xxx<a href=
415 "/wiki/Main_Page">main Page</a> XXX<a href="/wiki/Main_Page">main Page</a>, XXX<a href="/wiki/Main_Page">Main Page</a></p>
416 <p>Link with suffix: <a href="/wiki/Main_Page">Main Pagexxx</a>, <a href="/wiki/Main_Page">Main Page</a>XXX</p>
417 <p>Link with 3 brackets: [[[main page]]]</p>
418 <p>Piped link with 3 brackets: [[[main page|the main page]]]</p>
419 <p>Link to namespaces: <a href="/w/wiki.phtml?title=Talk:Parser_testing&action=edit" class="new">Talk:Parser testing</a>,
420 <a href="/w/wiki.phtml?title=Meta:Disclaimers&action=edit" class="new">Meta:Disclaimers</a></p>
421 <p>Piped link to namespace: <a href="/w/wiki.phtml?title=Meta:Disclaimers&action=edit" class="new">The disclaimers</a></p>
422 <p>Link to category: <a href="/wiki/Category:MediaWiki_User%27s_Guide">Category:MediaWiki User's Guide</a></p>
423 <p>Link to image page: <a href="/wiki/Image:Ncwikicol.png">Image:Ncwikicol.png</a></p>
424 <p>Plain link to URL: [<a href='http://www.example.org' class='external'>[1]</a> <span class=
425 'urlexpansion'>(<i>http://www.example.org</i>)</span>]</p>
426 <p>Piped link to URL: <a href="/w/wiki.phtml?title=Http://www.example.org&action=edit" class="new">an example URL</a></p>
427 !! end