!! end
+# Expected output in the following test is not really expected (there should be
+# <pre> in the output) -- it's only testing for well-formedness.
+!! test
+Bug 6200: Preformatted in <blockquote>
+!! input
+<blockquote>
+ Blah
+</blockquote>
+!! result
+<blockquote>
+ Blah
+</blockquote>
+
+!! end
+
!! test
<pre> with attributes (bug 3202)
!! input
!! input
<pre width="8" style="border-width: expression(alert(document.cookie))">Narrow screen goodies</pre>
!! result
-<pre width="8">Narrow screen goodies</pre>
+<pre width="8" style="/* insecure input */">Narrow screen goodies</pre>
!! end
!! input
; name : Definition
!! result
-<dl><dt> name </dt><dd> Definition
+<dl><dt> name </dt><dd> Definition
</dd></dl>
!! end
!! input
; http://example.com/ : definition
!! result
-<dl><dt> <a href="http://example.com/" class="external free" rel="nofollow">http://example.com/</a> </dt><dd> definition
+<dl><dt> <a href="http://example.com/" class="external free" rel="nofollow">http://example.com/</a> </dt><dd> definition
</dd></dl>
!! end
!! input
; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up
!! result
-<dl><dt> <a href="http://www.wikipedia2.org/" class="external text" rel="nofollow">Wikipedia : The Next Generation</a></dt><dd> OK, I made that up
+<dl><dt> <a href="http://www.wikipedia2.org/" class="external text" rel="nofollow">Wikipedia : The Next Generation</a></dt><dd> OK, I made that up
</dd></dl>
!! end
!! input
;one<br/>two : two-line fun
!! result
-<dl><dt>one<br />two </dt><dd> two-line fun
+<dl><dt>one<br />two </dt><dd> two-line fun
</dd></dl>
!! end
</p>
!!end
-!! test
-External links: invalid character
-Fixme: the missing char seems to have gone missing
-!! options
-disabled
-!! input
-[http://www.example.com test]
-!! result
-<p>[<a href="http://www.example.com" class="external free" rel="nofollow">http://www.example.com</a> test]
-</p>
-!! end
-
!! test
External links: multiple legal whitespace is fine, Magnus. Don't break it please. (bug 5081)
!! input
</p>
!! end
+!! test
+External link containing double-single-quotes with no space separating the url from text in italics
+!! input
+[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].]
+!! result
+<p><a href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm" class="external text" rel="nofollow"><i>La muerte de Casagemas</i> (1901) en el sitio de <a href="/index.php?title=Museo_Picasso_(Par%C3%ADs)&action=edit&redlink=1" class="new" title="Museo Picasso (París) (page does not exist)">Museo Picasso</a>.</a>
+</p>
+!! end
+
!! test
URL-encoding in URL functions (single parameter)
!! input
!! result
<table>
<tr>
-<td> 1 </td><td> 2
+<td> 1 </td>
+<td> 2
</td></tr>
<tr>
-<td> 3 </td><td> 4
+<td> 3 </td>
+<td> 4
</td></tr></table>
!! end
<caption>Multiplication table
</caption>
<tr>
-<th> × </th><th> 1 </th><th> 2 </th><th> 3
+<th> × </th>
+<th> 1 </th>
+<th> 2 </th>
+<th> 3
</th></tr>
<tr>
<th> 1
-</th><td> 1 </td><td> 2 </td><td> 3
+</th>
+<td> 1 </td>
+<td> 2 </td>
+<td> 3
</td></tr>
<tr>
<th> 2
-</th><td> 2 </td><td> 4 </td><td> 6
+</th>
+<td> 2 </td>
+<td> 4 </td>
+<td> 6
</td></tr>
<tr>
<th> 3
-</th><td> 3 </td><td> 6 </td><td> 9
+</th>
+<td> 3 </td>
+<td> 6 </td>
+<td> 9
</td></tr>
<tr>
<th> 4
-</th><td> 4 </td><td> 8 </td><td> 12
+</th>
+<td> 4 </td>
+<td> 8 </td>
+<td> 12
</td></tr>
<tr>
<th> 5
-</th><td> 5 </td><td> 10 </td><td> 15
+</th>
+<td> 5 </td>
+<td> 10 </td>
+<td> 15
</td></tr></table>
!! end
<table align="right" border="1">
<tr>
<td> Cell 1, row 1
-</td><td rowspan="2"> Cell 2, row 1 (and 2)
-</td><td> Cell 3, row 1
+</td>
+<td rowspan="2"> Cell 2, row 1 (and 2)
+</td>
+<td> Cell 3, row 1
</td></tr>
<tr>
<td> Cell 1, row 2
-</td><td> Cell 3, row 2
+</td>
+<td> Cell 3, row 2
</td></tr></table>
!! end
<table border="1">
<tr>
<td> α
-</td><td>
+</td>
+<td>
<table bgcolor="#ABCDEF" border="2">
<tr>
<td>nested
<tr>
<td>table
</td></tr></table>
-</td><td>the original table again
+</td>
+<td>the original table again
</td></tr></table>
!! end
!! end
-# FIXME: It's not clear at all that this is the result we want, but the actual
-# output right now is invalid XML, so clearly something is wrong. The result
-# specified here is now valid XML, which is an improvement . . .
!! test
Table security: embedded pipes (http://lists.wikimedia.org/mailman/htdig/wikitech-l/2006-April/022293.html)
-!! options
-disabled
!! input
{|
| |[ftp://|x||]" onmouseover="alert(document.cookie)">test
!! result
<table>
<tr>
-<td><a href="ftp://|x||" class="external autonumber" title="ftp://|x||" rel="nofollow">[1]</a></td><td>" onmouseover="alert(document.cookie)">test
+<td>[<a href="ftp://%7Cx" class="external free" rel="nofollow">ftp://%7Cx</a></td>
+<td>]" onmouseover="alert(document.cookie)">test
</td>
</tr>
</table>
!! test
Link containing double-single-quotes '' (bug 4598)
-!! options
-disabled
!! input
[[Lista d''e paise d''o munno]]
!! result
-<p><a href="/index.php?title=Lista_d%27%27e_paise_d%27%27o_munno&action=edit" class="new" title="Lista d''e paise d''o munno">Lista d''e paise d''o munno</a>
+<p><a href="/index.php?title=Lista_d%27%27e_paise_d%27%27o_munno&action=edit&redlink=1" class="new" title="Lista d''e paise d''o munno (page does not exist)">Lista d''e paise d''o munno</a>
</p>
!! end
!! input
''Some [[Link|pretty ''italics'' and stuff]]!
!! result
-<p><i>Some </i><a href="/index.php?title=Link&action=edit&redlink=1" class="new" title="Link (page does not exist)"><i>pretty </i>italics<i> and stuff</i></a><i>!</i>
+<p><i>Some <a href="/index.php?title=Link&action=edit&redlink=1" class="new" title="Link (page does not exist)">pretty <i>italics</i> and stuff</a>!</i>
+</p>
+!! end
+
+!! test
+Link with double quotes in title part (literal) and alternate part (interpreted)
+!! input
+[[File:Denys Savchenko ''Pentecoste''.jpg]]
+
+[[''Pentecoste'']]
+
+[[''Pentecoste''|Pentecoste]]
+
+[[''Pentecoste''|''Pentecoste'']]
+!! result
+<p><a href="/index.php?title=Special:Upload&wpDestFile=Denys_Savchenko_%27%27Pentecoste%27%27.jpg" class="new" title="File:Denys Savchenko ''Pentecoste''.jpg">File:Denys Savchenko <i>Pentecoste</i>.jpg</a>
+</p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)">''Pentecoste''</a>
+</p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)">Pentecoste</a>
+</p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)"><i>Pentecoste</i></a>
</p>
!! end
!! input
Piped link to URL: [[http://www.example.com|an example URL]]
!! result
-<p>Piped link to URL: [<a href="http://www.example.com|an" class="external text" rel="nofollow">example URL</a>]
+<p>Piped link to URL: [<a href="http://www.example.com%7Can" class="external text" rel="nofollow">example URL</a>]
</p>
!! end
</p>
!! end
-!! test
-Magic Word: {{NUMBEROFARTICLES}}
-!! input
-{{NUMBEROFARTICLES}}
-!! result
-<p>2
-</p>
-!! end
-
!! test
Magic Word: {{NUMBEROFFILES}}
!! input
!! end
+!! test
+Urlencode
+!! input
+{{urlencode:hi world?!}}
+{{urlencode:hi world?!|WIKI}}
+{{urlencode:hi world?!|PATH}}
+{{urlencode:hi world?!|QUERY}}
+!! result
+<p>hi+world%3F%21
+hi_world%3F!
+hi%20world%3F%21
+hi+world%3F%21
+</p>
+!! end
+
###
### Magic links
###
</p>
<table>
<tr>
-<td> 1 </td><td> 2
+<td> 1 </td>
+<td> 2
</td></tr>
<tr>
-<td> 3 </td><td> 4
+<td> 3 </td>
+<td> 4
</td></tr></table>
!! end
</p>
<table>
<tr>
-<td> 1 </td><td> 2
+<td> 1 </td>
+<td> 2
</td></tr>
<tr>
-<td> 3 </td><td> 4
+<td> 3 </td>
+<td> 4
</td></tr></table>
!! end
Template:MSGNW test
!! text
''None'' of '''this''' should be
-* interepreted
+* interpreted
but rather passed unmodified
{{test}}
!! endarticle
{{msgnw:MSGNW test}}
!! result
<p>''None'' of '''this''' should be
-* interepreted
+* interpreted
but rather passed unmodified
{{test}}
</p>
Foo
!! end
+!! article
+Template:SubstTest
+!!text
+{{<includeonly>subst:</includeonly>Includes}}
+!! endarticle
+
+!! article
+Template:SafeSubstTest
+!! text
+{{<includeonly>safesubst:</includeonly>Includes}}
+!! endarticle
+
+!! test
+bug 22297: safesubst: works during PST
+!! options
+pst
+!! input
+{{subst:SafeSubstTest}}{{safesubst:SubstTest}}
+!! result
+FoobarFoobar
+!! end
+
+!! test
+bug 22297: safesubst: works during normal parse
+!! input
+{{SafeSubstTest}}
+!! result
+<p>Foobar
+</p>
+!! end
+
+!! test:
+subst: does not work during normal parse
+!! input
+{{SubstTest}}
+!! result
+<p>{{subst:Includes}}
+</p>
+!! end
+
!! test
pre-save transform: context links ("pipe trick")
!! options
Special:RecentChanges
!! end
+!! test
+{{#special:}} page name with subpage, known
+!! options
+msg
+!! input
+{{#special:Recentchanges/param}}
+!! result
+Special:RecentChanges/param
+!! end
+
!! test
{{#special:}} page name, unknown
!! options
</p>
!! end
+!! test
+Thumbnail image with link parameter
+!! input
+[[Image:foobar.jpg|thumb|link=http://example.com/|Title]]
+!! result
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="http://example.com/"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+!! end
!! test
Image with frame and link
</p>
!! end
+!! test
+bug 18784 Link to non-existent image page with caption should use caption as link text
+!! input
+[[:Image:test|caption]]
+!! result
+<p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">caption</a>
+</p>
+!! end
+
!! test
Frameless image caption with a free URL
!! input
</p>
!!end
+!! test
+Short headings with trailing space should match behaviour of Parser::doHeadings (bug 19910)
+!! input
+===
+The line above must have a trailing space!
+=== <!--
+--> <!-- -->
+But just in case it doesn't...
+!! result
+<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: =">edit</a>]</span> <span class="mw-headline" id=".3D">=</span></h1>
+<p>The line above must have a trailing space!
+</p>
+<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =">edit</a>]</span> <span class="mw-headline" id=".3D_2">=</span></h1>
+<p>But just in case it doesn't...
+</p>
+!! end
+
!! test
BUG 1219 URL next to image (broken)
!! input
</p>
!!end
+!! article
+אַ
+!! text
+Test for unicode normalization
+
+The page's name is U+05d0 U+05b7, with non-canonical form U+FB2E
+!! endarticle
+
+!! test
+(bug 19451) Links should refer to the normalized form.
+!! input
+[[אַ]]
+[[אַ]]
+[[אַ]]
+[[אַ]]
+[[אַ]]
+!! result
+<p><a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
+<a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
+<a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
+<a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
+<a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
+</p>
+!! end
+
!! test
Empty attribute crash test (bug 2067)
!! input
!! input
<div style="{{dangerous style attribute}}"></div>
!! result
-<div></div>
+<div style="/* insecure input */"></div>
!! end
!! input
{{div style|width: expression(alert(document.cookie))}}
!! result
-<div>Magic div</div>
+<div style="/* insecure input */">Magic div</div>
!! end
!! input
<div style="<nowiki>border-left:expression(alert(document.cookie))</nowiki>"></div>
!! result
-<div></div>
+<div style="/* insecure input */"></div>
!! end
!! input
<div style="background-image:u\rl(javascript:alert('boo'))">evil</div>
!! result
-<div>evil</div>
+<div style="/* insecure input */">evil</div>
!! end
!! input
<div style="background-image:u\72l(javascript:alert('boo'))">evil</div>
!! result
-<div>evil</div>
+<div style="/* insecure input */">evil</div>
!! end
!! result
<table>
<tr>
-<th> status
+<th style="/* insecure input */"> status
</th></tr></table>
!! end
+!! test
+CSS line continuation 1
+!! input
+<div style="background-image: u\ rl(test.jpg);"></div>
+!! result
+<div style="/* insecure input */"></div>
+
+!! end
+
+!! test
+CSS line continuation 2
+!! input
+<div style="background-image: u\ rl(test.jpg); "></div>
+!! result
+<div style="/* insecure input */"></div>
+
+!! end
!! article
Template:Identity
!! input
<br id=9 />
!! result
-Something, but defenetly not <br id="9" />...
+Something, but definitely not <br id="9" />...
!! end
!! test
!! input
C'est grave !
!! result
-<p>C'est grave !
+<p>C'est grave !
</p>
!! end
!! result
<table>
<tr>
-<th>https://</th><th></th><th></th><th>
+<th>https://</th>
+<th></th>
+<th></th>
+<th>
</td>
</tr>
</table>
<table>
<tr>
<th> <a href="irc://{{ftp://a" class="external free" rel="nofollow">irc://{{ftp://a</a>" onmouseover="alert('hello world');"
-</th><td>
+</th>
+<td>
</td>
</tr>
</table>
==marked==
!!end
+# Test behaviour of bug 19910
+!! test
+Sectiion with all-equals
+!! options
+section=2
+!! input
+===
+The line above must have a trailing space
+=== <!--
+--> <!-- -->
+But just in case it doesn't...
+!! result
+=== <!--
+--> <!-- -->
+But just in case it doesn't...
+!! end
!! test
Section replacement test (section 0)
!! end
+!! test
+Gallery (with options)
+!! input
+<gallery widths='60px' heights='40px' perrow='2' caption='Foo [[Main Page]]' >
+File:Nonexistant.jpg|caption
+File:Nonexistant.jpg
+image:foobar.jpg|some '''caption''' [[Main Page]]
+image:foobar.jpg
+</gallery>
+!! result
+<table class="gallery" cellspacing="0" cellpadding="0">
+ <caption>Foo <a href="/wiki/Main_Page" title="Main Page">Main Page</a></caption>
+ <tr>
+ <td><div class="gallerybox" style="width: 95px;">
+ <div style="height: 52px;">Nonexistant.jpg</div>
+ <div class="gallerytext">
+<p>caption
+</p>
+ </div>
+ </div></td>
+ <td><div class="gallerybox" style="width: 95px;">
+ <div style="height: 52px;">Nonexistant.jpg</div>
+ <div class="gallerytext">
+ </div>
+ </div></td>
+ </tr>
+ <tr>
+ <td><div class="gallerybox" style="width: 95px;">
+ <div class="thumb" style="padding: 19px 0; width: 90px;"><div style="margin-left: auto; margin-right: auto; width: 60px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="60" height="7" /></a></div></div>
+ <div class="gallerytext">
+<p>some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
+</p>
+ </div>
+ </div></td>
+ <td><div class="gallerybox" style="width: 95px;">
+ <div class="thumb" style="padding: 19px 0; width: 90px;"><div style="margin-left: auto; margin-right: auto; width: 60px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="60" height="7" /></a></div></div>
+ <div class="gallerytext">
+ </div>
+ </div></td>
+ </tr>
+</table>
+
+!! end
+
+!! test
+gallery (with showfilename option)
+!! input
+<gallery showfilename>
+File:Nonexistant.jpg|caption
+File:Nonexistant.jpg
+image:foobar.jpg|some '''caption''' [[Main Page]]
+File:Foobar.jpg
+</gallery>
+!! result
+<table class="gallery" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><div class="gallerybox" style="width: 155px;">
+ <div style="height: 152px;">Nonexistant.jpg</div>
+ <div class="gallerytext">
+<p><a href="/wiki/File:Nonexistant.jpg" title="File:Nonexistant.jpg">Nonexistant.jpg</a><br />
+caption
+</p>
+ </div>
+ </div></td>
+ <td><div class="gallerybox" style="width: 155px;">
+ <div style="height: 152px;">Nonexistant.jpg</div>
+ <div class="gallerytext">
+<p><a href="/wiki/File:Nonexistant.jpg" title="File:Nonexistant.jpg">Nonexistant.jpg</a><br />
+</p>
+ </div>
+ </div></td>
+ <td><div class="gallerybox" style="width: 155px;">
+ <div class="thumb" style="padding: 66px 0; width: 150px;"><div style="margin-left: auto; margin-right: auto; width: 120px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div>
+ <div class="gallerytext">
+<p><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">Foobar.jpg</a><br />
+some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
+</p>
+ </div>
+ </div></td>
+ <td><div class="gallerybox" style="width: 155px;">
+ <div class="thumb" style="padding: 66px 0; width: 150px;"><div style="margin-left: auto; margin-right: auto; width: 120px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div>
+ <div class="gallerytext">
+<p><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">Foobar.jpg</a><br />
+</p>
+ </div>
+ </div></td>
+ </tr>
+</table>
+
+!! end
+
!! test
HTML Hex character encoding (spells the word "JavaScript")
!! input
</p>
!! end
+!! test
+Bug 22905: <abbr> followed by ISBN followed by </a>
+!! input
+<abbr>(fr)</abbr> ISBN 2753300917 [http://www.example.com example.com]
+!! result
+<p><abbr>(fr)</abbr> <a href="/wiki/Special:BookSources/2753300917" class="internal mw-magiclink-isbn">ISBN 2753300917</a> <a href="http://www.example.com" class="external text" rel="nofollow">example.com</a>
+</p>
+!! end
+
!! test
Double RFC
!! input
# Images with the "|" character in external URLs in comment tags; Eats half the comment, leaves unmatched "</a>" tag.
!! test
Images with the "|" character in the comment
-!! options
-disabled
!! input
[[image:Foobar.jpg|thumb|An [http://test/?param1=|left|¶m2=|x external] URL]]
!! result
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="An external URL" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>An <a href="http://test/?param1=|left|&param2=|x" class="external text" rel="nofollow">external</a> URL</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>An <a href="http://test/?param1=%7Cleft%7C&param2=%7Cx" class="external text" rel="nofollow">external</a> URL</div></div></div>
!!end
!! test
Parents of subpages, two levels up
!! options
-disabled
subpage title=[[Subpage test/L1/L2/L3]]
!! input
[[../../|L1]]2
+
+[[../../|L1]]l
!! result
-<p><a href="/index.php?title=Subpage_test/L1&action=edit&redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1</a>
+<p><a href="/index.php?title=Subpage_test/L1&action=edit&redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1</a>2
+</p><p><a href="/index.php?title=Subpage_test/L1&action=edit&redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1l</a>
</p>
!! end
; title : def
;title: def
!! result
-<dl><dt> title </dt><dd> def
-</dd><dt> title </dt><dd> def
+<dl><dt> title  </dt><dd> def
+</dd><dt> title </dt><dd> def
</dd><dt>title</dt><dd> def
</dd></dl>
</p>
!! end
+!! test
+anchorencode trims spaces
+!! input
+{{anchorencode: __pretty__please__}}
+!! result
+<p>pretty_please
+</p>
+!! end
+
+!! test
+anchorencode deals with links
+!! input
+{{anchorencode: [[hello|world]] [[hi]]}}
+!! result
+<p>world_hi
+</p>
+!! end
+
+!! test
+anchorencode deals with templates
+!! input
+{{anchorencode: {{Foo}} }}
+!! result
+<p>FOO
+</p>
+!! end
+
+!! test
+anchorencode encodes like the TOC generator: (bug 18431)
+!! input
+=== _ +:.3A%3A&&]] ===
+{{anchorencode: _ +:.3A%3A&&]] }}
+__NOEDITSECTION__
+!! result
+<h3> <span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D"> _ +:.3A%3A&&]] </span></h3>
+<p>.2B:.3A.253A.26.26.5D.5D
+</p>
+!! end
+
+# Expected output in the following test is not necessarily expected (there
+# should probably be <p> tags inside the <blockquote> in the output) -- it's
+# only testing for well-formedness.
+!! test
+Bug 6200: blockquotes and paragraph formatting
+!! input
+<blockquote>
+foo
+</blockquote>
+
+bar
+
+ baz
+!! result
+<blockquote>
+foo
+</blockquote>
+<p>bar
+</p>
+<pre>baz
+</pre>
+!! end
!! test
Bug 8293: Use of center tag ruins paragraph formatting
</p>
!! end
+!! test
+Bug 24072: more test on conversion rule for title
+!! options
+language=zh variant=zh-tw showtitle
+!! input
+This should be stripped-{T|zh:China;zh-tw:Taiwan}-!
+This won't take interferes with the title rule-{H|zh:Beijing;zh-tw:Taipei}-.
+!! result
+Taiwan
+<p>This should be stripped!
+This won't take interferes with the title rule.
+</p>
+!! end
+
!! test
Raw output of variant escape tags (R flag)
!! options
</p>
<table>
<tr>
-<td> 1 </td><td> 2
+<td> 1 </td>
+<td> 2
</td></tr>
<tr>
-<td> 3 </td><td> 4
+<td> 3 </td>
+<td> 4
</td></tr></table>
<p>y
</p>
!! end
+!! test
+Nesting tags, paragraphs on lines which begin with <div>
+!! options
+disabled
+!! input
+<div></div><strong>A
+B</strong>
+!! result
+<div></div>
+<p><strong>A
+B</strong>
+</p>
+!! end
+
# Bug 6200: <blockquote> should behave like <div> with respect to line breaks
!! test
Bug 6200: paragraphs inside blockquotes (no extra line breaks)
<a href="/wiki/Main_Page#section" title="Main Page">#section</a>
!! end
-Note: some elements used in these Microdata examples don't work, like <img>
-and <time>.
!! test
-Microdata: vCard example from spec (with some tweaks)
+Space normalisation on autocomment (bug 22784)
+!! options
+comment
+title=[[Main Page]]
+!!input
+/* __hello__world__ */
+!! result
+<span class="autocomment"><a href="/wiki/Main_Page#hello_world" title="Main Page">→</a>__hello__world__</span>
+!! end
+
+!!article
+MediaWiki:bad image list
+!!text
+* [[File:Bad.jpg]] except [[Nasty page]]
+!!endarticle
+
+!! test
+Bad images - basic functionality
!! input
-<div id="jack" itemscope itemtype="http://microformats.org/profile/hcard">
-<h1 itemprop="fn">Jack Bauer</h1>
-<img itemprop="photo" alt="" src="jack-bauer.jpg">
-<p itemprop="org" itemscope>
-<span itemprop="organization-name">Counter-Terrorist Unit</span>
-(<span itemprop="organization-unit">Los Angeles Division</span>)
-</p>
-<p>
-<span itemprop="adr" itemscope>
-<span itemprop="street-address">10201 W. Pico Blvd.</span><br>
-<span itemprop="locality">Los Angeles</span>,
-<span itemprop="region">CA</span>
-<span itemprop="postal-code">90064</span><br>
-<span itemprop="country-name">United States</span><br>
-</span>
-<span itemprop="geo">34.052339;-118.410623</span>
-</p>
-<h2>Assorted Contact Methods</h2>
-<ul>
-<li itemprop="tel" itemscope>
-<span itemprop="value">+1 (310) 597 3781</span> <span itemprop="type">work</span>
-<meta itemprop="type" content="pref">
-</li>
-<li><a itemprop="url" href="http://en.wikipedia.org/wiki/Jack_Bauer">I'm on Wikipedia</a>
-so you can leave a message on my user talk page.</li>
-<li><a itemprop="url" href="http://www.jackbauerfacts.com/">Jack Bauer Facts</a></li>
-<li itemprop="email"><a href="mailto:j.bauer@la.ctu.gov.invalid">j.bauer@la.ctu.gov.invalid</a></li>
-<li itemprop="tel" itemscope>
-<span itemprop="value">+1 (310) 555 3781</span> <span>
-<meta itemprop="type" content="cell">mobile phone</span>
-</li>
-</ul>
-<p itemprop="note">If I'm out in the field, you may be better off contacting <span
-itemprop="agent" itemscope itemtype="http://microformats.org/profile/hcard"><a
-itemprop="email" href="mailto:c.obrian@la.ctu.gov.invalid"><span
-itemprop="fn">Chloe O'Brian</span></a></span> if it's about work, or ask <span
-itemprop="agent">Tony Almeida</span> if you're interested in the CTU five-a-side football team we're trying to get going.</p>
-<span itemprop="rev" itemscope>
-<meta itemprop="type" content="date-time">
-<meta itemprop="value" content="2008-07-20T21:00:00+0100">
-</span>
-<p itemprop="tel" itemscope><strong>Update!</strong>
-My new <span itemprop="type">home</span> phone number is
-<span itemprop="value">01632 960 123</span>.
-</p>
-</div>
+[[File:Bad.jpg]]
!! result
-<div id="jack" itemscope="itemscope" itemtype="http://microformats.org/profile/hcard">
-<h1 itemprop="fn"> <span class="mw-headline" id="Jack_Bauer">Jack Bauer</span></h1>
-<p><img itemprop="photo" alt="" src="jack-bauer.jpg">
-</p>
-<p itemprop="org" itemscope="itemscope">
-<span itemprop="organization-name">Counter-Terrorist Unit</span>
-(<span itemprop="organization-unit">Los Angeles Division</span>)
-</p>
-<p>
-<span itemprop="adr" itemscope="itemscope">
-<span itemprop="street-address">10201 W. Pico Blvd.</span><br />
-<span itemprop="locality">Los Angeles</span>,
-<span itemprop="region">CA</span>
-<span itemprop="postal-code">90064</span><br />
-<span itemprop="country-name">United States</span><br />
-</span>
-<span itemprop="geo">34.052339;-118.410623</span>
-</p>
-<h2> <span class="mw-headline" id="Assorted_Contact_Methods">Assorted Contact Methods</span></h2>
-<ul>
-<li itemprop="tel" itemscope="itemscope">
-<span itemprop="value">+1 (310) 597 3781</span> <span itemprop="type">work</span>
-<meta itemprop="type" content="pref">
-</li>
-<li><a href="http://en.wikipedia.org/wiki/Jack_Bauer" class="external " itemprop="url">I'm on Wikipedia</a>
-so you can leave a message on my user talk page.</li>
-<li><a href="http://www.jackbauerfacts.com/" class="external " itemprop="url">Jack Bauer Facts</a></li>
-<li itemprop="email"><a href="mailto:j.bauer@la.ctu.gov.invalid" class="external ">j.bauer@la.ctu.gov.invalid</a></li>
-<li itemprop="tel" itemscope="itemscope">
-<span itemprop="value">+1 (310) 555 3781</span> <span>
-<meta itemprop="type" content="cell">mobile phone</span>
-</li>
-</ul>
-<p itemprop="note">If I'm out in the field, you may be better off contacting <span itemprop="agent" itemscope="itemscope" itemtype="http://microformats.org/profile/hcard"><a href="mailto:c.obrian@la.ctu.gov.invalid" class="external " itemprop="email"><span itemprop="fn">Chloe O'Brian</span></a></span> if it's about work, or ask <span itemprop="agent">Tony Almeida</span> if you're interested in the CTU five-a-side football team we're trying to get going.</p>
-<p><span itemprop="rev" itemscope="itemscope">
-<meta itemprop="type" content="date-time">
-<meta itemprop="value" content="2008-07-20T21:00:00+0100">
-</span>
-</p>
-<p itemprop="tel" itemscope="itemscope"><strong>Update!</strong>
-My new <span itemprop="type">home</span> phone number is
-<span itemprop="value">01632 960 123</span>.
-</p>
-</div>
+!! end
+!! test
+Bad images - bug 16039: text after bad image disappears
+!! input
+Foo bar
+[[File:Bad.jpg]]
+Bar foo
+!! result
+<p>Foo bar
+</p><p>Bar foo
+</p>
!! end
!! test
-Microdata: vEvent example from spec (with some tweaks)
+Verify that displaytitle works (bug #22501) no displaytitle
+!! options
+showtitle
+!! config
+wgAllowDisplayTitle=true
+wgRestrictDisplayTitle=false
!! input
-<div itemscope itemtype="http://microformats.org/profile/hcalendar#vevent">
-<p>I'm going to
-<strong itemprop="summary">Bluesday Tuesday: Money Road</strong>,
-<time itemprop="dtstart" datetime="2009-05-05T19:00:00Z">May 5th at 7pm</time>
-to <time itemprop="dtend" content="2009-05-05T21:00:00Z">9pm</time>,
-at <span itemprop="location">The RoadHouse</span>!</p>
-<p><a href="http://livebrum.co.uk/2009/05/05/bluesday-tuesday-money-road"
-itemprop="url">See this event on livebrum.co.uk</a>.</p>
-<meta itemprop="description" content="via livebrum.co.uk">
-</div>
+this is not the the title
!! result
-<div itemscope="itemscope" itemtype="http://microformats.org/profile/hcalendar#vevent">
-<p>I'm going to
-<strong itemprop="summary">Bluesday Tuesday: Money Road</strong>,
-<time itemprop="dtstart" datetime="2009-05-05T19:00:00Z">May 5th at 7pm</time>
-to <time itemprop="dtend" content="2009-05-05T21:00:00Z">9pm</time>,
-at <span itemprop="location">The RoadHouse</span>!</p>
-<p><a href="http://livebrum.co.uk/2009/05/05/bluesday-tuesday-money-road" class="external " itemprop="url">See this event on livebrum.co.uk</a>.</p>
-<p><meta itemprop="description" content="via livebrum.co.uk">
+Parser test
+<p>this is not the the title
</p>
-</div>
+!! end
+!! test
+Verify that displaytitle works (bug #22501) RestrictDisplayTitle=false
+!! options
+showtitle
+title=[[Screen]]
+!! config
+wgAllowDisplayTitle=true
+wgRestrictDisplayTitle=false
+!! input
+this is not the the title
+{{DISPLAYTITLE:whatever}}
+!! result
+whatever
+<p>this is not the the title
+</p>
!! end
!! test
-Microdata: license example from spec (with some tweaks)
+Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true mismatch
+!! options
+showtitle
+title=[[Screen]]
+!! config
+wgAllowDisplayTitle=true
+wgRestrictDisplayTitle=true
!! input
-<div itemscope itemtype="http://n.whatwg.org/work">
-<img itemprop="work" src="mypond.jpeg">
-<p><cite itemprop="title">My Pond</cite></p>
-<p><small>Licensed under the <a itemprop="license"
-href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative
-Commons Attribution-Share Alike 3.0 United States License</a>
-and the <a itemprop="license"
-href="http://www.opensource.org/licenses/mit-license.php">MIT
-license</a>.</small></p>
-</div>
+this is not the the title
+{{DISPLAYTITLE:whatever}}
!! result
-<div itemscope="itemscope" itemtype="http://n.whatwg.org/work">
-<p><img itemprop="work" src="mypond.jpeg">
+Screen
+<p>this is not the the title
</p>
-<p><cite itemprop="title">My Pond</cite></p>
-<p><small>Licensed under the <a href="http://creativecommons.org/licenses/by-sa/3.0/us/" class="external " itemprop="license">Creative
-Commons Attribution-Share Alike 3.0 United States License</a>
-and the <a href="http://www.opensource.org/licenses/mit-license.php" class="external " itemprop="license">MIT
-license</a>.</small></p>
-</div>
+!! end
+!! test
+Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true matching
+!! options
+showtitle
+title=[[Screen]]
+!! config
+wgAllowDisplayTitle=true
+wgRestrictDisplayTitle=true
+!! input
+this is not the the title
+{{DISPLAYTITLE:screen}}
+!! result
+screen
+<p>this is not the the title
+</p>
!! end
!! test
-Microdata: license example from spec with bad itemtype
+Verify that displaytitle works (bug #22501) AllowDisplayTitle=false
+!! options
+showtitle
+title=[[Screen]]
+!! config
+wgAllowDisplayTitle=false
!! input
-<div itemscope itemtype="http://nonstandard.invalid/">
-<img itemprop="work" src="mypond.jpeg">
-<p><cite itemprop="title">My Pond</cite></p>
-<p><small>Licensed under the <a itemprop="license"
-href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative
-Commons Attribution-Share Alike 3.0 United States License</a>
-and the <a itemprop="license"
-href="http://www.opensource.org/licenses/mit-license.php">MIT
-license</a>.</small></p>
-</div>
+this is not the the title
+{{DISPLAYTITLE:screen}}
!! result
-<div>
-<p><img itemprop="work" src="mypond.jpeg">
+Screen
+<p>this is not the the title
+<a href="/index.php?title=Template:DISPLAYTITLE:screen&action=edit&redlink=1" class="new" title="Template:DISPLAYTITLE:screen (page does not exist)">Template:DISPLAYTITLE:screen</a>
</p>
-<p><cite itemprop="title">My Pond</cite></p>
-<p><small>Licensed under the <a href="http://creativecommons.org/licenses/by-sa/3.0/us/" class="external " itemprop="license">Creative
-Commons Attribution-Share Alike 3.0 United States License</a>
-and the <a href="http://www.opensource.org/licenses/mit-license.php" class="external " itemprop="license">MIT
-license</a>.</small></p>
-</div>
+!! end
+!! test
+Verify that displaytitle works (bug #22501) AllowDisplayTitle=false no DISPLAYTITLE
+!! options
+showtitle
+title=[[Screen]]
+!! config
+wgAllowDisplayTitle=false
+!! input
+this is not the the title
+!! result
+Screen
+<p>this is not the the title
+</p>
+!! end
+
+!! test
+preload: check <noinclude> and <includeonly>
+!! options
+preload
+!! input
+Hello <noinclude>cruel</noinclude><includeonly>kind</includeonly> world.
+!! result
+Hello kind world.
+!! end
+
+!! test
+preload: check <onlyinclude>
+!! options
+preload
+!! input
+Goodbye <onlyinclude>Hello world</onlyinclude>
+!! result
+Hello world
!! end
-!!article
-MediaWiki:bad image list
-!!text
-* [[File:Bad.jpg]] except [[Nasty page]]
-!!endarticle
+!! test
+preload: can pass tags through if we want to
+!! options
+preload
+!! input
+<includeonly><</includeonly>includeonly>Hello world<includeonly><</includeonly>/includeonly>
+!! result
+<includeonly>Hello world</includeonly>
+!! end
!! test
-Bad images - basic functionality
+preload: check that it doesn't try to do tricks
+!! options
+preload
!! input
-[[File:Bad.jpg]]
+* <!-- Hello --> ''{{world}}'' {{<includeonly>subst:</includeonly>How are you}}{{ {{{|safesubst:}}} #if:1|2|3}}
!! result
+* <!-- Hello --> ''{{world}}'' {{subst:How are you}}{{ {{{|safesubst:}}} #if:1|2|3}}
!! end
!! test
-Bad images - bug 16039: text after bad image disappears
+Play a bit with r67090 and bug 3158
+!! options
+disabled
!! input
-Foo bar
-[[File:Bad.jpg]]
-Bar foo
+<div style="width:50% !important"> </div>
+<div style="width:50% !important"> </div>
+<div style="width:50% !important"> </div>
+<div style="border : solid;"> </div>
!! result
-<p>Foo bar
-</p><p>Bar foo
-</p>
+<div style="width:50% !important"> </div>
+<div style="width:50% !important"> </div>
+<div style="width:50% !important"> </div>
+<div style="border : solid;"> </div>
+
!! end