From 2e44b49a2db3026050b136de9b00f749dd3ff939 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 25 Apr 2014 06:26:49 +0200 Subject: Update to MediaWiki 1.22.6 --- tests/parser/parserTests.txt | 18591 ----------------------------------------- 1 file changed, 18591 deletions(-) delete mode 100644 tests/parser/parserTests.txt (limited to 'tests/parser/parserTests.txt') diff --git a/tests/parser/parserTests.txt b/tests/parser/parserTests.txt deleted file mode 100644 index 9658e8f8..00000000 --- a/tests/parser/parserTests.txt +++ /dev/null @@ -1,18591 +0,0 @@ -# MediaWiki Parser test cases -# Some taken from http://meta.wikimedia.org/wiki/Parser_testing -# All (C) their respective authors and released under the GPL -# -# The syntax should be fairly self-explanatory. -# -# Currently supported test options: -# One of the following three: -# -# (default) generate HTML output -# pst apply pre-save transform -# msg apply message transform -# -# Plus any combination of these: -# -# cat add category links -# ill add inter-language links -# subpage enable subpages (disabled by default) -# noxml don't check for XML well formdness -# title=[[XXX]] run test using article title XXX -# language=XXX set content language to XXX for this test -# variant=XXX set the variant of language for this test (eg zh-tw) -# disabled do not run test -# parsoid parsoid-only test (not run by PHP parser) -# php php-only test (not run by the parsoid parser) -# showtitle make the first line the title -# comment run through Linker::formatComment() instead of main parser -# local format section links in edit comment text as local links -# notoc disable table of contents -# -# You can also set the following parser properties via test options: -# wgEnableUploads, wgAllowExternalImages, wgMaxTocLevel, -# wgLinkHolderBatchSize, wgRawHtml -# -# For testing purposes, temporary articles can created: -# !!article / NAMESPACE:TITLE / !!text / ARTICLE TEXT / !!endarticle -# where '/' denotes a newline. - -# This is the standard article assumed to exist. -!! article -Main Page -!! text -blah blah -!! endarticle - -!!article -Template:Foo -!!text -FOO -!!endarticle - -!! article -Template:Blank -!! text -!! endarticle - -!! article -Template:pipe -!! text -| -!! endarticle - -!!article -MediaWiki:bad image list -!!text -* [[File:Bad.jpg]] except [[Nasty page]] -!!endarticle - -!! article -Template:inner list -!! text -* item 1 -!! endarticle - -!! article -Template:tbl-start -!! text -{| -!! endarticle - -!! article -Template:tbl-end -!! text -|} -!! endarticle - -!! article -Template:! -!! text -| -!! endarticle - -!! article -Template:echo -!! text -{{{1}}} -!! endarticle - -!! article -Template:echo_with_span -!! text -{{{1}}} -!! endarticle - -!! article -Template:echo_with_div -!! text -
{{{1}}}
-!! endarticle - -!! article -Template:attr_str -!! text -{{{1}}}="{{{2}}}" -!! endarticle - -!! article -Template:table_attribs -!! text - -|style="color: red"| Foo -!! endarticle - -!! article -Template:table_cells -!! text -{{table_attribs}} || Bar || Baz -!! endarticle - -!! article -Template:image_attribs -!! text - -[[File:foobar.jpg|right|Caption text]] -!! endarticle - -!! article -A?b -!! text -Weirdo titles! -!! endarticle - -!!article -Template:Bullet -!!text -* Bar -!!endarticle - -### -### Basic tests -### -!! test -Blank input -!! input -!! result -!! end - - -!! test -Simple paragraph -!! input -This is a simple paragraph. -!! result -

This is a simple paragraph. -

-!! end - -!! test -Paragraphs with extra newline spacing -!! input -foo - -bar - - -baz - - - -booz -!! result -

foo -

bar -


-baz -


-

booz -

-!! end - -!! test -Paragraphs with newline spacing with comment lines in between -!! input ----- -a - -b ----- -a - -b ----- -a - -b ----- -a - - -b ----- -a - - -b ----- -a - - - -b ----- -a - - - -b ----- -!! result -
-

a -b -

-
-

a -b -

-
-

a -b -

-
-

a -

b -

-
-

a -

b -

-
-

a -


-b -

-
-

a -


-b -

-
- -!! end - -!! test -Paragraphs with newline spacing with non-empty white-space lines in between -!! input ----- -a - -b ----- -a - - -b ----- -!! result -
-

a -

b -

-
-

a -


-b -

-
- -!! end - -!! test -Paragraphs with newline spacing with non-empty mixed comment and white-space lines in between -!! input ----- -a - -b ----- -a - -b ----- -a - - - -b ----- -a - - - - -b ----- -!! result -
-

a -b -

-
-

a -b -

-
-

a -

b -

-
-

a -


-b -

-
- -!! end - -!! test -Extra newlines: More paragraphs with indented comment -!! input -a - - - -b -!!result -

a -


-b -

-!!end - -!! test -Extra newlines followed by heading -!! input -a - - - -=b= -[[a]] - - -=b= -!! result -

a -


-

-

b[edit]

-

a -


-

-

b[edit]

- -!! end - -!! test -Extra newlines between heading and content are swallowed -!! input -=b= - - - -[[a]] -!! result -

b[edit]

-

a -

-!! end - -!! test -Parsing an URL -!! input -http://fr.wikipedia.org/wiki/🍺 - -!! result -

http://fr.wikipedia.org/wiki/🍺 -

-!! end - -!! test -Simple list -!! input -* Item 1 -* Item 2 -!! result - - -!! end - -!! test -Italics and bold -!! input -* plain -* plain''italic''plain -* plain''italic''plain''italic''plain -* plain'''bold'''plain -* plain'''bold'''plain'''bold'''plain -* plain''italic''plain'''bold'''plain -* plain'''bold'''plain''italic''plain -* plain''italic'''bold-italic'''italic''plain -* plain'''bold''bold-italic''bold'''plain -* plain'''''bold-italic'''italic''plain -* plain'''''bold-italic''bold'''plain -* plain''italic'''bold-italic'''''plain -* plain'''bold''bold-italic'''''plain -* plain l'''italic''plain -* plain l''''bold''' plain -!! result - - -!! end - -# this example taken from the [[simple:Moon]] article (bug 47326) -!! test -Italics and possessives (1) -!! input -obtained by ''[[Lunar Prospector]]'''s gamma-ray spectrometer -!! result -

obtained by Lunar Prospector's gamma-ray spectrometer -

-!! end - -# this example taken from [[en:Flaming Pie]] (bug 49926) -!! test -Italics and possessives (2) -!! input -'''''Flaming Pie''''' is ... released in 1997. In ''Flaming Pie'''s liner notes -!! result -

Flaming Pie is ... released in 1997. In Flaming Pie's liner notes -

-!! end - -# this example taken from [[en:Dictionary]] (bug 49926) -!! test -Italics and possessives (3) -!! input -The first monolingual dictionary written in a Romance language was ''Sebastián Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 in Madrid. In 1612 the first edition of the ''Vocabolario dell'[[Accademia della Crusca]]'', for Italian, was published. In 1690 in Rotterdam was published, posthumously, the ''Dictionnaire Universel''. -!! result -

The first monolingual dictionary written in a Romance language was Sebastián Covarrubias' Tesoro de la lengua castellana o española, published in 1611 in Madrid. In 1612 the first edition of the Vocabolario dell'Accademia della Crusca, for Italian, was published. In 1690 in Rotterdam was published, posthumously, the Dictionnaire Universel. -

-!! end - - -### -### 2-quote opening sequence tests -### -!! test -Italics and bold: 2-quote opening sequence: (2,2) -!! input -''foo'' -!! result -

foo -

-!!end - - -!! test -Italics and bold: 2-quote opening sequence: (2,3) -!! input -''foo''' -!! result -

foo' -

-!!end - - -!! test -Italics and bold: 2-quote opening sequence: (2,4) -!! input -''foo'''' -!! result -

foo'' -

-!!end - - -!! test -Italics and bold: 2-quote opening sequence: (2,5) (php) -!! options -php -!! input -''foo''''' -!! result -

foo -

-!!end -# The PHP parser strips the empty tags out for giggles; parsoid doesn't. -!! test -Italics and bold: 2-quote opening sequence: (2,5) (parsoid) -!! options -parsoid -!! input -''foo''''' -!! result -

foo -

-!!end - - -### -### 3-quote opening sequence tests -### - -!! test -Italics and bold: 3-quote opening sequence: (3,2) -!! input -'''foo'' -!! result -

'foo -

-!!end - - -!! test -Italics and bold: 3-quote opening sequence: (3,3) -!! input -'''foo''' -!! result -

foo -

-!!end - - -!! test -Italics and bold: 3-quote opening sequence: (3,4) -!! input -'''foo'''' -!! result -

foo' -

-!!end - - -!! test -Italics and bold: 3-quote opening sequence: (3,5) (php) -!! options -php -!! input -'''foo''''' -!! result -

foo -

-!!end -# The PHP parser strips the empty tags out for giggles; parsoid doesn't. -!! test -Italics and bold: 3-quote opening sequence: (3,5) (parsoid) -!! options -parsoid -!! input -'''foo''''' -!! result -

foo -

-!!end - - -### -### 4-quote opening sequence tests -### - -!! test -Italics and bold: 4-quote opening sequence: (4,2) -!! input -''''foo'' -!! result -

''foo -

-!!end - - -!! test -Italics and bold: 4-quote opening sequence: (4,3) -!! input -''''foo''' -!! result -

'foo -

-!!end - - -!! test -Italics and bold: 4-quote opening sequence: (4,4) -!! input -''''foo'''' -!! result -

'foo' -

-!!end - - -!! test -Italics and bold: 4-quote opening sequence: (4,5) (php) -!! options -php -!! input -''''foo''''' -!! result -

'foo -

-!!end -# The PHP parser strips the empty tags out for giggles; parsoid doesn't. -!! test -Italics and bold: 4-quote opening sequence: (4,5) (parsoid) -!! options -parsoid -!! input -''''foo''''' -!! result -

'foo -

-!!end - - -### -### 5-quote opening sequence tests -### - -!! test -Italics and bold: 5-quote opening sequence: (5,2) -!! options -!! input -'''''foo'' -!! result -

foo -

-!!end - - -!! test -Italics and bold: 5-quote opening sequence: (5,3) -!! input -'''''foo''' -!! result -

foo -

-!!end - - -!! test -Italics and bold: 5-quote opening sequence: (5,4) -!! input -'''''foo'''' -!! result -

foo' -

-!!end - - -!! test -Italics and bold: 5-quote opening sequence: (5,5) -!! input -'''''foo''''' -!! result -

foo -

-!!end - -### -### multiple quote sequences in a line -### -!! test -Italics and bold: multiple quote sequences: (2,4,2) -!! input -''foo''''bar'' -!! result -

foo'bar -

-!!end - - -!! test -Italics and bold: multiple quote sequences: (2,4,3) -!! input -''foo''''bar''' -!! result -

foo'bar -

-!!end - - -!! test -Italics and bold: multiple quote sequences: (2,4,4) -!! input -''foo''''bar'''' -!! result -

foo'bar' -

-!!end - - -!! test -Italics and bold: multiple quote sequences: (3,4,2) (php) -!! options -php -!! input -'''foo''''bar'' -!! result -

foo'bar -

-!!end -# The PHP parser strips the empty tags out for giggles; parsoid doesn't. -!! test -Italics and bold: multiple quote sequences: (3,4,2) (parsoid) -!! options -parsoid -!! input -'''foo''''bar'' -!! result -

foo'bar -

-!!end - - -!! test -Italics and bold: multiple quote sequences: (3,4,3) (php) -!! options -php -!! input -'''foo''''bar''' -!! result -

foo'bar -

-!!end -# The PHP parser strips the empty tags out for giggles; parsoid doesn't. -!! test -Italics and bold: multiple quote sequences: (3,4,3) (parsoid) -!! options -parsoid -!! input -'''foo''''bar''' -!! result -

foo'bar -

-!!end - -### -### other quote tests -### -!! test -Italics and bold: other quote tests: (2,3,5) -!! input -''this is about '''foo's family''''' -!! result -

this is about foo's family -

-!!end - - -!! test -Italics and bold: other quote tests: (2,(3,3),2) -!! input -''this is about '''foo's''' family'' -!! result -

this is about foo's family -

-!!end - - -!! test -Italics and bold: other quote tests: (3,2,3,2) -!! input -'''this is about ''foo'''s family'' -!! result -

this is about foos family -

-!!end - - -!! test -Italics and bold: other quote tests: (3,2,3,3) -!! options -!! input -'''this is about ''foo'''s family''' -!! result -

'this is about foos family -

-!!end - - -!! test -Italics and bold: other quote tests: (3,(2,2),3) -!! input -'''this is about ''foo's'' family''' -!! result -

this is about foo's family -

-!!end - - -!! test -Italicized possessive -!! input -The ''[[Main Page]]'''s talk page. -!! result -

The Main Page's talk page. -

-!! end - -!! test -Parsoid only: Quote balancing context should be restricted to td/th cells on the same wikitext line -(Requires tidy for PHP parser output to be fixed up) -!! options -parsoid=wt2html,wt2wt -!! input -{| -!''a!!''b -|''a||''b -|} -!! result - - - -
abab
-!! end - -### -### Non-html5 tags -### - -!! test -Non-html5 tags should be accepted -!! input -
''foo''
-''foo'' -''foo'' -''foo'' -''foo'' -!! result -
foo
-

foo -foo -foo -foo -

-!! end - -!! test - is valid wikitext (bug 52468) -!! input - -!! result -

-

-!! end - -# is HTML4, is HTML4/5. -!! test - or for strikethrough -!! input -strike - -s -!! result -

strike -

s -

-!! end - -!! test -Non-word characters don't terminate tag names (bug 17663, 40670, 52022) -!! input - doesn't work! - - doesn't work! - - works fine - -foo
- -s.foo - - -!! result -

<b→> doesn't work! </b> -

<bä> doesn't work! </b> -

<boo> works fine </b> -

<s.foo>foo</s> -

<s.foo>s.foo</s.foo> -

<sub-ID#1> -

-!! end - -### -### Special characters -### - -!! test -Bare pipe character (bug 52363) -!! input -| -!! result -

| -

-!! end - -!! test -Bare pipe character from a template (bug 52363) -!! input -{{pipe}} -!! result -

| -

-!! end - -### -### test cases -### - -!! test - unordered list -!! input -* This is not an unordered list item. -!! result -

* This is not an unordered list item. -

-!! end - -!! test - spacing -!! input -Lorem ipsum dolor - -sed abit. - sed nullum. - -:and a colon - -!! result -

Lorem ipsum dolor - -sed abit. - sed nullum. - -:and a colon - -

-!! end - -!! test -nowiki 3 -!! input -:There is not nowiki. -:There is nowiki. - -#There is not nowiki. -#There is nowiki. - -*There is not nowiki. -*There is nowiki. -!! result -
-
There is not nowiki. -
-
There is nowiki. -
-
-
    -
  1. There is not nowiki. -
  2. -
  3. There is nowiki. -
  4. -
-
    -
  • There is not nowiki. -
  • -
  • There is nowiki. -
  • -
- -!! end - -!! test -Entities inside -!! input -< -!! result -

< -

-!! end - -!! test -Entities inside template parameters -!! options -parsoid -!! input -{{echo|–}} -!! result -

-

-!! end - -### -### Comments -### -!! test -Comments and Indent-Pre -!! input - asdf - - asdf - - - asdf -xyz - - asdf - xyz -!! result -
asdf
-
-
asdf
-
-
asdf
-
-

xyz -

-
asdf
-xyz
-
-!! end - -!! test -Comment test 2a -!! input -asdf - -jkl -!! result -

asdf -jkl -

-!! end - -!! test -Comment test 2b -!! input -asdf - - -jkl -!! result -

asdf -

jkl -

-!! end - -!! test -Comment test 3 -!! input -asdf - - -jkl -!! result -

asdf -jkl -

-!! end - -!! test -Comment test 4 -!! input -asdfjkl -!! result -

asdfjkl -

-!! end - -!! test -Comment spacing -!! input -a - b -c -!! result -

a -

-
 b 
-
-

c -

-!! end - -!! test -Comment whitespace -!! input - -!! result - -!! end - -!! test -Comment semantics and delimiters -!! input - -!! result - -!! end - -!! test -Comment semantics and delimiters, redux -!! input - -!! result - -!! end - -!! test -Comment semantics and delimiters: directors cut -!! input ---> -!! result -

--> -

-!! end - -!! test -Comment semantics: nesting -!! input ---> -!! result -

--> -

-!! end - -!! test -Comment semantics: unclosed comment at end -!! input -oo}} -!! result -

FOO -

-!! end - -!! test -Comment on its own line post-expand -!! input -a -{{blank}} -b -!! result -

a -

b -

-!! end - -!! test -Comment on its own line post-expand with non-significant whitespace -!! input -a - {{blank}} -b -!! result -

a -

b -

-!! end - -### -### paragraph wrapping tests -### -!! test -No block tags -!! input -a - -b -!! result -

a -

b -

-!! end - -!! test -Block tag on one line (
) -!! input -a
foo
- -b -!! result -a
foo
-

b -

-!! end - -!! test -Block tag on one line (
) -!! input -a
foo
- -b -!! result -a
foo
-

b -

-!! end - -!! test -Block tag on both lines (
) -!! input -a
foo
- -b
foo
-!! result -a
foo
-b
foo
- -!! end - -!! test -Block tag on both lines (
) -!! input -a
foo
- -b
foo
-!! result -a
foo
-b
foo
- -!! end - -!! test -Multiple lines without block tags -!! input -
foo
a -b -c -d e -x
foo
z -!! result -
foo
a -

b -c -d e -

-x
foo
z - -!! end - -!! test -Empty lines between lines with block tags -!! input -
- - -
a - -b -
a
b - -
b
d - - -
e
-!! result -
-


-

-
a -

b -

-
a
b -
b
d -


-

-
e
- -!! end - -### -### Preformatted text -### -!! test -Preformatted text -!! input - This is some - Preformatted text - With ''italic'' - And '''bold''' - And a [[Main Page|link]] -!! result -
This is some
-Preformatted text
-With italic
-And bold
-And a link
-
-!! end - -!! test -Tabs don't trigger preformatted text -!! input - This is not - preformatted text. - This is preformatted text. - So is this. -!! result -

This is not - preformatted text. -

-
This is preformatted text.
-	So is this.
-
-!! end - -!! test -Ident preformatting with inline content -!! input - a - ''b'' -!! result -
a
-b
-
-!! end - -!! test -
 with  inside (compatibility with 1.6 and earlier)
-!! input
-

-
-
-
-
-!! result -
-<b>
-<cite>
-<em>
-
- -!! end - -!! test -Regression with preformatted in
-!! input -
- Blah -
-!! result -
-
Blah
-
-
- -!! end - -!! test -Bug 52763: Preformatted in
-!! input -
- Blah -
-!! result -
-

Blah -

-
- -!! end - -!! test -Bug 51086: Double newlines in blockquotes should be turned into paragraphs -!! input -
-Foo - -Bar -
-!! result -
-

Foo -

Bar -

-
- -!! end - -!! test -Bug 15491: / in blockquote -!! input -
-Foo bar baz quux -
-!! result -
-

Foo bar baz quux -

-
- -!! end - -# Note that the p-wrapping is newline sensitive, which could be -# considered a bug: tidy will wrap only the 'Foo' in the example -# below in a

tag. (see comment 23-25 of bug #6200) -!! test -Bug 15491: / in blockquote (2) -!! input -

Foo bar baz quux -
-!! result -
Foo bar baz quux -
- -!! end - -!! test -
 with attributes (bug 3202)
-!! input
-
Bluescreen of WikiDeath
-!! result -
Bluescreen of WikiDeath
- -!! end - -!! test -
 with width attribute (bug 3202)
-!! input
-
Narrow screen goodies
-!! result -
Narrow screen goodies
- -!! end - -!! test -
 with forbidden attribute (bug 3202)
-!! input
-
Narrow screen goodies
-!! result -
Narrow screen goodies
- -!! end - -!! test -Entities inside
-!! input
-
<
-!! result -
<
- -!! end - -!! test -
 with forbidden attribute values (bug 3202)
-!! input
-
Narrow screen goodies
-!! result -
Narrow screen goodies
- -!! end - -!! test - inside
 (bug 13238)
-!! input
-
-
-
-
-
-
-
Foo
-!! result -
-<nowiki>
-
-
-
-
-
<nowiki>Foo</nowiki>
- -!! end - -!! test - and
 preference (first one wins)
-!! input
-
-
-
- -
- - -
-
-
-
-
- -!! result -
-<nowiki>
-
-

</nowiki> -</pre> -

-<pre> -<nowiki> -</pre> - -</pre> -

-!! end - -!! test -
inside nowiki -!! input -
-!! result -

</pre> -

-!! end - -!!test -Templates: Indent-Pre: 1a. Templates that break a line should suppress
-!!input
- {{echo|}}
-!!result
-
-!!end
-
-!!test
-Templates: Indent-Pre: 1b. Templates that break a line should suppress 
-!!input
- {{echo|
-foo}}
-!!result
-

foo -

-!!end - -!! test -Templates: Indent-Pre: 1c: Wrapping should be based on expanded content -!! input - {{echo|a -b}} -!!result -
a
-
-

b -

-!!end - -!! test -Templates: Indent-Pre: 1d: Wrapping should be based on expanded content -!! input - {{echo|a -b -c - d -e -}} -!!result -
a
-
-

b -c -

-
d
-
-

e -

-!!end - -!!test -Templates: Indent-Pre: 1e. Wrapping should be based on expanded content -!!input -{{echo| foo}} - -{{echo| foo}}{{echo| bar}} - -{{echo| foo}} -{{echo| bar}} - -{{echo| foo}} - -{{echo| foo}} - -{{echo|{{echo| }}bar}} -!!result -
foo
-
-
foo bar
-
-
foo
-bar
-
-
foo
-
-
foo
-
-
bar
-
-!!end - -!! test -Templates: Indent-Pre: 1f: Wrapping should be based on expanded content -!! input -{{echo| }}a - -{{echo| - }}a - -{{echo| - b}} - -{{echo|a - }}b - -{{echo|a -}} b -!!result -
a
-
-


-

-
a
-
-


-

-
b
-
-

a -

-
b
-
-

a -

-
b
-
-!!end - -# TODO / maybe: fix wt2wt for this -!! test -Parsoid: Don't paragraph-wrap fosterable content -!! options -parsoid=wt2html -!! input -{| - - - - - -|} -!! result - - - - - - - - - - -
-!! end - -!! test -Parsoid: Don't paragraph-wrap fosterable content even if table syntax is unbalanced -!! options -parsoid=wt2html -!! input -{| - - - - - - -|} -!! result - - - - - - - - - - -
-
-!! end - - -#-------------------------------------------------------------------- -# Transclusion parameter whitespace stripping tests -# Behavior is different for positional and named parameters -#-------------------------------------------------------------------- -!! test -Templates: Strip leading and trailing whitespace from named-param values -!! input -{{echo|1= a }} - -{{echo|1= {{echo|b}} }} - -{{echo| 1 = - c }} - -{{echo| 1 = -* d -}} -!! result -

a -

b -

c -

-
    -
  • d -
  • -
- -!! end - -!! test -Templates: Don't strip whitespace from positional-param values -!! input -{{echo|a }} - -{{echo|{{echo|b}} }} - -{{echo| c -}} - -{{echo| {{echo|d}} -}} - -{{echo| - e}} - -{{echo| -* f}} - -{{echo| - }}g -!! result -

a -

b -

-
c 
-
-


-

-
d
-
-


-

-
e
-
-


-

-
    -
  • f -
  • -
-


-

-
g
-
-!! end - -!! test -Templates: Handle empty comment-and-ws-only lines correctly -!! input -{{echo|foo - - -bar}} -!! result -

foo -bar -

-!! end - -#-------------------------------------------------------------------- -# Transclusion parameter escaping tests -#-------------------------------------------------------------------- -!! test -Templates: Parsoid parameter escaping test 1 -!! options -parsoid -!! input -{{echo|[foo]|{{echo|[bar]}}}} -!! result -

[foo]

-!! end - -!! test -Parsoid: Pipes in external links in template parameter -!! options -parsoid -!! input -{{echo|[{{echo|http://example.com}} link]}} -!! result -

link

-!! end - -!! test -Parsoid: pipe in transclusion parameter -!! options -parsoid -!! input -{{echo|http://foo.com/a|b}} -!! result -

http://foo.com/a|b

-!! end - -!! test -Parsoid: Pipe in external link target and content in template parameter -!! options -parsoid=html2wt,wt2wt -!! input -{{echo|[http://foo.com/a|b a|b]}} -!! result -

a|b

-!! end - -!! test -Templates: Dont escape already nowiki-escaped text in template parameters -!! options -parsoid=html2wt,wt2wt -!! input -{{echo|foo|bar}} -{{echo|<div>}} -{{echo|}} -!! result -

foo|bar -<div> - -

-!! end - -## Bug 52824 -!! test -Templates: '=' char in nested transclusions should not trigger nowiki escapes or conversion to named param -!! options -parsoid=html2wt,wt2wt -!! input -{{echo|{{echo|1=bar}}}} -!! result -

bar

-!! end - -### -### Parsoid-centric tests for testing RT edge cases for pre -### - -!!test -1a. Indent-Pre and Comments -!!input - a - -c -!!result -
a
-
-

c -

-!!end - -!!test -1b. Indent-Pre and Comments -!!input - a - -c -!!result -
a
-
-

c -

-!!end - -!!test -1c. Indent-Pre and Comments -!!input - a - - a -!!result -
 a
-
-
 a
-
-!!end - -!!test -1d. Indent-Pre and Comments -(Pre-handler currently cannot distinguish between comment/ws order and normalizes them to [comment,ws] order) -!!input - a - - b -!!result -
a
-
-
b
-
-!!end - -!!test -2a. Indent-Pre and tables -!!input - {| - |- - !h1!!h2 - |foo||bar - |} -!!result - - - - - - -
h1h2 -foobar -
- -!!end - -!!test -2b. Indent-Pre and tables -!!input - {| - |- -|foo -|} -!!result - - - -
foo -
- -!!end - -!!test -2c. Indent-Pre and tables (bug 42252) -!!input -{| - |+ foo - ! | bar -|} -!!result - - - -
foo -
bar -
- -!!end - -!!test -3a. Indent-Pre and block tags (single-line html) -!!input -

foo

-
foo
-
foo
- foo -!!result -

foo

-
foo
-
foo
-
 foo 
-
-!!end - -!!test -3b. Indent-Pre and block tags (pre-content on separate line) -!!input -

- foo -

- -
- foo -
- -
- foo -
- -
- foo -
- -
-
-foo
-
-
- -
- foo -
- -
  • - foo -
- -!!result -

- foo -

-
-
foo
-
-
-
-
foo
-
-
-
-

foo -

-
-
-
-foo
-
-
-
-
foo
-
-
-
  • - foo -
- -!!end - -!!test -4. Multiple spaces at start-of-line -!!input -

foo

- foo - {| -|foo -|} -!!result -

foo

-
   foo
-
- - -
foo -
- -!!end - -!! test -5. White-space in indent-pre -NOTE: the white-space char on 2nd line is significant -!! input - a
- - b -!! result -
a
- -b -
-!! end - -!! test -6. Pre-blocks should extend across lines with leading WS even when there is no wrappable content -!! input - a - - - b - - c - -d -!! result -
a
-
-b
-
-
c
-
-
-

d -

-!! end - -!! test -7a. Indent-pre and category links -!! options -parsoid=wt2html,wt2wt -!! input - [[Category:foo]] -{{echo| [[Category:foo]]}} -!! result - - - -!! end - -!! test -7b. Indent-pre and category links -!! options -parsoid=wt2html,wt2wt -!! input - [[Category:foo]] a - [[Category:foo]] {{echo|b}} -!! result -
- a
-
- b
-!! end - -### -### HTML-pre (some to spec PHP parser behavior and some Parsoid-RT-centric) -### - -!!test -HTML-pre: 1. embedded newlines -!!input -
foo
- -
-foo
-
- -
-
-foo
-
- -
-
-
-foo
-
-!!result -
foo
-
-foo
-
-
-
-foo
-
-
-
-
-foo
-
- -!!end - -!!test -HTML-pre: 2: indented text -!!input -
- foo
-
-!!result -
- foo
-
- -!!end - -!!test -HTML-pre: 3: other wikitext -!!input -
-* foo
-# bar
-= no-h =
-'' no-italic ''
-[[ NoLink ]]
-
-!!result -
-* foo
-# bar
-= no-h =
-'' no-italic ''
-[[ NoLink ]]
-
- -!!end - -### -### Definition lists -### -!! test -Simple definition -!! input -; name : Definition -!! result -
-
name 
-
Definition -
-
- -!! end - -!! test -Definition list for indentation only -!! input -: Indented text -!! result -
-
Indented text -
-
- -!! end - -!! test -Definition list with no space -!! input -;name:Definition -!! result -
-
name
-
Definition -
-
- -!!end - -!! test -Definition list with URL link -!! input -; http://example.com/ : definition -!! result -
-
http://example.com/ 
-
definition -
-
- -!! end - -!! test -Definition list with bracketed URL link -!! input -;[http://www.example.com/ Example]:Something about it -!! result -
-
Example
-
Something about it -
-
- -!! end - -!! test -Definition list with wikilink containing colon -!! input -; [[Help:FAQ]]: The least-read page on Wikipedia -!! result -
-
Help:FAQ
-
The least-read page on Wikipedia -
-
- -!! end - -# At Brion's and JeLuF's insistence... :) -!! test -Definition list with news link containing colon -!! input -; news:alt.wikipedia.rox: This isn't even a real newsgroup! -!! result -
-
news:alt.wikipedia.rox
-
This isn't even a real newsgroup! -
-
- -!! end - -!! test -Malformed definition list with colon -!! input -; news:alt.wikipedia.rox -- don't crash or enter an infinite loop -!! result -
-
news:alt.wikipedia.rox -- don't crash or enter an infinite loop -
-
- -!! end - -!! test -Definition lists: colon in external link text -!! input -; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up -!! result -
-
Wikipedia : The Next Generation
-
OK, I made that up -
-
- -!! end - -!! test -Definition lists: colon in HTML attribute -!! input -;bold -!! result -
-
bold -
-
- -!! end - -!! test -Definition lists: self-closed tag -!! input -;one
two : two-line fun -!! result -
-
one
two 
-
two-line fun -
-
- -!! end - -!! test -Bug 11748: Literal closing tags -!! input -
-
test 1
-
test test test test test
-
test 2
-
test test test test test
-
-!! result -
-
test 1
-
test test test test test
-
test 2
-
test test test test test
-
- -!! end - -!! test -Definition and unordered list using wiki syntax nested in unordered list using html tags. -!! input -
  • -; term : description -* unordered -
-!! result -
  • -
    -
    term 
    -
    description -
    -
    -
      -
    • unordered -
    • -
    -
- -!! end - -!! test - -Definition list with empty definition and following paragraph -!! input -; term: -Paragraph text -!! result -
-
term
-
-
-
-

Paragraph text -

-!! end - -!! test -Nested definition lists using html syntax -!! input -
-
-
Foo
-
-
-!! result -
-
-
Foo
-
-
- -!! end - -!! test -Definition Lists: No nesting: Multiple dd's -!! input -;x -:a -:b -!! result -
-
x -
-
a -
-
b -
-
- -!! end - -!! test -Definition Lists: Indentation: Regular -!! input -:i1 -::i2 -:::i3 -!! result -
-
i1 -
-
i2 -
-
i3 -
-
-
-
-
-
- -!! end - -!! test -Definition Lists: Indentation: Missing 1st level -!! input -::i2 -:::i3 -!! result -
-
-
i2 -
-
i3 -
-
-
-
-
-
- -!! end - -!! test -Definition Lists: Indentation: Multi-level indent -!! input -:::i3 -!! result -
-
-
-
i3 -
-
-
-
-
-
- -!! end - -!! test -Definition Lists: Hacky use to indent tables -!! input -::{| -|foo -|bar -|} -this text -should be left alone -!! result -
- - -
foo -bar -
-

this text -should be left alone -

-!! end - -# Bug 52473 -!! test -Definition Lists: Hacky use to indent tables (WS-insensitive) -!! options -parsoid -!! input -: {| -|a -|} -!! result -
-
a
-
-!! end -## The PHP parser treats : items (dd) without a corresponding ; item (dt) -## as an empty dt item. It also ignores all but the last ";" when followed -## by ":" later on. So, ";" are not ignored in ";;;t3" but are ignored in -## ";;;t3 :d1". So, PHP parser behavior is a little inconsistent wrt multiple -## ";"s. -## -## Ex: ";;t2 ::d2" is transformed into: -## -##
-##
t2
-##
-##
-##
-##
d2
-##
-##
-##
-## -## But, Parsoid treats "; :" as a tight atomic unit and excess ":" as plain text -## So, the same wikitext above (;;t2 ::d2) is transformed into: -## -##
-##
-##
-##
t2
-##
:d2
-##
-##
-##
-## -## All Parsoid only definition list tests have this difference. -## -## See also: https://bugzilla.wikimedia.org/show_bug.cgi?id=6569 -## and http://lists.wikimedia.org/pipermail/wikitext-l/2011-November/000483.html - -!! test -Table / list interaction: indented table with lists in table contents -!! input -:{| -|- -| a -* b -|- -| c -* d -|} -!! result -
- - - - -
a -
    -
  • b -
  • -
-
c -
    -
  • d -
  • -
-
- -!! end - -!!test -Table / list interaction: lists nested in tables nested in indented lists -!!input -:{| -| -:a -:b -| -*c -*d -|} - -*e -*f -!!result -
- - -
-
-
a -
-
b -
-
-
-
    -
  • c -
  • -
  • d -
  • -
-
-
    -
  • e -
  • -
  • f -
  • -
- -!!end - -!! test -Definition Lists: Nesting: Multi-level (Parsoid only) -!! options -parsoid -!! input -;t1 :d1 -;;t2 ::d2 -;;;t3 :::d3 -!! result -
-
t1
-
d1
-
-
-
t2
-
:d2
-
-
-
t3
-
::d3
-
-
-
-
-
- - -!! end - - -!! test -Definition Lists: Nesting: Test 2 (Parsoid only) -!! options -parsoid -!! input -;t1 -::d2 -!! result -
-
t1
-
-
-
d2
-
-
-
- -!! end - - -!! test -Definition Lists: Nesting: Test 3 (Parsoid only) -!! options -parsoid -!! input -:;t1 -::::d2 -!! result -
-
-
-
t1
-
-
-
-
-
d2
-
-
-
-
-
-
-
- -!! end - - -!! test -Definition Lists: Nesting: Test 4 -!! input -::;t3 -:::d3 -!! result -
-
-
-
t3 -
-
d3 -
-
-
-
-
-
- -!! end - - -## The Parsoid team believes the following three test exposes a -## bug in the PHP parser. (Parsoid team thinks the PHP parser is -## wrong to close the
after the
containing the
    .) -!! test -Definition Lists: Mixed Lists: Test 1 (php) -!! options -php -!! input -:;* foo -::* bar -:; baz -!! result -
    -
    -
      -
    • foo -
    • -
    • bar -
    • -
    -
    -
    -
    -
    baz -
    -
    -
    -
    - -!! end -!! test -Definition Lists: Mixed Lists: Test 1 (parsoid) -!! options -parsoid -!! input -:;* foo -::* bar -:; baz -!! result -
    -
    -
      -
    • foo -
    • -
    -
      -
    • bar -
    • -
    -
    baz
    -
    -
    -!! end - -!! test -Definition Lists: Mixed Lists: Test 2 -!! input -*: d1 -*: d2 -!! result -
      -
    • -
      d1 -
      -
      d2 -
      -
      -
    • -
    - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 3 -!! input -*::: d1 -*::: d2 -!! result -
      -
    • -
      -
      -
      d1 -
      -
      d2 -
      -
      -
      -
      -
      -
      -
    • -
    - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 4 -!! input -*;d1 :d2 -*;d3 :d4 -!! result -
      -
    • -
      d1 
      -
      d2 -
      -
      d3 
      -
      d4 -
      -
      -
    • -
    - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 5 -!! input -*:d1 -*:: d2 -!! result -
      -
    • -
      d1 -
      -
      d2 -
      -
      -
      -
      -
    • -
    - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 6 -!! input -#*:d1 -#*::: d3 -!! result -
      -
      • -
      • -
        d1 -
        -
        -
        d3 -
        -
        -
        -
        -
        -
        -
      • -
      -
    1. -
    - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 7 -!! input -:* d1 -:* d2 -!! result -
    -
      -
    • d1 -
    • -
    • d2 -
    • -
    -
    -
    - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 8 -!! input -:* d1 -::* d2 -!! result -
    -
      -
    • d1 -
    • -
    -
    -
      -
    • d2 -
    • -
    -
    -
    -
    -
    - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 9 -!! input -*;foo :bar -!! result -
      -
    • -
      foo 
      -
      bar -
      -
      -
    • -
    - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 10 -!! input -*#;foo :bar -!! result -
      -
      1. -
      2. -
        foo 
        -
        bar -
        -
        -
      3. -
      -
    • -
    - -!! end - -# The Parsoid team disagrees with the PHP parser's seemingly-random -# rules regarding dd/dt on the next two tests. Parsoid is more -# consistent, and recognizes the shared nesting and keeps the -# still-open tags around until the nesting is complete. - -!! test -Definition Lists: Mixed Lists: Test 11 (php) -!! options -php -!! input -*#*#;*;;foo :bar -*#*#;boo :baz -!! result -
      -
      1. -
        • -
          1. -
          2. -
            foo 
            -
              -
            • -
              -
              bar -
              -
              -
            -
            -
          3. -
        - -
-
-
boo 
-
baz -
-
- - - - - - - - - -!! end -!! test -Definition Lists: Mixed Lists: Test 11 (parsoid) -!! options -parsoid -!! input -*#*#;*;;foo :bar -*#*#;boo :baz -!! result -
    -
  • -
      -
    1. -
        -
      • -
          -
        1. -
          -
          -
            -
          • -
            -
            -
            -
            foo 
            -
            bar
            -
            -
          • -
          -
          boo 
          -
          baz
          -
        2. -
      • -
    2. -
  • -
-!! end - - -!! test -Definition Lists: Weird Ones: Test 1 (php) -!! options -php -!! input -*#;*::;; foo : bar (who uses this?) -!! result -
    -
    1. -
    2. -
      foo 
      -
        -
      • -
        -
        -
        -
        bar (who uses this?) -
        -
        -
        -
        -
        -
        -
      -
      -
    3. -
- - - - - - - -!! end -!! test -Definition Lists: Weird Ones: Test 1 (parsoid) -!! options -parsoid -!! input -*#;*::;; foo : bar (who uses this?) -!! result -
    -
  • -
      -
    1. -
      -
      -
        -
      • -
        -
        -
        -
        -
        -
        -
        -
        foo 
        -
        bar (who uses this?)
        -
        -
        -
        -
      • -
      -
    2. -
  • -
-!! end - -### -### External links -### -!! test -External links: non-bracketed -!! input -Non-bracketed: http://example.com -!! result -

Non-bracketed: http://example.com -

-!! end - -!! test -External links: numbered -!! input -Numbered: [http://example.com] -Numbered: [http://example.net] -Numbered: [http://example.com] -!! result -

Numbered: [1] -Numbered: [2] -Numbered: [3] -

-!!end - -!! test -External links: specified text -!! input -Specified text: [http://example.com link] -!! result -

Specified text: link -

-!!end - -!! test -External links: trail -!! input -Linktrails should not work for external links: [http://example.com link]s -!! result -

Linktrails should not work for external links: links -

-!! end - -!! test -External links: dollar sign in URL -!! input -http://example.com/1$2345 -!! result -

http://example.com/1$2345 -

-!! end - -!! test -External links: dollar sign in URL (named) -!! input -[http://example.com/1$2345] -!! result -

[1] -

-!!end - -!! test -External links: open square bracket forbidden in URL (bug 4377) -!! input -http://example.com/1[2345 -!! result -

http://example.com/1[2345 -

-!! end - -!! test -External links: open square bracket forbidden in URL (named) (bug 4377) -!! input -[http://example.com/1[2345] -!! result -

[2345 -

-!!end - -!! test -External links: nowiki in URL link text (bug 6230) -!!input -[http://example.com/ ''example site''] -!! result -

''example site'' -

-!! end - -!! test -External links: newline forbidden in text (bug 6230 regression check) -!! input -[http://example.com/ first -second] -!! result -

[http://example.com/ first -second] -

-!!end - -!! test -External links: Pipe char between url and text -!! input -[http://example.com | link] -!! result -

| link -

-!!end - -!! test -External links: protocol-relative URL in brackets -!! input -[//example.com/ Test] -!! result -

Test -

-!! end - -!! test -External links: protocol-relative URL in brackets without text -!! input -[//example.com] -!! result -

[1] -

-!! end - -!! test -External links: protocol-relative URL in free text is left alone -!! input -//example.com/Foo -!! result -

//example.com/Foo -

-!!end - -!! test -External links: protocol-relative URL in the middle of a word is left alone (bug 30269) -!! input -foo//example.com/Foo -!! result -

foo//example.com/Foo -

-!! end - -!! test -External image -!! input -External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png -!! result -

External image: Ncwikicol.png -

-!! end - -!! test -External image from https -!! input -External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png -!! result -

External image from https: Ncwikicol.png -

-!! end - -!! test -External image (when not allowed) -!! options -wgAllowExternalImages=0 -!! input -External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png -!! result -

External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png -

-!! end - -!! test -Link to non-http image, no img tag -!! input -Link to non-http image, no img tag: ftp://example.com/test.jpg -!! result -

Link to non-http image, no img tag: ftp://example.com/test.jpg -

-!! end - -!! test -External links: terminating separator -!! input -Terminating separator: http://example.com/thing, -!! result -

Terminating separator: http://example.com/thing, -

-!! end - -!! test -External links: intervening separator -!! input -Intervening separator: http://example.com/1,2,3 -!! result -

Intervening separator: http://example.com/1,2,3 -

-!! end - -!! test -External links: old bug with URL in query -!! input -Old bug with URL in query: [http://example.com/thing?url=http://example.com link] -!! result -

Old bug with URL in query: link -

-!! end - -!! test -External links: old URL-in-URL bug, mixed protocols -!! input -And again with mixed protocols: [ftp://example.com?url=http://example.com link] -!! result -

And again with mixed protocols: link -

-!!end - -!! test -External links: URL in text -!! input -URL in text: [http://example.com http://example.com] -!! result -

URL in text: http://example.com -

-!! end - -!! test -External links: Clickable images -!! input -ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png] -!! result -

ja-style clickable images: Ncwikicol.png -

-!!end - -!! test -External links: raw ampersand -!! input -Old & use: http://x&y -!! result -

Old & use: http://x&y -

-!! end - -!! test -External links: encoded ampersand -!! input -Old & use: http://x&y -!! result -

Old & use: http://x&y -

-!! end - -!! test -External links: encoded equals (bug 6102) -!! input -http://example.com/?foo=bar -!! result -

http://example.com/?foo=bar -

-!! end - -!! test -External links: [raw ampersand] -!! input -Old & use: [http://x&y] -!! result -

Old & use: [1] -

-!! end - -!! test -External links: [encoded ampersand] -!! input -Old & use: [http://x&y] -!! result -

Old & use: [1] -

-!! end - -!! test -External links: [encoded equals] (bug 6102) -!! input -[http://example.com/?foo=bar] -!! result -

[1] -

-!! end - -!! test -External links: [IDN ignored character reference in hostname; strip it right off] -!! input -[http://e‌xample.com/] -!! result -

[1] -

-!! end - -# FIXME: This test (the IDN characters in the text of a link) is an inconsistency. -# Where an external link could easily circumvent the sanitization of the text of -# a link like this (where an IDN-ignore character is in the URL somewhere), this -# test demands a higher standard. That's a bit strange. -# -# Example: -# -# http://e‌xample.com -> [http://example.com|http://example.com] -# [http://example.com|http://e‌xample.com] -> [http://example.com|http://e‌xample.com] -# -# The first example is sanitized, but the second is not. Any security benefits -# from this production are trivial to circumvent. Either remove this test and -# let the parser(s) do their thing unaccosted, or fix the inconsistency and change -# the test accordingly. -# -# All our love, -# The Parsoid team. -!! test -External links: IDN ignored character reference in hostname; strip it right off -!! input -http://e‌xample.com/ -!! result -

http://example.com/ -

-!! end - -!! test -External links: www.jpeg.org (bug 554) -!! input -http://www.jpeg.org -!!result -

http://www.jpeg.org -

-!! end - -!! test -External links: URL within URL (original bug 2) -!! input -[http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp] -!! result -

[1] -

-!! end - -!! test -BUG 361: URL inside bracketed URL -!! input -[http://www.example.com/foo http://www.example.com/bar] -!! result -

http://www.example.com/bar -

-!! end - -!! test -BUG 361: URL within URL, not bracketed -!! input -http://www.example.com/foo?=http://www.example.com/bar -!! result -

http://www.example.com/foo?=http://www.example.com/bar -

-!! end - -!! test -BUG 289: ">"-token in URL-tail -!! input -http://www.example.com/ -!! result -

http://www.example.com/<hello> -

-!!end - -!! test -BUG 289: literal ">"-token in URL-tail -!! input -http://www.example.com/html -!! result -

http://www.example.com/html -

-!!end - -!! test -BUG 289: ">"-token in bracketed URL -!! input -[http://www.example.com/ stuff] -!! result -

<hello> stuff -

-!!end - -!! test -BUG 289: literal ">"-token in bracketed URL -!! input -[http://www.example.com/html stuff] -!! result -

html stuff -

-!!end - -!! test -BUG 289: literal double quote at end of URL -!! input -http://www.example.com/"hello" -!! result -

http://www.example.com/"hello" -

-!!end - -!! test -BUG 289: literal double quote in bracketed URL -!! input -[http://www.example.com/"hello" stuff] -!! result -

"hello" stuff -

-!!end - -!! test -External links: multiple legal whitespace is fine, Magnus. Don't break it please. (bug 5081) -!! input -[http://www.example.com test] -!! result -

test -

-!! end - -!! test -External links: link text with spaces -!! input -[http://www.example.com a b c] -[http://www.example.com ''a'' ''b''] -!! result -

a b c -a b -

-!! end - -!! test -External links: wiki links within external link (Bug 3695) -!! input -[http://example.com [[wikilink]] embedded in ext link] -!! result -

wikilink embedded in ext link -

-!! end - -!! test -BUG 787: Links with one slash after the url protocol are invalid -!! input -http:/example.com - -[http:/example.com title] -!! result -

http:/example.com -

[http:/example.com title] -

-!! end - -!! test -Bracketed external links with template-generated invalid target -!! input -[{{echo|http:/example.com}} title] -!! result -

[http:/example.com title] -

-!! end - -!! test -Bug 2702: Mismatched , and tags are invalid -!! input -''[http://example.com text''] -[http://example.com '''text]''' -''Something [http://example.com in italic''] -''Something [http://example.com mixed''''', even bold]''' -'''''Now [http://example.com both'''''] -!! result -

text -text -Something in italic -Something mixed, even bold -Now both -

-!! end - - -!! test -Bug 4781: %26 in URL -!! input -http://www.example.com/?title=AT%26T -!! result -

http://www.example.com/?title=AT%26T -

-!! end - -# According to http://dev.w3.org/html5/spec/Overview.html#parsing-urls a plain -# % is actually legal in HTML5. Any change in output would need testing though. -!! test -Bug 4781, 5267: %25 in URL -!! input -http://www.example.com/?title=100%25_Bran -!! result -

http://www.example.com/?title=100%25_Bran -

-!! end - -!! test -Bug 4781, 5267: %28, %29 in URL -!! input -http://www.example.com/?title=Ben-Hur_%281959_film%29 -!! result -

http://www.example.com/?title=Ben-Hur_%281959_film%29 -

-!! end - - -!! test -Bug 4781: %26 in autonumber URL -!! input -[http://www.example.com/?title=AT%26T] -!! result -

[1] -

-!! end - -!! test -Bug 4781, 5267: %26 in autonumber URL -!! input -[http://www.example.com/?title=100%25_Bran] -!! result -

[1] -

-!! end - -!! test -Bug 4781, 5267: %28, %29 in autonumber URL -!! input -[http://www.example.com/?title=Ben-Hur_%281959_film%29] -!! result -

[1] -

-!! end - - -!! test -Bug 4781: %26 in bracketed URL -!! input -[http://www.example.com/?title=AT%26T link] -!! result -

link -

-!! end - -!! test -Bug 4781, 5267: %26 in bracketed URL -!! input -[http://www.example.com/?title=100%25_Bran link] -!! result -

link -

-!! end - -!! test -Bug 4781, 5267: %28, %29 in bracketed URL -!! input -[http://www.example.com/?title=Ben-Hur_%281959_film%29 link] -!! result -

link -

-!! end - -!! test -External link containing double-single-quotes in text '' (bug 4598 sanity check) -!! input -Some [http://example.com/ pretty ''italics'' and stuff]! -!! result -

Some pretty italics and stuff! -

-!! end - -!! test -External link containing double-single-quotes in text embedded in italics (bug 4598 sanity check) -!! input -''Some [http://example.com/ pretty ''italics'' and stuff]!'' -!! result -

Some pretty italics and stuff! -

-!! 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 -

La muerte de Casagemas (1901) en el sitio de Museo Picasso. -

-!! end - -!! test -External link with comments in link text -!! input -[http://www.google.com Google ] -!! result -

Google -

-!! end - -!! test -URL-encoding in URL functions (single parameter) -!! input -{{localurl:Some page|amp=&}} -!! result -

/index.php?title=Some_page&amp=& -

-!! end - -!! test -URL-encoding in URL functions (multiple parameters) -!! input -{{localurl:Some page|q=?&=&}} -!! result -

/index.php?title=Some_page&q=?&amp=& -

-!! end - -!! test -Brackets in urls -!! input -http://example.com/index.php?foozoid%5B%5D=bar - -http://example.com/index.php?foozoid[]=bar -!! result -

http://example.com/index.php?foozoid%5B%5D=bar -

http://example.com/index.php?foozoid%5B%5D=bar -

-!! end - -!! test -IPv6 urls (bug 21261) -!! options -disabled -!! input -http://[2404:130:0:1000::187:2]/index.php -!! result -

http://[2404:130:0:1000::187:2]/index.php -

-!! end - -!! test -Non-extlinks in brackets -!! input -[foo] -[foo bar] -[foo ''bar''] -[fool's] errand -[fool's errand] -[{{echo|foo}}] -[{{echo|foo}} bar] -[{{echo|foo}} ''bar''] -[{{echo|foo}}l's] errand -[{{echo|foo}}l's errand] -[url={{echo|foo}}] -[url=http://example.com] -!! result -

[foo] -[foo bar] -[foo bar] -[fool's] errand -[fool's errand] -[foo] -[foo bar] -[foo bar] -[fool's] errand -[fool's errand] -[url=foo] -[url=http://example.com] -

-!! end - -!! test -Parsoid: Percent encoding in external links -!! options -parsoid -!! input -[https://github.com/search?l=&q=ResourceLoader+%40wikimedia Search] -!! result -

Search

-!! end - -!! test -Parsoid: use url link syntax for links where the content is equal the link -target -!! options -parsoid -!! input -http://example.com -!! result -

http://example.com

-!! end - -### -### Quotes -### - -!! test -Quotes -!! input -Normal text. '''Bold text.''' Normal text. ''Italic text.'' - -Normal text. '''''Bold italic text.''''' Normal text. -!!result -

Normal text. Bold text. Normal text. Italic text. -

Normal text. Bold italic text. Normal text. -

-!! end - - -!! test -Unclosed and unmatched quotes (php) -!! options -php -!! input -'''''Bold italic text '''with bold deactivated''' in between.''''' - -'''''Bold italic text ''with italic deactivated'' in between.''''' - -'''Bold text.. - -..spanning two paragraphs (should not work).''' - -'''Bold tag left open - -''Italic tag left open - -Normal text. - - -'''This year''''s election ''should'' beat '''last year''''s. - -''Tom'''s car is bigger than ''Susan'''s. - -Plain ''italic'''s plain -!! result -

Bold italic text with bold deactivated in between. -

Bold italic text with italic deactivated in between. -

Bold text.. -

..spanning two paragraphs (should not work). -

Bold tag left open -

Italic tag left open -

Normal text. -

This year's election should beat last year's. -

Toms car is bigger than Susans. -

Plain italic's plain -

-!! end -# Parsoid inserts an empty bold tag pair at the end of the line, that the PHP -# parser strips. The wikitext contains just the first half of the bold -# quote pair. -!! test -Unclosed and unmatched quotes (parsoid) -!! options -parsoid -!! input -'''''Bold italic text '''with bold deactivated''' in between.''''' - -'''''Bold italic text ''with italic deactivated'' in between.''''' - -'''Bold text.. - -..spanning two paragraphs (should not work).''' - -'''Bold tag left open - -''Italic tag left open - -Normal text. - - -'''This year''''s election ''should'' beat '''last year''''s. - -''Tom'''s car is bigger than ''Susan'''s. - -Plain ''italic'''s plain -!! result -

Bold italic text with bold deactivated in between. -

Bold italic text with italic deactivated in between. -

Bold text.. -

..spanning two paragraphs (should not work). -

Bold tag left open -

Italic tag left open -

Normal text. -

This year's election should beat last year's. -

Toms car is bigger than Susans. -

Plain italic's plain -

-!! end - -### -### Tables -### -### some content taken from http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Using_tables -### - -# This should not produce
as
-# is the bare minimum required by the spec, see: -# http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_Basic_Tables -!! test -A table with no data. (php) -!! options -php -!! input -{||} -!! result -!! end -# Parsoid team replies: empty table tags are legal in HTML5 -!! test -A table with no data. (parsoid) -!! options -parsoid -!! input -{||} -!! result -
-!! end - -# A table with nothing but a caption is invalid XHTML, we might want to render -# this as

caption

-!! test -A table with nothing but a caption (php) -!! options -php -!! input -{| -|+ caption -|} -!! result - -
caption -
- -!! end -# Parsoid team replies: table with only a caption is legal in HTML5 -!! test -A table with nothing but a caption (parsoid) -!! options -parsoid -!! input -{| -|+ caption -|} -!! result -
caption
-!! end - -!! test -A table with caption with default-spaced attributes and a table row -!! input -{| -|+ style="color: red;" | caption1 -|- -| foo -|} -!! result - - - -
caption1 -
foo -
- -!! end - -!! test -A table with captions with non-default spaced attributes and a table row -!! input -{| -|+style="color: red;"|caption2 -|+ style="color: red;"| caption3 -|- -| foo -|} -!! result - - - - -
caption2 - caption3 -
foo -
- -!! end - -!! test -Table td-cell syntax variations -!! input -{| -| foo bar foo | baz -| foo bar foo || baz -| style='color:red;' | baz -| style='color:red;' || baz -|} -!! result - - - - - - - -
baz - foo bar foo baz - baz - style='color:red;' baz -
- -!! end - -!! test -Simple table -!! input -{| -| 1 || 2 -|- -| 3 || 4 -|} -!! result - - - - - - -
1 2 -
3 4 -
- -!! end - -!! test -Simple table but with multiple dashes for row wikitext -!! input -{| -| foo -|----- -| bar -|} -!! result - - - - -
foo -
bar -
- -!! end -!! test -Multiplication table -!! input -{| border="1" cellpadding="2" -|+Multiplication table -|- -! × !! 1 !! 2 !! 3 -|- -! 1 -| 1 || 2 || 3 -|- -! 2 -| 2 || 4 || 6 -|- -! 3 -| 3 || 6 || 9 -|- -! 4 -| 4 || 8 || 12 -|- -! 5 -| 5 || 10 || 15 -|} -!! result - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Multiplication table -
× 1 2 3 -
1 - 1 2 3 -
2 - 2 4 6 -
3 - 3 6 9 -
4 - 4 8 12 -
5 - 5 10 15 -
- -!! end - -!! test -Accept "||" in table headings -!! input -{| -!h1 || h2 -|} -!! result - - - -
h1 h2 -
- -!! end - -!! test -Accept "||" in indented table headings -!! input -:{| -!h1 || h2 -|} -!! result -
- - -
h1 h2 -
- -!! end - -!! test -Accept empty attributes in td/th cells (td/th cells starting with leading ||) -!! input -{| -!| h1 -|| a -|} -!! result - - - -
h1 - a -
- -!! end - -!!test -Accept "| !" at start of line in tables (ignore !-attribute) -!!input -{| -|- -| !style="color:red" | bar -|} -!!result - - - -
bar -
- -!!end - -!!test -Allow +/- in 2nd and later cells in a row, in 1st cell when td-attrs are present, or in 1st cell when there is a space between "|" and +/- -!!input -{| -|- -|style='color:red;'|+1 -|style='color:blue;'|-1 -|- -| 1 || 2 || 3 -| 1 ||+2 ||-3 -|- -| +1 -| -1 -|} -!!result - - - - - - - - - - - - - - -
+1 --1 -
1 2 3 - 1 +2 -3 -
+1 - -1 -
- -!!end - -!! test -Table rowspan -!! input -{| border=1 -| Cell 1, row 1 -|rowspan=2| Cell 2, row 1 (and 2) -| Cell 3, row 1 -|- -| Cell 1, row 2 -| Cell 3, row 2 -|} -!! result - - - - - - - -
Cell 1, row 1 - Cell 2, row 1 (and 2) - Cell 3, row 1 -
Cell 1, row 2 - Cell 3, row 2 -
- -!! end - -!! test -Nested table -!! input -{| border=1 -| α -| -{| bgcolor=#ABCDEF border=2 -|nested -|- -|table -|} -|the original table again -|} -!! result - - - - -
α - - - - - -
nested -
table -
-
the original table again -
- -!! end - -!! test -Invalid attributes in table cell (bug 1830) -!! input -{| -|Cell:|broken -|} -!! result - - -
broken -
- -!! end - - -!! test -Table security: embedded pipes (http://lists.wikimedia.org/mailman/htdig/wikitech-l/2006-April/022293.html) -!! input -{| -| |[ftp://|x||]" onmouseover="alert(document.cookie)">test -!! result - - - - - -
[ftp://%7Cx]" onmouseover="alert(document.cookie)">test -
- -!! end - - -!! test -Indented table markup mixed with indented pre content (proposed in bug 6200) -!! input - - - - -
- Text that should be rendered preformatted -
-!! result - - - - -
-
Text that should be rendered preformatted
-
-
- -!! end - -!! test -Template-generated table cell attributes and cell content -!! input -{| -|{{table_attribs}} -| {{table_attribs}} -|} -!! result - - - -
Foo - Foo -
- -!! end - -!! test -Template-generated table cell attributes and cell content (2) -!! input -{| -|align=center {{table_attribs}} -|} -!! result - - -
Foo -
- -!! end - -!! test -Template-generated table cell attributes and cell content (3) -!! input -{| -|align=center {{table_cells}} -|} -!! result - - - - -
Foo Bar Baz -
- -!! end - -!! test -Table with row followed by newlines and table heading -!! input -{| -|- - -! foo -|} -!! result - - - - -
foo -
- -!! end - -!! test -Table with empty line following the start tag -!! input -{| - -|- -| foo -|} -!! result - - - - -
foo -
- -!! end - -# FIXME: Preserve the attribute properly (with an empty string as value) in -# the PHP parser. Parsoid implements the behavior below. -!! test -Table attributes with empty value -!! options -parsoid -!! input -{| -| style=| hello -|} -!! result - - - -
hello -
- -!! end - -!! test -Wikitext table with a lot of comments -!! input -{| - -| foo - -|- - -| - -|} -!! result - - - - -
foo -
-
- -!! end - -!! test -Wikitext table with double-line table cell -!! input -{| -|a -b -|} -!! result - - -
a -

b -

-
- -!! end - -!! test -Table cell with a single comment -!! input -{| -| -| a -|} -!! result - - - -
- a -
- -!! end - -# The expected HTML structure in this test is debatable. The PHP parser does -# not parse this kind of table at all. The main focus for Parsoid is on -# round-tripping, so this output is ok for now. TODO: revisit! -!! test -Wikitext table with html-syntax row (Parsoid) -!! options -parsoid -!! input -{| -|- -foo -|} -!! result - - - -
foo
-!! end - -!! test -Implicit after a |- -(PHP parser relies on Tidy to add the missing tags) -!! options -parsoid=wt2html,wt2wt -!! input -{| -|- -a -|} -!! result - - -
a
-!! end - -!! test -Pres should be recognized in an explicit context, but not in an implicit context -(PHP parser relies on Tidy to add the missing tags) -!! options -parsoid=wt2html,wt2wt -!! input -{| -|- -| - a -|- - b -|} -!! result - - - - - -
a
b
-!! end - -!! test -Lists should be recognized in an implicit context -(PHP parser relies on Tidy to add the missing tags) -!! options -parsoid=wt2html,wt2wt -!! input -{| -|- -*a -|} -!! result - - - - -
    -
  • a
  • -
-!! end - -!! test -Parsoid: Round-trip tables directly followed by content (bug 51219) -!! options -parsoid=wt2html,wt2wt -!! input -{| -|foo -|} bar - -{| -|baz -|}quux -!! result - - -
foo
bar - - - -
baz
quux -!! end - -!! test -Parsoid: Default to a newline after tables in new content (bug 51219) -!! options -parsoid=html2wt -!! input -{| -|foo -|} - bar -{| -|baz -|} -'''quux''' -!! result - -
foo
bar - -
baz
quux -!! end - -### -### Internal links -### -!! test -Plain link, capitalized -!! input -[[Main Page]] -!! result -

Main Page -

-!! end - -!! test -Plain link, uncapitalized -!! input -[[main Page]] -!! result -

main Page -

-!! end - -!! test -Piped link -!! input -[[Main Page|The Main Page]] -!! result -

The Main Page -

-!! end - -!! test -Piped link with comment in link text -!! input -[[Main Page|The Main Page]] -!! result -

The Main Page -

-!! end - -!! test -Broken link -!! input -[[Zigzagzogzagzig]] -!! result -

Zigzagzogzagzig -

-!! end - -!! test -Broken link with fragment -!! input -[[Zigzagzogzagzig#zug]] -!! result -

Zigzagzogzagzig#zug -

-!! end - -!! test -Special page link with fragment -!! input -[[Special:Version#anchor]] -!! result -

Special:Version#anchor -

-!! end - -!! test -Nonexistent special page link with fragment -!! input -[[Special:ThisNameWillHopefullyNeverBeUsed#anchor]] -!! result -

Special:ThisNameWillHopefullyNeverBeUsed#anchor -

-!! end - -!! test -Link with prefix -!! input -xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]] -!! result -

xxxmain Page, xxxMain Page, Xxxmain Page XXXmain Page, XXXMain Page -

-!! end - -!! test -Link with suffix -!! input -[[Main Page]]xxx, [[Main Page]]XXX, [[Main Page]]!!! -!! result -

Main Pagexxx, Main PageXXX, Main Page!!! -

-!! end - -!! article -prefixed article -!! text -Some text -!! endarticle - -!! test -Bug 43661: Piped links with identical prefixes -!! input -[[prefixed article|prefixed articles with spaces]] - -[[prefixed article|prefixed articlesaoeu]] - -[[Main Page|Main Page test]] -!! result -

prefixed articles with spaces -

prefixed articlesaoeu -

Main Page test -

-!! end - - -!! test -Link with HTML entity in suffix / tail -!! input -[[Main Page]]", [[Main Page]]a -!! result -

Main Page", Main Pagea -

-!! end - -!! test -Link with 3 brackets -!! input -[[[main page]]] -!! result -

[[[main page]]] -

-!! end - -!! test -Piped link with 3 brackets -!! input -[[[main page|the main page]]] -!! result -

[[[main page|the main page]]] -

-!! end - -!! test -Link with multiple pipes -!! input -[[Main Page|The|Main|Page]] -!! result -

The|Main|Page -

-!! end - -!! test -Link to namespaces -!! input -[[Talk:Parser testing]], [[Meta:Disclaimers]] -!! result -

Talk:Parser testing, Meta:Disclaimers -

-!! end - -!! article -MemoryAlpha:AlphaTest -!! text -This is an article in the MemoryAlpha namespace -(which shadows the memoryalpha interwiki link). -!! endarticle - -!! test -Namespace takes precedence over interwiki link (bug 51680) -!! input -[[MemoryAlpha:AlphaTest]] -!! result -

MemoryAlpha:AlphaTest -

-!! end - -!! test -Piped link to namespace -!! input -[[Meta:Disclaimers|The disclaimers]] -!! result -

The disclaimers -

-!! end - -!! test -Link containing } -!! input -[[Usually caused by a typo (oops}]] -!! result -

[[Usually caused by a typo (oops}]] -

-!! end - -!! test -Link containing % (not as a hex sequence) -!! input -[[7% Solution]] -!! result -

7% Solution -

-!! end - -!! test -Link containing % as a single hex sequence interpreted to char -!! input -[[7%25 Solution]] -!! result -

7% Solution -

-!!end - -!! test -Link containing % as a double hex sequence interpreted to hex sequence -!! input -[[7%2525 Solution]] -!! result -

[[7%2525 Solution]] -

-!!end - -!! test -Link containing "#<" and "#>" % as a hex sequences- these are valid section anchors -Example for such a section: == < == -!! input -[[%23%3c]][[%23%3e]] -!! result -

#<#> -

-!! end - -!! test -Link containing "<#" and ">#" as a hex sequences -!! input -[[%3c%23]][[%3e%23]] -!! result -

[[%3c%23]][[%3e%23]] -

-!! end - -!! test -Link containing an equals sign -!! input -[[Special:BookSources/isbn=4-00-026157-6]] -!! result -

Special:BookSources/isbn=4-00-026157-6 -

-!! end - -!! article -Foo~bar -!! text -Just a test of an article title containing a tilde. -!! endarticle - -# note that links containing signatures, like [[Foo~~~~]], are -# massaged by the pre-save transform (PST) and so the tildes are never -# seen by the parser. -!! test -Link containing a tilde -!! input -[[Foo~bar]] -!! result -

Foo~bar -

-!! end - -!! test -Link containing double-single-quotes '' (bug 4598) -!! input -[[Lista d''e paise d''o munno]] -!! result -

Lista d''e paise d''o munno -

-!! end - -!! test -Link containing double-single-quotes '' in text (bug 4598 sanity check) -!! input -Some [[Link|pretty ''italics'' and stuff]]! -!! result -

Some pretty italics and stuff! -

-!! end - -!! test -Link containing double-single-quotes '' in text embedded in italics (bug 4598 sanity check) -!! input -''Some [[Link|pretty ''italics'' and stuff]]! -!! result -

Some pretty italics and stuff! -

-!! 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 -

File:Denys Savchenko Pentecoste.jpg -

''Pentecoste'' -

Pentecoste -

Pentecoste -

-!! end - -!! test -Broken image links with HTML captions (bug 39700) -!! input -[[File:Nonexistent|]] -[[File:Nonexistent|100px|]] -[[File:Nonexistent|<]] -[[File:Nonexistent|abc]] -!! result -

<script></script> -<script></script> -< -abc -

-!! end - -!! test -Plain link to URL -!! input -[[http://www.example.com]] -!! result -

[[1]] -

-!! end - -!! test -Plain link to URL with link text -!! input -[[http://www.example.com Link text]] -!! result -

[Link text] -

-!! end - -!! test -Plain link to protocol-relative URL -!! input -[[//www.example.com]] -!! result -

[[1]] -

-!! end - -!! test -Plain link to protocol-relative URL with link text -!! input -[[//www.example.com Link text]] -!! result -

[Link text] -

-!! end - -!! test -Plain link to page with question mark in title -!! input -[[A?b]] - -[[A?b|Baz]] -!! result -

A?b -

Baz -

-!! end - - -# I'm fairly sure the expected result here is wrong. -# We want these to be URL links, not pseudo-pages with URLs for titles.... -# However the current output is also pretty screwy. -# -# ---- -# I'm changing it to match the current output--it arguably makes more -# sense in the light of the test above. Old expected result was: -#

Piped link to URL: an example URL -#

-# But I think this test is bordering on "garbage in, garbage out" anyway. -# -- wtm -!! test -Piped link to URL -!! input -Piped link to URL: [[http://www.example.com|an example URL]] -!! result -

Piped link to URL: [example URL] -

-!! end - -!! test -BUG 2: [[page|http://url/]] should link to page, not http://url/ -!! input -[[Main Page|http://url/]] -!! result -

http://url/ -

-!! end - -!! test -BUG 337: Escaped self-links should be bold -!! options -title=[[Bug462]] -!! input -[[Bug462]] [[Bug462]] -!! result -

Bug462 Bug462 -

-!! end - -!! test -Self-link to section should not be bold -!! options -title=[[Main Page]] -!! input -[[Main Page#section]] -!! result -

Main Page#section -

-!! end - -!! article -00 -!! text -This is 00. -!! endarticle - -!!test -Self-link to numeric title -!!options -title=[[0]] -!!input -[[0]] -!!result -

0 -

-!!end - -!!test -Link to numeric-equivalent title -!!options -title=[[0]] -!!input -[[00]] -!!result -

00 -

-!!end - -!! test - inside a link -!! input -[[Main Page]] [[Main Page|the main page [it's not very good]]] -!! result -

[[Main Page]] the main page [it's not very good] -

-!! end - -!! test -Non-breaking spaces in title -!! input -[[  Main   Page  ]] -!! result -

  Main   Page   -

-!!end - -!! test -Internal link with ca linktrail, surrounded by bold apostrophes (bug 27473 primary issue) -!! options -language=ca -!! input -'''[[Main Page]]''' -!! result -

Main Page -

-!! end - -!! test -Internal link with ca linktrail, surrounded by italic apostrophes (bug 27473 primary issue) -!! options -language=ca -!! input -''[[Main Page]]'' -!! result -

Main Page -

-!! end - -!! test -Internal link with en linktrail: no apostrophes (bug 27473) -!! options -language=en -!! input -[[Something]]'nice -!! result -

Something'nice -

-!! end - -!! test -Internal link with ca linktrail with apostrophes (bug 27473) -!! options -language=ca -!! input -[[Something]]'nice -!! result -

Something'nice -

-!! end - -!! test -Internal link with kaa linktrail with apostrophes (bug 27473) -!! options -language=kaa -!! input -[[Something]]'nice -!! result -

Something'nice -

-!! end - -!! article -Söfnuður -!! text -Test. -!! endarticle - -!! test -Internal link with is link prefix -!! options -language=is -!! input -Aðrir mótmælenda[[söfnuður|söfnuðir]] og -!! result -

Aðrir mótmælendasöfnuðir og -

-!! end - -!! article -Mótmælendatrú -!! text -Test. -!! endarticle - -!! test -Internal link with is link trail and link prefix -!! options -language=is -!! input -[[mótmælendatrú|xxx]]ar -[[mótmælendatrú]]ar -mótmælenda[[söfnuður]] -mótmælenda[[söfnuður|söfnuðir]] -mótmælenda[[söfnuður|söfnuðir]]xxx -!! result -

xxxar -mótmælendatrúar -mótmælendasöfnuður -mótmælendasöfnuðir -mótmælendasöfnuðirxxx -

-!! end - -!! test -Parsoid link trail escaping -!! options -parsoid=html2wt,html2html -!! input -[[apple]]s -!! result -

apples

-!! end - -!! test -Parsoid link prefix escaping -!! options -language=is -parsoid=html2wt,html2html -!! input -Aðrir mótmælenda[[söfnuður]] -!! result -

Aðrir mótmælendasöfnuður

-!! end - -!! test -Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved -!! input -[[Foo| bar]] - -[[Foo| ''bar'']] - -[http://wp.org foo] - -[http://wp.org ''foo''] -!! result -

bar -

bar -

foo -

foo -

-!! end - -### -### Interwiki links (see maintenance/interwiki.sql) -### - -!! test -Inline interwiki link -!! input -[[MeatBall:SoftSecurity]] -!! result -

MeatBall:SoftSecurity -

-!! end - -!! test -Inline interwiki link with empty title (bug 2372) -!! input -[[MeatBall:]] -!! result -

MeatBall: -

-!! end - -!! test -Interwiki link encoding conversion (bug 1636) -!! input -*[[Wikipedia:ro:Olteniţa]] -*[[Wikipedia:ro:Olteniţa]] -!! result - - -!! end - -!! test -Interwiki link with fragment (bug 2130) -!! input -[[MeatBall:SoftSecurity#foo]] -!! result -

MeatBall:SoftSecurity#foo -

-!! end - - -### -### Interlanguage links -### Language links (so that searching for '### language' matches..) -### - -!! test -Interlanguage link -!! input -Blah blah blah -[[zh:Chinese]] -!!result -

Blah blah blah -

-!! end - -!! test -Double interlanguage link -!! input -Blah blah blah -[[es:Spanish]] -[[zh:Chinese]] -!!result -

Blah blah blah -

-!! end - -!! test -Interlanguage link, with prefix links -!! options -language=ln -!! input -Blah blah blah -[[zh:Chinese]] -!!result -

Blah blah blah -

-!! end - -!! test -Double interlanguage link, with prefix links (bug 8897) -!! options -language=ln -!! input -Blah blah blah -[[es:Spanish]] -[[zh:Chinese]] -!!result -

Blah blah blah -

-!! end - -!! test -Parsoid-specific test: Wikilinks with   should RT properly -!! options -language=ln -!! input -[[WW II]] -!!result -

WW II -

-!! end - -!! test -Parsoid bug 53221: Wikilinks should be properly entity-escaped -!! options -parsoid=html2wt -!! input -He&nbsp;llo [[Foo|He&nbsp;llo]] - -He&nbsp;llo [[He&nbsp;llo]] -!!result -

He&nbsp;llo He&nbsp;llo

-

He&nbsp;llo He&nbsp;llo

-!! end - -!! test -Parsoid: handle constructor well -!! options -parsoid -!! input -[[constructor]] - -[[constructor:foo]] -!! result -

constructor

- - -

constructor:foo

-!! end - -!! test -Parsoid: recognize interlanguage links without a target page -!! options -parsoid -!! input -[[ko:]] -!! result -

-

-!! end - -!! test -Parsoid: recognize interwiki links without a target page -!! options -parsoid -!! input -[[:ko:]] -!! result -

ko:

-!! end - -### -### Redirects, Parsoid-only -### -!! test -Simple redirect to page -!! options -parsoid -!! input -#REDIRECT [[Main Page]] -!! result - -!! end - -!! test -Optional colon in #REDIRECT -!! options -# the colon is archaic syntax. we support it for wt2html, but we -# don't care that it roundtrips back to the modern syntax. -parsoid=wt2html,html2html -!! input -#REDIRECT:[[Main Page]] -!! result - -!! end - -!! test -Whitespace in #REDIRECT with optional colon -!! options -# the colon and gratuitous whitespace is archaic syntax. we support -# it for wt2html, but we don't care that it roundtrips back to the -# modern syntax (without extra whitespace) -parsoid=wt2html,html2html -!! input - - #REDIRECT -: -[[Main Page]] -!! result - -!! end - -!! test -Piped link in #REDIRECT -!! options -# content after piped link is ignored. we support this syntax, -# but don't care that the piped link is lost when we roundtrip this. -parsoid=wt2html -!! input -#REDIRECT [[Main Page|bar]] -!! result - -!! end - -!! test -Redirect to category -!! options -parsoid=wt2html -!! input -#REDIRECT [[Category:Foo]] -!! result - -!! end - -!! test -Redirect to category with URL encoding -!! options -parsoid=wt2html -!! input -#REDIRECT [[Category%3AFoo]] -!! result - -!! end - -!! test -Redirect to category page -!! options -parsoid=wt2html,html2html -!! input -#REDIRECT [[:Category:Foo]] -!! result -

Category:Foo

-!! end - -!! test -Redirect to image page (1) -!! options -parsoid -!! input -#REDIRECT [[File:Wiki.png]] -!! result - -!! end - -!! test -Redirect to image page (2) -!! options -parsoid -!! input -#REDIRECT [[Image:Wiki.png]] -!! result - -!! end - -!! test -Redirect to language -!! options -parsoid -!! input -#REDIRECT [[en:File:Wiki.png]] -!! result - -!! end - -!! test -Redirect to interwiki -!! options -parsoid -!! input -#REDIRECT [[meatball:File:Wiki.png]] -!! result - -!! end - -!! test -Non-English #REDIRECT -!! options -parsoid -language=is -!! input -#TILVÍSUN [[Main Page]] -!! result - -!! end - -## -## XHTML tidiness -### - -!! test -
to
-!! input -1
2
3 -!! result -

1
2
3 -

-!! end - -!! test -Broken br tag sanitization -!! options -php -!! input -
-!! result -

</br> -

-!! end - -# TODO: Fix html2html mode (bug 51055)! -!! test -Parsoid: Broken br tag recognition -!! options -parsoid=wt2html -!! input -
-!! result -


-!! end - -!! test -Incorrecly removing closing slashes from correctly formed XHTML -!! input -
-!! result -


-

-!! end - -!! test -Failing to transform badly formed HTML into correct XHTML -!! input -
-
-
-!! result -


-
-
-

-!!end - -!! test -Handling html with a div self-closing tag -!! input -
-
-
-
-
-
-!! result -

<div title /> -<div title/> -

-
-

<div title=bar /> -<div title=bar/> -

-
-
- -!! end - -!! test -Handling html with a br self-closing tag -!! input -
-
-
-
-
-
-!! result -


-
-
-
-
-
-

-!! end - -!! test -Horizontal ruler (should it add that extra space?) -!! input -
-
-foo
bar -!! result -
-
-foo
bar - -!! end - -!! test -Horizontal ruler -- 4+ dashes render hr -!! input ----- -!! result -
- -!! end - -!! test -Horizontal ruler -- eats additional dashes on the same line -!! input ---------- -!! result -
- -!! end - -!! test -Horizontal ruler -- does not collapse dashes on consecutive lines -!! input ----- ----- -!! result -
-
- -!! end - -!! test -Horizontal ruler -- <4 dashes render as plain text -!! input ---- -!! result -

--- -

-!! end - -!! test -Horizontal ruler -- Supports content following dashes on same line -!! input ----- Foo -!! result -
Foo - -!! end - -### -### Block-level elements -### -!! test -Common list -!! input -*Common list -* item 2 -*item 3 -!! result -
    -
  • Common list -
  • -
  • item 2 -
  • -
  • item 3 -
  • -
- -!! end - -!! test -Numbered list -!! input -#Numbered list -#item 2 -# item 3 -!! result -
    -
  1. Numbered list -
  2. -
  3. item 2 -
  4. -
  5. item 3 -
  6. -
- -!! end - -!! test -Mixed list -!! input -*Mixed list -*# with numbers -** and bullets -*# and numbers -*bullets again -**bullet level 2 -***bullet level 3 -***#Number on level 4 -**bullet level 2 -**#Number on level 3 -**#Number on level 3 -*#number level 2 -*Level 1 -*** Level 3 -#** Level 3, but ordered -!! result -
    -
  • Mixed list -
      -
    1. with numbers -
    2. -
    -
      -
    • and bullets -
    • -
    -
      -
    1. and numbers -
    2. -
    -
  • -
  • bullets again -
      -
    • bullet level 2 -
        -
      • bullet level 3 -
          -
        1. Number on level 4 -
        2. -
        -
      • -
      -
    • -
    • bullet level 2 -
        -
      1. Number on level 3 -
      2. -
      3. Number on level 3 -
      4. -
      -
    • -
    -
      -
    1. number level 2 -
    2. -
    -
  • -
  • Level 1 -
      -
      • -
      • Level 3 -
      • -
      -
    • -
    -
  • -
-
    -
    • -
      • -
      • Level 3, but ordered -
      • -
      -
    • -
    -
  1. -
- -!! end - -!! test -Nested lists 1 -!! input -*foo -**bar -!! result -
    -
  • foo -
      -
    • bar -
    • -
    -
  • -
- -!! end - -!! test -Nested lists 2 -!! input -**foo -*bar -!! result -
    -
    • -
    • foo -
    • -
    -
  • -
  • bar -
  • -
- -!! end - -!! test -Nested lists 3 (first element empty) -!! input -* -**bar -!! result -
    -
  • -
      -
    • bar -
    • -
    -
  • -
- -!! end - -!! test -Nested lists 4 (first element empty) -!! input -** -*bar -!! result -
    -
    • -
    • -
    • -
    -
  • -
  • bar -
  • -
- -!! end - -!! test -Nested lists 5 (both elements empty) -!! input -** -* -!! result -
    -
    • -
    • -
    • -
    -
  • -
  • -
  • -
- -!! end - -!! test -Nested lists 6 (both elements empty) -!! input -* -** -!! result -
    -
  • -
      -
    • -
    • -
    -
  • -
- -!! end - -!! test -Nested lists 7 (skip initial nesting levels) -!! input -*** foo -!! result -
    -
    • -
      • -
      • foo -
      • -
      -
    • -
    -
  • -
- -!! end - -!! test -Nested lists 8 (multiple nesting transitions) -!! input -* foo -*** bar -** baz -* boo -!! result -
    -
  • foo -
      -
      • -
      • bar -
      • -
      -
    • -
    • baz -
    • -
    -
  • -
  • boo -
  • -
- -!! end - -!! test -1. Lists with start-of-line-transparent tokens before bullets: Comments -!! input -*foo -*bar -*baz -!! result -
    -
  • foo -
  • -
  • bar -
  • -
  • baz -
  • -
- -!! end - -!! test -2. Lists with start-of-line-transparent tokens before bullets: Template close -!! input -*foo {{echo|bar -}}*baz -!! result -
    -
  • foo bar -
  • -
  • baz -
  • -
- -!! end - -!! test -List items are not parsed correctly following a
 block (bug 785)
-!! input
-* 
foo
-*
bar
-* zar -!! result -
    -
  • foo
    -
  • -
  • bar
    -
  • -
  • zar -
  • -
- -!! end - -!! test -List items from template -!! input - -{{inner list}} -* item 2 - -* item 0 -{{inner list}} -* item 2 - -* item 0 -* notSOL{{inner list}} -* item 2 -!! result -
    -
  • item 1 -
  • -
  • item 2 -
  • -
-
    -
  • item 0 -
  • -
  • item 1 -
  • -
  • item 2 -
  • -
-
    -
  • item 0 -
  • -
  • notSOL -
  • -
  • item 1 -
  • -
  • item 2 -
  • -
- -!! end - -!! test -List interrupted by empty line or heading -!! input -* foo - -** bar -== A heading == -* Another list item -!! result -
    -
  • foo -
  • -
-
    -
    • -
    • bar -
    • -
    -
  • -
-

A heading[edit]

-
    -
  • Another list item -
  • -
- -!!end - -!!test -Multiple list tags generated by templates -!!input -{{echo|
  • }}a -{{echo|
  • }}b -{{echo|
  • }}c -!!result -
  • a -
  • b -
  • c
  • - - - -!!end - -!!test -Single-comment whitespace lines dont break lists, and neither do multi-comment whitespace lines -!!input -*a - -*b - -*c - -*d -!!result -
      -
    • a -
    • -
    • b -
    • -
    • c -
    • -
    • d -
    • -
    - -!!end - -!!test -Replacing whitespace with tabs still doesn't break the list (gerrit 78327) -!!input -*a - -*b - -*c - -*d -!!result -
      -
    • a -
    • -
    • b -
    • -
    • c -
    • -
    • d -
    • -
    - -!!end - -!!test -Test the li-hack -(Cannot test this with PHP parser since it relies on Tidy for the hack) -!!options -parsoid=wt2html,wt2wt -!!input -* foo -*
  • li-hack -* {{echo|
  • templated li-hack}} -*
  • unsupported li-hack with preceding comments - -
      -
    • not a li-hack -
    • -
    -!!result -
      -
    • foo
    • -
    • li-hack
    • -
    • templated li-hack
    • -
    • -
    • li-hack with preceding comments
    • -
    - -
      -
    • -
    • not a li-hack -
    • -
    -!!end - -!! test -Parsoid: Make sure nested lists are serialized on their own line even if HTML contains no newlines -!! options -parsoid -!! input -# foo -## bar -* foo -** bar -: foo -:: bar -!! result -
      -
    1. foo
        -
      1. bar
      2. -
    2. -
      -
    • foo
        -
      • bar
      • -
    • -
    -
    foo
    -
    bar
    -
    -
    -!! end - -!! test -Parsoid: Test of whitespace serialization with Templated bullets -!! options -parsoid -!! input -* {{bullet}} -!! result -
      -
    • Bar
    • -
    -!! end - -# ------------------------------------------------------------------------ -# The next set of tests are about Parsoid's ability to handle badly nested -# tags (parse, minimize scope of fixup, and roundtrip back) -# ------------------------------------------------------------------------ - -!! test -Unbalanced closing block tags break a list -(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up) -!! options -parsoid -!! input -
    -*a
    -*b
    -!! result -
    -
      -
    • a -
    • -
    -
      -
    • b -
    • -
    -!! end - -!! test -Unbalanced closing non-block tags don't break a list -(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up) -!! options -parsoid -!! input - -*a -*b -!! result -

    -

    -
      -
    • a -
    • -
    • b -
    • -
    -!! end - -!! test -Unclosed formatting tags that straddle lists are closed and reopened -(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up) -!! options -parsoid -!! input -# a -# b -!! result -
      -
    1. a -
    2. -
    3. b -
    4. -
    -!! end - -!!test -List embedded in a non-block tag -(Ugly Parsoid output -- worth fixing; Disabled for PHP parser since it relies on Tidy) -!! options -parsoid -!!input - -* foo - -!!result -

    - -
      -
    • foo
    • -
    -
    -

    -!!end - -!! test -Table with missing opening tag -!! options -parsoid=wt2html,wt2wt -!! input - - - -
    foo
    -!! result - - - - -
    foo
    -!! end - -### -### Magic Words -### - -# Note that the current date is hard-coded as -# 1970-01-01T00:02:03Z (a Thursday) -# when running parser tests. The timezone is also fixed to GMT, so -# local date will be identical to current date. - -!! test -Magic Word: {{CURRENTDAY}} -!! input -{{CURRENTDAY}} -!! result -

    1 -

    -!! end - -!! test -Magic Word: {{CURRENTDAY2}} -!! input -{{CURRENTDAY2}} -!! result -

    01 -

    -!! end - -!! test -Magic Word: {{CURRENTDAYNAME}} -!! input -{{CURRENTDAYNAME}} -!! result -

    Thursday -

    -!! end - -!! test -Magic Word: {{CURRENTDOW}} -!! input -{{CURRENTDOW}} -!! result -

    4 -

    -!! end - -!! test -Magic Word: {{CURRENTMONTH}} -!! input -{{CURRENTMONTH}} -!! result -

    01 -

    -!! end - -!! test -Magic Word: {{CURRENTMONTH1}} -!! input -{{CURRENTMONTH1}} -!! result -

    1 -

    -!! end - -!! test -Magic Word: {{CURRENTMONTHABBREV}} -!! input -{{CURRENTMONTHABBREV}} -!! result -

    Jan -

    -!! end - -!! test -Magic Word: {{CURRENTMONTHNAME}} -!! input -{{CURRENTMONTHNAME}} -!! result -

    January -

    -!! end - -!! test -Magic Word: {{CURRENTMONTHNAMEGEN}} -!! input -{{CURRENTMONTHNAMEGEN}} -!! result -

    January -

    -!! end - -!! test -Magic Word: {{CURRENTTIME}} -!! input -{{CURRENTTIME}} -!! result -

    00:02 -

    -!! end - -!! test -Magic Word: {{CURRENTHOUR}} -!! input -{{CURRENTHOUR}} -!! result -

    00 -

    -!! end - -!! test -Magic Word: {{CURRENTWEEK}} (@bug 4594) -!! input -{{CURRENTWEEK}} -!! result -

    1 -

    -!! end - -!! test -Magic Word: {{CURRENTYEAR}} -!! input -{{CURRENTYEAR}} -!! result -

    1970 -

    -!! end - -!! test -Magic Word: {{CURRENTTIMESTAMP}} -!! input -{{CURRENTTIMESTAMP}} -!! result -

    19700101000203 -

    -!! end - -!! test -Magic Words LOCAL (UTC) -!! input -* {{LOCALMONTH}} -* {{LOCALMONTH1}} -* {{LOCALMONTHNAME}} -* {{LOCALMONTHNAMEGEN}} -* {{LOCALMONTHABBREV}} -* {{LOCALDAY}} -* {{LOCALDAY2}} -* {{LOCALDAYNAME}} -* {{LOCALYEAR}} -* {{LOCALTIME}} -* {{LOCALHOUR}} -* {{LOCALWEEK}} -* {{LOCALDOW}} -* {{LOCALTIMESTAMP}} -!! result -
      -
    • 01 -
    • -
    • 1 -
    • -
    • January -
    • -
    • January -
    • -
    • Jan -
    • -
    • 1 -
    • -
    • 01 -
    • -
    • Thursday -
    • -
    • 1970 -
    • -
    • 00:02 -
    • -
    • 00 -
    • -
    • 1 -
    • -
    • 4 -
    • -
    • 19700101000203 -
    • -
    - -!! end - -!! test -Magic Word: {{FULLPAGENAME}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{FULLPAGENAME}} -!! result -

    User:Ævar Arnfjörð Bjarmason -

    -!! end - -!! test -Magic Word: {{FULLPAGENAMEE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{FULLPAGENAMEE}} -!! result -

    User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason -

    -!! end - -!! test -Magic Word: {{TALKSPACE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{TALKSPACE}} -!! result -

    User talk -

    -!! end - -!! test -Magic Word: {{TALKSPACE}}, same namespace -!! options -title=[[User talk:Ævar Arnfjörð Bjarmason]] -!! input -{{TALKSPACE}} -!! result -

    User talk -

    -!! end - -!! test -Magic Word: {{TALKSPACE}}, main namespace -!! options -title=[[Parser Test]] -!! input -{{TALKSPACE}} -!! result -

    Talk -

    -!! end - -!! test -Magic Word: {{TALKSPACEE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{TALKSPACEE}} -!! result -

    User_talk -

    -!! end - -!! test -Magic Word: {{SUBJECTSPACE}} -!! options -title=[[User talk:Ævar Arnfjörð Bjarmason]] -!! input -{{SUBJECTSPACE}} -!! result -

    User -

    -!! end - -!! test -Magic Word: {{SUBJECTSPACE}}, same namespace -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{SUBJECTSPACE}} -!! result -

    User -

    -!! end - -!! test -Magic Word: {{SUBJECTSPACE}}, main namespace -!! options -title=[[Parser Test]] -!! input -{{SUBJECTSPACE}} -!! result - -!! end - -!! test -Magic Word: {{SUBJECTSPACEE}} -!! options -title=[[User talk:Ævar Arnfjörð Bjarmason]] -!! input -{{SUBJECTSPACEE}} -!! result -

    User -

    -!! end - -!! test -Magic Word: {{NAMESPACE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{NAMESPACE}} -!! result -

    User -

    -!! end - -!! test -Magic Word: {{NAMESPACEE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{NAMESPACEE}} -!! result -

    User -

    -!! end - -!! test -Magic Word: {{NAMESPACENUMBER}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{NAMESPACENUMBER}} -!! result -

    2 -

    -!! end - -!! test -Magic Word: {{SUBPAGENAME}} -!! options -title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage -!! input -{{SUBPAGENAME}} -!! result -

    sub ö -

    -!! end - -!! test -Magic Word: {{SUBPAGENAMEE}} -!! options -title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage -!! input -{{SUBPAGENAMEE}} -!! result -

    sub_%C3%B6 -

    -!! end - -!! test -Magic Word: {{ROOTPAGENAME}} -!! options -title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage -!! input -{{ROOTPAGENAME}} -!! result -

    Ævar Arnfjörð Bjarmason -

    -!! end - -!! test -Magic Word: {{ROOTPAGENAMEE}} -!! options -title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage -!! input -{{ROOTPAGENAMEE}} -!! result -

    %C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason -

    -!! end - -!! test -Magic Word: {{BASEPAGENAME}} -!! options -title=[[Ævar Arnfjörð Bjarmason/sub]] subpage -!! input -{{BASEPAGENAME}} -!! result -

    Ævar Arnfjörð Bjarmason -

    -!! end - -!! test -Magic Word: {{BASEPAGENAMEE}} -!! options -title=[[Ævar Arnfjörð Bjarmason/sub]] subpage -!! input -{{BASEPAGENAMEE}} -!! result -

    %C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason -

    -!! end - -!! test -Magic Word: {{TALKPAGENAME}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{TALKPAGENAME}} -!! result -

    User talk:Ævar Arnfjörð Bjarmason -

    -!! end - -!! test -Magic Word: {{TALKPAGENAMEE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{TALKPAGENAMEE}} -!! result -

    User_talk:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason -

    -!! end - -!! test -Magic Word: {{SUBJECTPAGENAME}} -!! options -title=[[User talk:Ævar Arnfjörð Bjarmason]] -!! input -{{SUBJECTPAGENAME}} -!! result -

    User:Ævar Arnfjörð Bjarmason -

    -!! end - -!! test -Magic Word: {{SUBJECTPAGENAMEE}} -!! options -title=[[User talk:Ævar Arnfjörð Bjarmason]] -!! input -{{SUBJECTPAGENAMEE}} -!! result -

    User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason -

    -!! end - -!! test -Magic Word: {{NUMBEROFFILES}} -!! input -{{NUMBEROFFILES}} -!! result -

    4 -

    -!! end - -!! test -Magic Word: {{PAGENAME}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{PAGENAME}} -!! result -

    Ævar Arnfjörð Bjarmason -

    -!! end - -!! test -Magic Word: {{PAGENAME}} with metacharacters -!! options -title=[['foo & bar = baz']] -!! input -''{{PAGENAME}}'' -!! result -

    'foo & bar = baz' -

    -!! end - -!! test -Magic Word: {{PAGENAME}} with metacharacters (bug 26781) -!! options -title=[[*RFC 1234 http://example.com/]] -!! input -{{PAGENAME}} -!! result -

    *RFC 1234 http://example.com/ -

    -!! end - -!! test -Magic Word: {{PAGENAMEE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{PAGENAMEE}} -!! result -

    %C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason -

    -!! end - -!! test -Magic Word: {{PAGENAMEE}} with metacharacters (bug 26781) -!! options -title=[[*RFC 1234 http://example.com/]] -!! input -{{PAGENAMEE}} -!! result -

    *RFC_1234_http://example.com/ -

    -!! end - -!! test -Magic Word: {{REVISIONID}} -!! input -{{REVISIONID}} -!! result -

    1337 -

    -!! end - -!! test -Magic Word: {{SCRIPTPATH}} -!! input -{{SCRIPTPATH}} -!! result -

    / -

    -!! end - -!! test -Magic Word: {{STYLEPATH}} -!! input -{{STYLEPATH}} -!! result -

    /skins -

    -!! end - -!! test -Magic Word: {{SERVER}} -!! input -{{SERVER}} -!! result -

    http://example.org -

    -!! end - -!! test -Magic Word: {{SERVERNAME}} -!! input -{{SERVERNAME}} -!! result -

    example.org -

    -!! end - -!! test -Magic Word: {{SITENAME}} -!! input -{{SITENAME}} -!! result -

    MediaWiki -

    -!! end - -!! test -Case-sensitive magic words, when cased differently, should just be template transclusions -!! input -{{CurrentMonth}} -{{currentday}} -{{cURreNTweEK}} -{{currentHour}} -!! result -

    Template:CurrentMonth -Template:Currentday -Template:CURreNTweEK -Template:CurrentHour -

    -!! end - -!! test -Case-insensitive magic words should still work with weird casing. -!! input -{{sErVeRNaMe}} -{{LCFirst:AOEU}} -{{ucFIRST:aoeu}} -{{SERver}} -!! result -

    example.org -aOEU -Aoeu -http://example.org -

    -!! end - -!! test -Namespace 1 {{ns:1}} -!! input -{{ns:1}} -!! result -

    Talk -

    -!! end - -!! test -Namespace 1 {{ns:01}} -!! input -{{ns:01}} -!! result -

    Talk -

    -!! end - -!! test -Namespace 0 {{ns:0}} (bug 4783) -!! input -{{ns:0}} -!! result - -!! end - -!! test -Namespace 0 {{ns:00}} (bug 4783) -!! input -{{ns:00}} -!! result - -!! end - -!! test -Namespace -1 {{ns:-1}} -!! input -{{ns:-1}} -!! result -

    Special -

    -!! end - -!! test -Namespace User {{ns:User}} -!! input -{{ns:User}} -!! result -

    User -

    -!! end - -!! test -Namespace User talk {{ns:User_talk}} -!! input -{{ns:User_talk}} -!! result -

    User talk -

    -!! end - -!! test -Namespace User talk {{ns:uSeR tAlK}} -!! input -{{ns:uSeR tAlK}} -!! result -

    User talk -

    -!! end - -!! test -Namespace File {{ns:File}} -!! input -{{ns:File}} -!! result -

    File -

    -!! end - -!! test -Namespace File {{ns:Image}} -!! input -{{ns:Image}} -!! result -

    File -

    -!! end - -!! test -Namespace (lang=de) Benutzer {{ns:User}} -!! options -language=de -!! input -{{ns:User}} -!! result -

    Benutzer -

    -!! end - -!! test -Namespace (lang=de) Benutzer Diskussion {{ns:3}} -!! options -language=de -!! input -{{ns:3}} -!! result -

    Benutzer Diskussion -

    -!! end - - -!! test -Urlencode -!! input -{{urlencode:hi world?!}} -{{urlencode:hi world?!|WIKI}} -{{urlencode:hi world?!|PATH}} -{{urlencode:hi world?!|QUERY}} -!! result -

    hi+world%3F%21 -hi_world%3F! -hi%20world%3F%21 -hi+world%3F%21 -

    -!! end - -### -### Magic links -### -!! test -Magic links: internal link to RFC (bug 479) -!! input -[[RFC 123]] -!! result -

    RFC 123 -

    -!! end - -!! test -Magic links: RFC (bug 479) -!! input -RFC 822 -!! result -

    RFC 822 -

    -!! end - -!! test -Magic links: ISBN (bug 1937) -!! input -ISBN 0-306-40615-2 -!! result -

    ISBN 0-306-40615-2 -

    -!! end - -!! test -Magic links: PMID incorrectly converts space to underscore -!! input -PMID 1234 -!! result -

    PMID 1234 -

    -!! end - -### -### Templates -#### - -!! test -Nonexistent template -!! input -{{thistemplatedoesnotexist}} -!! result -

    Template:Thistemplatedoesnotexist -

    -!! end - -!! test -Template with invalid target containing tags -!! input -{{ab|{{echo|foo}}|{{echo|a}}={{echo|b}}|a = b}} -!! result -

    {{ab|foo|a=b|a = b}} -

    -!! end - -!! test -Template with invalid target containing unclosed tag -!! input -{{a|{{echo|foo}}|{{echo|a}}={{echo|b}}|a = b}} -!! result -

    {{a|foo|a=b|a = b}} -

    -!! end - -!! article -Template:test -!! text -This is a test template -!! endarticle - -!! test -Simple template -!! input -{{test}} -!! result -

    This is a test template -

    -!! end - -!! test -Template with explicit namespace -!! input -{{Template:test}} -!! result -

    This is a test template -

    -!! end - - -!! article -Template:paramtest -!! text -This is a test template with parameter {{{param}}} -!! endarticle - -!! test -Template parameter -!! input -{{paramtest|param=foo}} -!! result -

    This is a test template with parameter foo -

    -!! end - -!! article -Template:paramtestnum -!! text -[[{{{1}}}|{{{2}}}]] -!! endarticle - -!! test -Template unnamed parameter -!! input -{{paramtestnum|Main Page|the main page}} -!! result -

    the main page -

    -!! end - -!! article -Template:templatesimple -!! text -(test) -!! endarticle - -!! article -Template:templateredirect -!! text -#redirect [[Template:templatesimple]] -!! endarticle - -!! article -Template:templateasargtestnum -!! text -{{{{{1}}}}} -!! endarticle - -!! article -Template:templateasargtest -!! text -{{template{{{templ}}}}} -!! endarticle - -!! article -Template:templateasargtest2 -!! text -{{{{{templ}}}}} -!! endarticle - -!! test -Template with template name as unnamed argument -!! input -{{templateasargtestnum|templatesimple}} -!! result -

    (test) -

    -!! end - -!! test -Template with template name as argument -!! input -{{templateasargtest|templ=simple}} -!! result -

    (test) -

    -!! end - -!! test -Template with template name as argument (2) -!! input -{{templateasargtest2|templ=templatesimple}} -!! result -

    (test) -

    -!! end - -!! article -Template:templateasargtestdefault -!! text -{{{{{templ|templatesimple}}}}} -!! endarticle - -!! article -Template:templa -!! text -'''templ''' -!! endarticle - -!! test -Template with default value -!! input -{{templateasargtestdefault}} -!! result -

    (test) -

    -!! end - -!! test -Template with default value (value set) -!! input -{{templateasargtestdefault|templ=templa}} -!! result -

    templ -

    -!! end - -!! test -Template redirect -!! input -{{templateredirect}} -!! result -

    (test) -

    -!! end - -!! test -Template with argument in separate line -!! input -{{ templateasargtest | - templ = simple }} -!! result -

    (test) -

    -!! end - -!! test -Template with complex template as argument -!! input -{{paramtest| - param ={{ templateasargtest | - templ = simple }}}} -!! result -

    This is a test template with parameter (test) -

    -!! end - -!! test -Template with thumb image (with link in description) -!! input -{{paramtest| - param =[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}} -!! result -This is a test template with parameter - -!! end - -!! article -Template:complextemplate -!! text -{{{1}}} {{paramtest| - param ={{{param}}}}} -!! endarticle - -!! test -Template with complex arguments -!! input -{{complextemplate| - param ={{ templateasargtest | - templ = simple }}|[[Template:complextemplate|link]]}} -!! result -

    link This is a test template with parameter (test) -

    -!! end - -!! test -BUG 553: link with two variables in a piped link -!! input -{| -|[[{{{1}}}|{{{2}}}]] -|} -!! result - - -
    [[{{{1}}}|{{{2}}}]] -
    - -!! end - -!! test -Magic variable as template parameter -!! input -{{paramtest|param={{SITENAME}}}} -!! result -

    This is a test template with parameter MediaWiki -

    -!! end - -!! article -Template:linktest -!! text -[[{{{param}}}|link]] -!! endarticle - -!! test -Template parameter as link source -!! input -{{linktest|param=Main Page}} -!! result -

    link -

    -!! end - -!!test -Template-generated attribute string (k='v') -!!input -bar -!!result -

    bar -

    -!!end - -!!article -Template:paramtest2 -!! text -including another template, {{paramtest|param={{{arg}}}}} -!! endarticle - -!! test -Template passing argument to another template -!! input -{{paramtest2|arg='hmm'}} -!! result -

    including another template, This is a test template with parameter 'hmm' -

    -!! end - -!! article -Template:Linktest2 -!! text -Main Page -!! endarticle - -!! test -Template as link source -!! input -[[{{linktest2}}]] - -[[{{linktest2}}|Main Page]] - -[[{{linktest2}}]]Page -!! result -

    Main Page -

    Main Page -

    Main PagePage -

    -!! end - - -!! article -Template:loop1 -!! text -{{loop2}} -!! endarticle - -!! article -Template:loop2 -!! text -{{loop1}} -!! endarticle - -!! test -Template infinite loop -!! input -{{loop1}} -!! result -

    Template loop detected: Template:Loop1 -

    -!! end - -!! test -Template from main namespace -!! input -{{:Main Page}} -!! result -

    blah blah -

    -!! end - -!! article -Template:table -!! text -{| -| 1 || 2 -|- -| 3 || 4 -|} -!! endarticle - -!! test -BUG 529: Template with table, not included at beginning of line -!! input -foo {{table}} -!! result -

    foo -

    - - - - - - -
    1 2 -
    3 4 -
    - -!! end - -!! test -BUG 523: Template shouldn't eat newline (or add an extra one before table) -!! input -foo -{{table}} -!! result -

    foo -

    - - - - - - -
    1 2 -
    3 4 -
    - -!! end - -!! test -BUG 41: Template parameters shown as broken links -!! input -{{{parameter}}} -!! result -

    {{{parameter}}} -

    -!! end - -!! test -Template with targets containing wikilinks -!! input -{{[[foo]]}} - -{{[[{{echo|foo}}]]}} - -{{{{echo|[[foo}}]]}} -!! result -

    {{foo}} -

    {{foo}} -

    {{[[foo}}]] -

    -!! end - -!! article -Template:MSGNW test -!! text -''None'' of '''this''' should be -* interpreted - but rather passed unmodified -{{test}} -!! endarticle - -# hmm, fix this or just deprecate msgnw and document its behavior? -!! test -msgnw keyword -!! options -disabled -!! input -{{msgnw:MSGNW test}} -!! result -

    ''None'' of '''this''' should be -* interpreted - but rather passed unmodified -{{test}} -

    -!! end - -!! test -int keyword -!! input -{{int:youhavenewmessages|lots of money|not!}} -!! result -

    You have lots of money (not!). -

    -!! end - -!! article -Template:Includes -!! text -Foozarbar -!! endarticle - -!! test - and being included -!! input -{{Includes}} -!! result -

    Foobar -

    -!! end - -!! article -Template:Includes2 -!! text -Foobar -!! endarticle - -!! test - being included -!! input -{{Includes2}} -!! result -

    Foo -

    -!! end - - -!! article -Template:Includes3 -!! text -Foobarzar -!! endarticle - -!! test - and being included -!! input -{{Includes3}} -!! result -

    Foo -

    -!! end - -!! test - and on a page -!! input -Foozarbar -!! result -

    Foozar -

    -!! end - -!! test -Un-closed -!! input - -!! result -!! end - -!! test - on a page -!! input -Foobar -!! result -

    Foobar -

    -!! end - -!! test -Un-closed -!! input - -!! result -!! end - -!!test -Self-closed noinclude, includeonly, onlyinclude tags -!!input - - - -!!result -


    -

    -!!end - -!!test -Unbalanced includeonly and noinclude tags -!!input -{| -|a
    -|b
    -|c
    -|d
    -|} -!!result - - - - - -
    a -b -c</includeonly> -d</includeonly></includeonly> -
    - -!!end - -!! article -Template:Includeonly section -!! text - -==Includeonly section== - -==Section T-1== -!!endarticle - -!! test -Bug 6563: Edit link generation for section shown by -!! input -{{includeonly section}} -!! result -

    Includeonly section[edit]

    -

    Section T-1[edit]

    - -!! end - -# Uses same input as the contents of [[Template:Includeonly section]] -!! test -Bug 6563: Section extraction for section shown by -!! options -section=T-2 -!! input - -==Includeonly section== - -==Section T-2== -!! result -==Section T-2== -!! end - -!! test -Bug 6563: Edit link generation for section suppressed by -!! input - -==Includeonly section== - -==Section 1== -!! result -

    Section 1[edit]

    - -!! end - -!! test -Bug 6563: Section extraction for section suppressed by -!! options -section=1 -!! input - -==Includeonly section== - -==Section 1== -!! result -==Section 1== -!! end - -!! test -Un-closed -!! input - -!! result -!! end - -# TODO: test with DOM fragment reuse! -!! test -Parsoid: DOM fragment reuse -!! options -parsoid=wt2wt,wt2html -!! input -a{{echo|b
    c}}d - -a{{echo|b -
    -c}}d - -{{echo|a - -
    - -b}} -!! result -ab -
    cd - - -

    ab

    - -
    - -

    cd

    - - -

    a

    - - -
    - - -

    b

    -!! end - -!! test -Parsoid: Merge double tds (bug 50603) -!! options -parsoid -!! input -{| -|{{echo|{{!}} foo}} -|} -!! result - - -
    foo
    -!! end - -!! test -Parsoid: Merge double tds in nested transclusion content (bug 50603) -!! options -parsoid -!! input -{{echo|
    }} -{| -|{{echo|{{!}} foo}} -|} -{{echo|
    }} -!! result -
    - - -
    foo
    -
    -!! end - -### -### and in attributes -### -!!test -0. includeonly around the entire attribute -!!input -id="v1"id="v2">bar -!!result -

    bar -

    -!!end - -!!test -1. includeonly in html attr key -!!input -idabout="foo">bar -!!result -

    bar -

    -!!end - -!!test -2. includeonly in html attr value -!!input -bar -"v1""v2">bar -!!result -

    bar -bar -

    -!!end - -!!test -3. includeonly in part of an attr value -!!input -bar -!!result -

    bar -

    -!!end - -### -### Testing parsing of templates where a template arg -### has the same name as the template itself. -### - -!! article -Template:quote -!! text -{{{quote|{{{1}}}}}} -!! endarticle - -!!test -Templates: Template Name/Arg clash: 1. Use of positional param -!!input -{{quote|foo}} -!!result -

    foo -

    -!!end - -!!test -Templates: Template Name/Arg clash: 2. Use of named param -!!input -{{quote|quote=foo}} -!!result -

    foo -

    -!!end - -!!test -Templates: Template Name/Arg clash: 3. Use of named param with empty input -!!input -{{quote|quote}} -!!result -

    quote -

    -!!end - -### -### Parsoid-centric tests to stress Parsoid's ability to RT them unchanged -### - -!!test -Templates: 1. Simple use -!!input -{{echo|Foo}} -!!result -

    Foo -

    -!!end - -!!test -Templates: 2. Inside a block tag -!!input -
    {{echo|Foo}}
    -
    {{echo|Foo}}
    -!!result -
    Foo
    -
    Foo
    - -!!end - -!!test -Templates: P-wrapping: 1a. Templates on consecutive lines -!!input -{{echo|Foo}} -{{echo|bar}} -!!result -

    Foo -bar -

    -!!end - -!!test -Templates: P-wrapping: 1b. Templates on consecutive lines -!!input -Foo - -{{echo|bar}} -{{echo|baz}} -!!result -

    Foo -

    bar -baz -

    -!!end - -!!test -Templates: P-wrapping: 1c. Templates on consecutive lines -!!input -{{echo|Foo}} -{{echo|bar}}
    baz
    -!!result -

    Foo -

    -bar
    baz
    - -!!end - -!!test -Templates: P-wrapping: 1d. Template preceded by comment-only line -!!options -parsoid -!!input - -{{echo|Bar}} -!!result - - -

    Bar

    -!!end - -!!test -Templates: Inline Text: 1. Multiple tmeplate uses -!!input -{{echo|Foo}}bar{{echo|baz}} -!!result -

    Foobarbaz -

    -!!end - -!!test -Templates: Inline Text: 2. Back-to-back template uses -!!input -{{echo|Foo}}{{echo|bar}} -!!result -

    Foobar -

    -!!end - -!!test -Templates: Block Tags: 1. Multiple template uses -!!input -{{echo|
    Foo
    }}
    bar
    {{echo|
    baz
    }} -!!result -
    Foo
    bar
    baz
    - -!!end - -!!test -Templates: Block Tags: 2. Back-to-back template uses -!!input -{{echo|
    Foo
    }}{{echo|
    bar
    }} -!!result -
    Foo
    bar
    - -!!end - -!!test -Templates: Links: 1. Simple example -!!input -{{echo|[[Foo|bar]]}} -!!result -

    bar -

    -!!end - -!!test -Templates: Links: 2. Generation of link href -!!input -[[{{echo|Foo}}|bar]] -!!result -

    bar -

    -!!end - -!!test -Templates: Links: 3. Generation of part of a link href -!!input -[[Fo{{echo|o}}|bar]] - -[[Foo{{echo|bar}}]] - -[[Foo{{echo|bar}}baz]] - -[[Foo{{echo|bar}}|bar]] - -[[:Foo{{echo|bar}}]] - -[[:Foo{{echo|bar}}|bar]] -!!result -

    bar -

    Foobar -

    Foobarbaz -

    bar -

    Foobar -

    bar -

    -!!end - -!!test -Templates: Links: 4. Multiple templates generating link href -!!input -[[{{echo|F}}{{echo|o}}ob{{echo|ar}}]] -!!result -

    Foobar -

    -!!end - -!!test -Templates: Links: 5. Generation of link text -!!input -[[Foo|{{echo|bar}}]] -!!result -

    bar -

    -!!end - -!!test -Templates: Links: 5. Nested templates (only outermost template should be marked) -!!input -{{echo|[[{{echo|Foo}}|bar]]}} -!!result -

    bar -

    -!!end - -!!test -Templates: HTML Tag: 1. Generation of HTML attr. key -!!input -
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tag: 2. Generation of HTML attr. value -!!input -
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tag: 3. Generation of HTML attr key and value -!!input -
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tag: 4. Generation of starting piece of HTML attr value -!!input -
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tag: 5. Generation of middle piece of HTML attr value -!!input -
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tag: 6. Generation of end piece of HTML attr value -!!input -
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tag: 7. Generation of partial attribute key string -!!input -
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 1. Generating start of a HTML table -!!input -{{echo|}}
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 2a. Generating middle of a HTML table -!!input -{{echo|}}
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 2b. Generating middle of a HTML table -!!input -{{echo|}}
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 3. Generating end of a HTML table -!!input -{{echo|
    foo
    }} -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 4a. Generating a single tag of a HTML table -!!input -{{echo|}}
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 4b. Generating a single tag of a HTML table -!!input -{{echo|}}
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 4c. Generating a single tag of a HTML table -!!input -{{echo|
    }}foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 4d. Generating a single tag of a HTML table -!!input -}}
    foo{{echo|
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 4e. Generating a single tag of a HTML table -!!input -{{echo|}}
    foo
    -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 4f. Generating a single tag of a HTML table -!!input -{{echo|
    foo
    }} -!!result -
    foo
    - -!!end - -!!test -Templates: HTML Tables: 5. Proper fostering of categories from inside -!!options -parsoid=wt2html,wt2wt -!!input -[[Category:foo1]]
    foo
    - -[[Category:bar1]][[Category:bar2]]
    foo
    -!!result -
    foo
    - -
    foo
    -!!end - -!!test -Templates: Wiki Tables: 1a. Fostering of entire template content -!!input -{| -{{echo|a}} -|} -!!result - -a -
    - -!!end - -!!test -Templates: Wiki Tables: 1b. Fostering of entire template content -!!input -{| -{{echo|
    }} -foo -{{echo|
    }} -|} -!!result - -
    -

    foo -

    -
    -
    - -!!end - -!!test -Templates: Wiki Tables: 2. Fostering of partial template content -!!input -{| -{{echo|a -
    b
    }} -|} -!!result - -a -
    b
    -
    - -!!end - -!!test -Templates: Wiki Tables: 3. td-content via multiple templates -!!input -{| -{{echo|{{pipe}}a}}{{echo|b}} -|} -!!result - - -
    ab -
    - -!!end - -!!test -Templates: Wiki Tables: 4. Templated tags, no content -!!input -{{tbl-start}} -{{tbl-end}} -!!result - -
    - -!!end - -!!test -Templates: Wiki Tables: 5. Templated tags, regular td-tags -!!input -{{tbl-start}} -|foo -{{tbl-end}} -!!result - - -
    foo -
    - -!!end - -!!test -Templates: Wiki Tables: 6. Templated tags, templated td-tags -!!input -{{tbl-start}} -{{!}}foo -{{tbl-end}} -!!result - - -
    foo -
    - -!!end - -!!test -Templates: Lists: Multi-line list-items via templates -!!input -*{{echo|a {{nonexistent| -unused}}}} -*{{echo|b {{nonexistent| -unused}}}} -!!result - - -!!end - -!!test -Templates: Ugly nesting: 1. Quotes opened/closed across templates (echo) -!!input -{{echo|''a}}{{echo|b''c''d}}{{echo|''e}} -!!result -

    abcde -

    -!!end - -!!test -Templates: Ugly nesting: 2. Quotes opened/closed across templates (echo_with_span) -(PHP parser generates misnested html) -!! options -parsoid -!!input -{{echo_with_span|''a}}{{echo_with_span|b''c''d}}{{echo_with_span|''e}} -!!result -

    abcde

    -!!end - -!!test -Templates: Ugly nesting: 3. Quotes opened/closed across templates (echo_with_div) -(PHP parser generates misnested html; Parsoid html2wt mode adds newlines between {{echo}}s) -!! options -parsoid=wt2html,wt2wt -!!input -{{echo_with_div|''a}}{{echo_with_div|b''c''d}}{{echo_with_div|''e}} -!!result -
    a
    -
    bcd
    -
    e
    -!!end - -!!test -Templates: Ugly nesting: 4. Divs opened/closed across templates -!!input -a
    b{{echo|c
    d}}e -!!result -a
    bc
    de - -!!end - -!!test -Templates: Ugly templates: 1. Navbox template parses badly leading to table misnesting -(Parsoid-centric) -!! options -parsoid -!!input -{| -|{{echo|foo}} -|bar -|} -!!result - - - - -
    foo
    -bar - -!!end - -!!test -Templates: Ugly templates: 2. Navbox template parses badly leading to table misnesting -(Parsoid-centric) -!! options -parsoid -!!input - - - - -
    - - -
    1. {{echo|foo
    }}
    bar 2. {{echo|baz
    }} - - - abc - - - - - - xyz - - -!!result - - - - -
    - - -
    1. foo
    bar 2. baz
    - - - abc - - - - - - xyz - - -!!end - -!! test -Templates: Ugly templates: 3. newline-only template parameter -!! input -foo {{echo| -}} -!! result -

    foo -

    -!! end - -# This looks like a bug: a single newline triggers p/br for some reason. -!! test -Templates: Ugly templates: 4. newline-only template parameter inconsistency -!! input -{{echo| -}} -!! result -


    -

    -!! end - - -!!test -Parser Functions: 1. Simple example -!!input -{{uc:foo}} -!!result -

    FOO -

    -!!end - -!!test -Parser Functions: 2. Nested use (only outermost should be marked up) -!!input -{{uc:{{lc:FOO}}}} -!!result -

    FOO -

    -!!end - -### -### Pre-save transform tests -### -!! test -pre-save transform: subst: -!! options -PST -!! input -{{subst:test}} -!! result -This is a test template -!! end - -!! test -pre-save transform: normal template -!! options -PST -!! input -{{test}} -!! result -{{test}} -!! end - -!! test -pre-save transform: nonexistent template -!! options -PST -!! input -{{thistemplatedoesnotexist}} -!! result -{{thistemplatedoesnotexist}} -!! end - - -!! test -pre-save transform: subst magic variables -!! options -PST -!! input -{{subst:SITENAME}} -!! result -MediaWiki -!! end - -# This is bug 89, which I fixed. -- wtm -!! test -pre-save transform: subst: templates with parameters -!! options -pst -!! input -{{subst:paramtest|param="something else"}} -!! result -This is a test template with parameter "something else" -!! end - -!! article -Template:nowikitest -!! text -'''not wiki''' -!! endarticle - -!! test -pre-save transform: nowiki in subst (bug 1188) -!! options -pst -!! input -{{subst:nowikitest}} -!! result -'''not wiki''' -!! end - - -!! article -Template:commenttest -!! text -This template has in it. -!! endarticle - -!! test -pre-save transform: comment in subst (bug 1936) -!! options -pst -!! input -{{subst:commenttest}} -!! result -This template has in it. -!! end - -!! test -pre-save transform: unclosed tag -!! options -pst noxml -!! input -'''not wiki''' -!! result -'''not wiki''' -!! end - -!! test -pre-save transform: mixed tag case -!! options -pst noxml -!! input -'''not wiki''' -!! result -'''not wiki''' -!! end - -!! test -pre-save transform: unclosed comment in -!! options -pst noxml -!! input -wikinowiki -!!result - -!!end - -!! test -pre-save transform: comment containing extension -!! options -pst -!! input - -!!result - -!!end - -!! test -pre-save transform: comment containing nowiki -!! options -pst -!! input - -!!result - -!!end - -!! test -pre-save transform: in subst (bug 3298) -!! options -pst -!! input -{{subst:Includes}} -!! result -Foobar -!! end - -!! test -pre-save transform: in subst (bug 3298) -!! options -pst -!! input -{{subst:Includes2}} -!! result -Foo -!! end - -!! article -Template:SubstTest -!!text -{{subst:Includes}} -!! endarticle - -!! article -Template:SafeSubstTest -!! text -{{safesubst: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 -

    Foobar -

    -!! end - -!! test: -subst: does not work during normal parse -!! input -{{SubstTest}} -!! result -

    {{subst:Includes}} -

    -!! end - -!! test -pre-save transform: context links ("pipe trick") -!! options -pst -!! input -[[Article (context)|]] -[[Bar:Article|]] -[[:Bar:Article|]] -[[Bar:Article (context)|]] -[[:Bar:Article (context)|]] -[[|Article]] -[[|Article (context)]] -[[Bar:X (Y) Z|]] -[[:Bar:X (Y) Z|]] -!! result -[[Article (context)|Article]] -[[Bar:Article|Article]] -[[:Bar:Article|Article]] -[[Bar:Article (context)|Article]] -[[:Bar:Article (context)|Article]] -[[Article]] -[[Article (context)]] -[[Bar:X (Y) Z|X (Y) Z]] -[[:Bar:X (Y) Z|X (Y) Z]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with interwiki prefix -!! options -pst -!! input -[[interwiki:Article|]] -[[:interwiki:Article|]] -[[interwiki:Bar:Article|]] -[[:interwiki:Bar:Article|]] -!! result -[[interwiki:Article|Article]] -[[:interwiki:Article|Article]] -[[interwiki:Bar:Article|Bar:Article]] -[[:interwiki:Bar:Article|Bar:Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with parens in title -!! options -pst title=[[Somearticle (context)]] -!! input -[[|Article]] -!! result -[[Article (context)|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with comma in title -!! options -pst title=[[Someplace, Somewhere]] -!! input -[[|Otherplace]] -[[Otherplace, Elsewhere|]] -[[Otherplace, Elsewhere, Anywhere|]] -!! result -[[Otherplace, Somewhere|Otherplace]] -[[Otherplace, Elsewhere|Otherplace]] -[[Otherplace, Elsewhere, Anywhere|Otherplace]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with parens and comma -!! options -pst title=[[Someplace (IGNORED), Somewhere]] -!! input -[[|Otherplace]] -[[Otherplace (place), Elsewhere|]] -!! result -[[Otherplace, Somewhere|Otherplace]] -[[Otherplace (place), Elsewhere|Otherplace]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with comma and parens -!! options -pst title=[[Who, me? (context)]] -!! input -[[|Yes, you.]] -[[Me, Myself, and I (1937 song)|]] -!! result -[[Yes, you. (context)|Yes, you.]] -[[Me, Myself, and I (1937 song)|Me, Myself, and I]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace -!! options -pst title=[[Ns:Somearticle]] -!! input -[[|Article]] -!! result -[[Ns:Article|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace and parens -!! options -pst title=[[Ns:Somearticle (context)]] -!! input -[[|Article]] -!! result -[[Ns:Article (context)|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace and comma -!! options -pst title=[[Ns:Somearticle, Context, Whatever]] -!! input -[[|Article]] -!! result -[[Ns:Article, Context, Whatever|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace, comma and parens -!! options -pst title=[[Ns:Somearticle, Context (context)]] -!! input -[[|Article]] -!! result -[[Ns:Article (context)|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace, parens and comma -!! options -pst title=[[Ns:Somearticle (IGNORED), Context]] -!! input -[[|Article]] -!! result -[[Ns:Article, Context|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with full-width parens and no space (Japanese and Chinese style, bug 30149) -!! options -pst -!! input -[[Article(context)|]] -[[Bar:Article(context)|]] -[[:Bar:Article(context)|]] -[[|Article(context)]] -[[Bar:X(Y)Z|]] -[[:Bar:X(Y)Z|]] -!! result -[[Article(context)|Article]] -[[Bar:Article(context)|Article]] -[[:Bar:Article(context)|Article]] -[[Article(context)]] -[[Bar:X(Y)Z|X(Y)Z]] -[[:Bar:X(Y)Z|X(Y)Z]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with full-width parens and space (Japanese and Chinese style, bug 30149) -!! options -pst -!! input -[[Article (context)|]] -[[Bar:Article (context)|]] -[[:Bar:Article (context)|]] -[[|Article (context)]] -[[Bar:X (Y) Z|]] -[[:Bar:X (Y) Z|]] -!! result -[[Article (context)|Article]] -[[Bar:Article (context)|Article]] -[[:Bar:Article (context)|Article]] -[[Article (context)]] -[[Bar:X (Y) Z|X (Y) Z]] -[[:Bar:X (Y) Z|X (Y) Z]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with parens and no space (Korean style, bug 30149) -!! options -pst -!! input -[[Article(context)|]] -[[Bar:Article(context)|]] -[[:Bar:Article(context)|]] -[[|Article(context)]] -[[Bar:X(Y)Z|]] -[[:Bar:X(Y)Z|]] -!! result -[[Article(context)|Article]] -[[Bar:Article(context)|Article]] -[[:Bar:Article(context)|Article]] -[[Article(context)]] -[[Bar:X(Y)Z|X(Y)Z]] -[[:Bar:X(Y)Z|X(Y)Z]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with commas (bug 21660) -!! options -pst -!! input -[[Article (context), context|]] -[[Article (context),context|]] -[[Bar:Article (context), context|]] -[[Bar:Article (context),context|]] -[[:Bar:Article (context), context|]] -[[:Bar:Article (context),context|]] -!! result -[[Article (context), context|Article]] -[[Article (context),context|Article]] -[[Bar:Article (context), context|Article]] -[[Bar:Article (context),context|Article]] -[[:Bar:Article (context), context|Article]] -[[:Bar:Article (context),context|Article]] -!! end - -!! test -pre-save transform: trim trailing empty lines -!! options -pst -!! input -Empty lines are trimmed - - - - -!! result -Empty lines are trimmed -!! end - -!! test -pre-save transform: Signature expansion -!! options -pst -!! input -* ~~~ -* ~~~ -* ~~~ -* ~~~ -!! result -* [[Special:Contributions/127.0.0.1|127.0.0.1]] -* [[Special:Contributions/127.0.0.1|127.0.0.1]] -* [[Special:Contributions/127.0.0.1|127.0.0.1]] -* [[Special:Contributions/127.0.0.1|127.0.0.1]] -!! end - - -!! test -pre-save transform: Signature expansion in nowiki tags (bug 93) -!! options -pst disabled -!! input -Shall not expand: - -~~~~ - -~~~~ - -~~~~ - -~~~~ - -{{subst:Foo}} shall be converted to FOO - -As well as inside noinclude/onlyinclude -{{subst:Foo}} -{{subst:Foo}} - -But not inside includeonly -{{subst:Foo}} -!! result -Shall not expand: - -~~~~ - -~~~~ - -~~~~ - -~~~~ - -FOO shall be converted to FOO - -As well as inside noinclude/onlyinclude -FOO -FOO - -But not inside includeonly -{{subst:Foo}} -!! end - -!! test -Parsoid: Recognize nowiki with trailing space in tags -!! options -parsoid=wt2html -!! input -
    [[foo]] - -ab - -cd - -ef -!! result -

    <div>[[foo]]

    -

    ab

    -

    cd

    -

    ef

    -!! end - -!! test -Parsoid: Recognize nowiki with odd capitalization -!! options -parsoid=wt2html -!! input -
    [[foo]] -!! result -

    <div>[[foo]]

    -!! end - - -!! test -Parsoid: Escape nowiki with trailing space in tags -!! options -parsoid=html2wt -!! input -<nowiki > foo </nowiki > - -a<nowiki />b - -c<nowiki/ >d -!! result -

    <nowiki > foo </nowiki >

    -

    a<nowiki />b

    -

    c<nowiki/ >d

    -!! end - -!! test -Parsoid: Escape weird noWikI capitalizations -!! options -parsoid=html2wt -!! input -<noWikI > foo </NoWikI > -!! result -

    <noWikI > foo </NoWikI >

    -!! end - -### -### Message transform tests -### -!! test -message transform: magic variables -!! options -msg -!! input -{{SITENAME}} -!! result -MediaWiki -!! end - -!! test -message transform: should not transform wiki markup -!! options -msg -!! input -''test'' -!! result -''test'' -!! end - -!! test -message transform: in transcluded template (bug 4926) -!! options -msg -!! input -{{Includes}} -!! result -Foobar -!! end - -!! test -message transform: in transcluded template (bug 4926) -!! options -msg -!! input -{{Includes2}} -!! result -Foo -!! end - -!! test -{{#special:}} page name, known -!! options -msg -!! input -{{#special:Recentchanges}} -!! result -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 -msg -!! input -{{#special:foobar nonexistent}} -!! result -Special:Foobar nonexistent -!! end - -!! test -{{#speciale:}} page name, known -!! options -msg -!! input -{{#speciale:Recentchanges}} -!! result -Special:RecentChanges -!! end - -!! test -{{#speciale:}} page name with subpage, known -!! options -msg -!! input -{{#speciale:Recentchanges/param}} -!! result -Special:RecentChanges/param -!! end - -!! test -{{#speciale:}} page name, unknown -!! options -msg -!! input -{{#speciale:foobar nonexistent}} -!! result -Special:Foobar_nonexistent -!! end - -### -### Images -### -### For Parsoid-specific tests, see -#### http://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images - -!! test -Simple image (php) -!! options -php -!! input -[[Image:foobar.jpg]] -!! result -

    Foobar.jpg -

    -!! end - -!! test -Simple image (parsoid) -!! options -parsoid=wt2html -!! input -[[Image:foobar.jpg]] -!! result -

    -

    -!! end - -!! test -Simple image (using File: namespace, now canonical) (php) -!! options -php -!! input -[[File:foobar.jpg]] -!! result -

    Foobar.jpg -

    -!! end - -!! test -Simple image (using File: namespace, now canonical) (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg]] -!! result -

    -

    -!! end - -!! test -Right-aligned image (php) -!! options -php -!! input -[[Image:foobar.jpg|right]] -!! result -
    Foobar.jpg
    - -!! end - -!! test -Right-aligned image (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|right]] -!! result -
    -!! end - -!! test -Image with caption (php) -!! options -php -!! input -[[File:Foobar.jpg|right|Caption text]] -!! result -
    Caption text
    - -!! end - -!! test -Image with caption (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|right|Caption text]] -!! result -
    Caption text
    -!! end - -!! test -Image with empty attribute (php) -!! options -php -!! input -[[File:Foobar.jpg|right||Caption text]] -!! result -
    Caption text
    - -!! end - -!! test -Image with empty attribute (parsoid) -!! options -parsoid=wt2html -!! input -[[File:Foobar.jpg|right||Caption text]] -!! result -
    Caption text
    -!! end - -!! test -Image with attributes from template (php) -!! options -php -!! input -[[File:Foobar.jpg|{{image_attribs}}]] -!! result -
    Caption text
    - -!! end - -!! test -Image with attributes from template (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|{{image_attribs}}]] -!! result -
    Caption text
    -!! end - -!! test -Image with link tails (php) -!! options -php -!! input -123[[File:Foobar.jpg]]456 -123[[File:Foobar.jpg|right]]456 -123[[File:Foobar.jpg|thumb]]456 -!! result -

    123Foobar.jpg456 -

    -123
    Foobar.jpg
    456 -123
    Foobar.jpg
    456 - -!! end - -!! test -Image with link tails (parsoid) -!! options -parsoid -!! input -123[[File:Foobar.jpg]]456 -123[[File:Foobar.jpg|right]]456 -123[[File:Foobar.jpg|thumb]]456 -!! result -

    123456

    -123
    456 -123
    456 -!! end - -!! test -Image with multiple captions -- only last one is accepted (php) -!! options -php -!! input -[[File:Foobar.jpg|right|Caption1 - ignored|[[Caption2]] - ignored|Caption3 - accepted]] -!! result -
    Caption3 - accepted
    - -!! end - -!! test -Image with multiple captions -- only last one is accepted (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|right|Caption1 - ignored|[[Caption2]] - ignored|Caption3 - accepted]] -!! result -
    Caption3 - accepted
    -!! end - -!! test -Image with width attribute at different positions (php) -!! options -php -!! input -[[File:Foobar.jpg|200px|right|Caption]] -[[File:Foobar.jpg|right|200px|Caption]] -[[File:Foobar.jpg|right|Caption|200px]] -!! result -
    Caption
    -
    Caption
    -
    Caption
    - -!! end - -!! test -Image with width attribute at different positions (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|200px|right|Caption]] -[[File:Foobar.jpg|right|200px|Caption]] -[[File:Foobar.jpg|right|Caption|200px]] -!! result -
    Caption
    -
    Caption
    -
    Caption
    -!! end - -!! test -Image with link parameter, wiki target (php) -!! options -php -!! input -[[File:Foobar.jpg|link=Main Page]] -!! result -

    Foobar.jpg -

    -!! end - -!! test -Image with link parameter, wiki target (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|link=Main Page]] -!! result -

    -!! end - -!! test -Image with link parameter, URL target (php) -!! options -php -!! input -[[File:Foobar.jpg|link=http://example.com/]] -!! result -

    Foobar.jpg -

    -!! end - -# parsoid bug 49293 (part 1) -!! test -Image with link parameter, URL target (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|link=http://example.com/]] -!! result -

    -!! end - -!! test -Image with link parameter, protocol-less URL target (php) -!! options -php -!! input -[[File:Foobar.jpg|link=//example.com/]] -!! result -

    Foobar.jpg -

    -!! end - -# parsoid bug 49293 (part 2) -!! test -Image with link parameter, protocol-less URL target (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|link=//example.com/]] -!! result -

    -!! end - -!! test -Image with link parameter, wgExternalLinkTarget -!! input -[[Image:foobar.jpg|link=http://example.com/]] -!! config -wgExternalLinkTarget='foobar' -!! result -

    Foobar.jpg -

    -!! end - -!! test -Image with link parameter, wgNoFollowLinks set to false -!! input -[[Image:foobar.jpg|link=http://example.com/]] -!! config -wgNoFollowLinks=false -!! result -

    Foobar.jpg -

    -!! end - -!! test -Image with link parameter, wgNoFollowDomainExceptions -!! input -[[Image:foobar.jpg|link=http://example.com/]] -!! config -wgNoFollowDomainExceptions='example.com' -!! result -

    Foobar.jpg -

    -!! end - -!! test -Image with link parameter, wgExternalLinkTarget, unnamed parameter -!! input -[[Image:foobar.jpg|link=http://example.com/|Title]] -!! config -wgExternalLinkTarget='foobar' -!! result -

    Title -

    -!! end - -!! test -Image with empty link parameter (php) -!! options -php -!! input -[[File:Foobar.jpg|link=]] -!! result -

    Foobar.jpg -

    -!! end - -!! test -Image with empty link parameter (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|link=]] -!! result -

    -!! end - -!! test -Image with link parameter (wiki target) and unnamed parameter (php) -!! options -php -!! input -[[File:Foobar.jpg|link=Main Page|Title]] -!! result -

    Title -

    -!! end - -!! test -Image with link parameter (wiki target) and unnamed parameter (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|link=Main Page|Title]] -!! result -

    -!! end - -!! test -Image with link parameter (URL target) and unnamed parameter (php) -!! options -php -!! input -[[File:Foobar.jpg|link=http://example.com/|Title]] -!! result -

    Title -

    -!! end - -!! test -Image with link parameter (URL target) and unnamed parameter (parsoid) -!! options -parsoid -!! input -[[File:Foobar.jpg|link=http://example.com/|Title]] -!! result -

    -!! end - -!! test -Thumbnail image with link parameter -!! options -php -!! input -[[Image:foobar.jpg|thumb|link=http://example.com/|Title]] -!! result -
    Title
    - -!! end - -!! test -Manually-specified thumbnail image -!! options -php -!! input -[[Image:Foobar.jpg|thumb=Thumb.png|Title]] -!! result -
    Title
    - -!! end - -!! test -Manually-specified thumbnail image with explicit link to wiki page -!! options -php -!! input -[[Image:Foobar.jpg|thumb=Thumb.png|link=Main Page|Title]] -!! result -
    Title
    - -!! end - -!! test -Manually-specified thumbnail image with explicit link to url -!! options -php -!! input -[[Image:Foobar.jpg|thumb=Thumb.png|link=http://example.com|Title]] -!! result -
    Title
    - -!! end - -!! test -Manually-specified thumbnail image with explicit no link -!! options -php -!! input -[[Image:Foobar.jpg|thumb=Thumb.png|link=|Title]] -!! result -
    Title
    - -!! end - -!! test -Manually-specified thumbnail image with explicit link and alt text -!! options -php -!! input -[[Image:Foobar.jpg|thumb=Thumb.png|link=Main Page|alt=alttext|Title]] -!! result -
    alttext
    Title
    - -!! end - -!! test -Image with frame and link -!! input -[[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]]] -!! result -
    This is a test image Main Page
    - -!! end - -!! test -Image with frame and link and explicit alt -!! input -[[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]|alt=Altitude]] -!! result -
    Altitude
    This is a test image Main Page
    - -!! end - -!! test -Image with wiki markup in implicit alt -!! input -[[Image:Foobar.jpg|testing '''bold''' in alt]] -!! result -

    testing bold in alt -

    -!! end - -!! test -Image with wiki markup in explicit alt -!! input -[[Image:Foobar.jpg|alt=testing '''bold''' in alt]] -!! result -

    testing bold in alt -

    -!! end - -!! test -Link to image page- image page normally doesn't exists, hence edit link -Add test with existing image page -#

    Image:test -!! input -[[:Image:test]] -!! result -

    Image:test -

    -!! end - -!! test -bug 18784 Link to non-existent image page with caption should use caption as link text -!! input -[[:Image:test|caption]] -!! result -

    caption -

    -!! end - -!! test -Frameless image caption with a free URL -!! input -[[Image:foobar.jpg|http://example.com]] -!! result -

    http://example.com -

    -!! end - -!! test -Thumbnail image caption with a free URL -!! input -[[Image:foobar.jpg|thumb|http://example.com]] -!! result - - -!! end - -!! test -Thumbnail image caption with a free URL and explicit alt -!! input -[[Image:foobar.jpg|thumb|http://example.com|alt=Alteration]] -!! result - - -!! end - -!! test -SVG thumbnails with no language set -!! options -!! input -[[File:Foobar.svg|thumb|width=200]] -!! result -
    width=200
    - -!! end - -!! test -SVG thumbnails with language de -!! options -!! input -[[File:Foobar.svg|thumb|width=200|lang=de]] -!! result -
    width=200
    - -!! end - -!! test -SVG thumbnails with invalid language code -!! options -!! input -[[File:Foobar.svg|thumb|width=200|lang=invalid.language.code]] -!! result -
    lang=invalid.language.code
    - -!! end - -!! test -BUG 1887: A ISBN with a thumbnail -!! input -[[Image:foobar.jpg|thumb|ISBN 1235467890]] -!! result - - -!! end - -!! test -BUG 1887: A RFC with a thumbnail -!! input -[[Image:foobar.jpg|thumb|This is RFC 12354]] -!! result -
    This is RFC 12354
    - -!! end - -!! test -BUG 1887: A mailto link with a thumbnail -!! input -[[Image:foobar.jpg|thumb|Please mailto:nobody@example.com]] -!! result - - -!! end - -# Pending resolution to bug 368 -!! test -BUG 648: Frameless image caption with a link -!! input -[[Image:foobar.jpg|text with a [[link]] in it]] -!! result -

    text with a link in it -

    -!! end - -!! test -BUG 648: Frameless image caption with a link (suffix) -!! input -[[Image:foobar.jpg|text with a [[link]]foo in it]] -!! result -

    text with a linkfoo in it -

    -!! end - -!! test -BUG 648: Frameless image caption with an interwiki link -!! input -[[Image:foobar.jpg|text with a [[MeatBall:Link]] in it]] -!! result -

    text with a MeatBall:Link in it -

    -!! end - -!! test -BUG 648: Frameless image caption with a piped interwiki link -!! input -[[Image:foobar.jpg|text with a [[MeatBall:Link|link]] in it]] -!! result -

    text with a link in it -

    -!! end - -!! test -Escape HTML special chars in image alt text -!! input -[[Image:foobar.jpg|& < > "]] -!! result -

    & < > " -

    -!! end - -!! test -BUG 499: Alt text should have Ӓ, not &1234; -!! input -[[Image:foobar.jpg|♀]] -!! result -

    ♀ -

    -!! end - -!! test -Broken image caption with link -!! input -[[Image:Foobar.jpg|thumb|This is a broken caption. But [[Main Page|this]] is just an ordinary link. -!! result -

    [[Image:Foobar.jpg|thumb|This is a broken caption. But this is just an ordinary link. -

    -!! end - -!! test -Image caption containing another image -!! input -[[Image:Foobar.jpg|thumb|This is a caption with another [[Image:icon.png|image]] inside it!]] -!! result -
    This is a caption with another image inside it!
    - -!! end - -!! test -Image caption containing a newline -!! input -[[Image:Foobar.jpg|This -*is some text]] -!! result -

    This *is some text -

    -!!end - -!!test -Parsoid: Image caption containing leading space -(The leading space should not trigger nowiki escaping in wt2wt mode) -!! input -[[Image:Foobar.jpg|thumb| bar]] -!! result -
    bar
    - -!!end - -!! test -Bug 3090: External links other than http: in image captions -!! input -[[Image:Foobar.jpg|thumb|200px|This caption has [irc://example.net irc] and [https://example.com Secure] ext links in it.]] -!! result -
    This caption has irc and Secure ext links in it.
    - -!! end - -!! test -Custom class -!! input -[[Image:foobar.jpg|a|class=b]] -!! result -

    a -

    -!! end - -!! test -Localized image handling (1). -!! options -language=es -!! input -[[Archivo:Foobar.jpg|izquierda|enlace=foo|caption]] -!! result -
    caption
    - -!! end - -!! test -Localized image handling (2). -!! options -language=es -!! input -[[Archivo:Foobar.jpg|miniatura|izquierda|enlace=foo|caption]] -!! result -
    caption
    - -!! end - -!! test -"border", "frameless" and "class" attributes on an image. -!! input -[[File:Foobar.jpg|frameless|border|class=extra|caption]] -!! result -

    caption -

    -!! end - -!! article -File:Barfoo.jpg -!! text -#REDIRECT [[File:Barfoo.jpg]] -!! endarticle - -!! test -Redirected image -!! input -[[Image:Barfoo.jpg]] -!! result -

    File:Barfoo.jpg -

    -!! end - -!! test -Missing image with uploads disabled -!! options -wgEnableUploads=0 -!! input -[[Image:Foobaz.jpg]] -!! result -

    File:Foobaz.jpg -

    -!! end - -# Parsoid-specific testing for images -# http://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images -# Currently imperfect due to a flaw in the Parsoid testrunner -# Work in progress -# THESE TESTS SHOULD BE MOVED UP and merged with the php-specific -# image tests. - -!! test -Parsoid-specific image handling - simple image with size and middle alignment -!! options -parsoid -!! input -[[Image:Foobar.jpg|50px|middle]] -!! result -

    - - - - - -

    -!! end - -!! test -Parsoid-specific image handling - simple image with both sizes, a baseline alignment, and a caption -!! options -parsoid -!! input -[[Image:Foobar.jpg|500x10px|baseline|caption]] -!! result -

    - - - - - -

    -!! end - -!! test -Parsoid-specific image handling - simple image with border and size spec -!! options -parsoid -!! input -[[Image:Foobar.jpg|50px|border|caption]] -!! result -

    - - - - - -

    -!! end - -!! test -Parsoid-specific image handling - thumbnail with halign, valign, and caption -!! options -parsoid -!! input -[[Image:Foobar.jpg|thumb|left|baseline|caption content]] -!! result -
    - - - -
    caption content
    -
    -!! end - -!! test -Parsoid-specific image handling - thumbnail with specific size, halign, valign, and caption -!! options -parsoid -!! input -[[Image:Foobar.jpg|thumb|50x50px|right|middle|caption]] -!! result -
    - - - -
    caption
    -
    -!! end - -!! test -Parsoid-specific image handling - framed image with specific size and caption -!! options -parsoid -!! input -[[Image:Foobar.jpg|500x50px|frame|caption]] -!! result -
    - - - -
    caption
    -
    -!! end - -!! test -Parsoid-specific image handling - framed image with specific size, halign, valign, and caption -!! options -parsoid -!! input -[[Image:Foobar.jpg|500x50px|frame|left|baseline|caption]] -!! result -
    - - - -
    caption
    -
    -!! end - -!! test -Parsoid-specific image handling - frameless image with specific size, border, and caption -!! options -parsoid -!! input -[[Image:Foobar.jpg|frameless|500x50px|border|caption]] -!! result -

    - - - - -

    -!! end - -#!! test -#Parsoid-specific image handling - simple image with a formatted caption -#!! options -#parsoid -#!! input -#[[Image:Foobar.jpg|
    ab
    c
    ]] -#!! result -#

    -# -# -#Foobar.jpg -# -#abc -# -#

    - - -### -### Subpages -### -!! article -Subpage test/subpage -!! text -foo -!! endarticle - -!! test -Subpage link -!! options -subpage title=[[Subpage test]] -!! input -[[/subpage]] -!! result -

    /subpage -

    -!! end - -!! test -Subpage noslash link -!! options -subpage title=[[Subpage test]] -!!input -[[/subpage/]] -!! result -

    subpage -

    -!! end - -# TODO: make this PHP-parser compatible! -!! test -Relative subpage noslash link -!! options -parsoid=wt2wt,wt2html,html2html -subpage title=[[Subpage test/1/2/3/4]] -!!input -[[../../subpage/]] - -[[../../subpage]] -!! result -

    subpage

    -

    Subpage_test/1/2/subpage

    -!! end - -# TODO: make this PHP-parser compatible! -!! test -Parsoid: dot-slash prefixed wikilinks -!! options -parsoid=wt2wt,wt2html,html2html -!!input -[[./foo]] - -[[././bar]] - -[[././baz/]] -!! result -

    foo

    -

    bar

    -

    baz/

    -!! end - -!! test -Disabled subpages -!! input -[[/subpage]] -!! result -

    /subpage -

    -!! end - -!! test -BUG 561: {{/Subpage}} -!! options -subpage title=[[Page]] -!! input -{{/Subpage}} -!! result -

    Page/Subpage -

    -!! end - -### -### Categories -### -!! article -Category:MediaWiki User's Guide -!! text -blah -!! endarticle - -!! test -Link to category -!! input -[[:Category:MediaWiki User's Guide]] -!! result -

    Category:MediaWiki User's Guide -

    -!! end - -!! test -Simple category -!! options -cat -!! input -[[Category:MediaWiki User's Guide]] -!! result -MediaWiki User's Guide -!! end - -!! test -PAGESINCATEGORY invalid title fatal (r33546 fix) -!! input -{{PAGESINCATEGORY:}} -!! result -

    0 -

    -!! end - -!! test -Category with different sort key -!! options -cat -!! input -[[Category:MediaWiki User's Guide|Foo]] -!! result -MediaWiki User's Guide -!! end - -!! test -Category with identical sort key -!! options -cat -!! input -[[Category:MediaWiki User's Guide|MediaWiki User's Guide]] -!! result -MediaWiki User's Guide -!! end - -!! test -Category with empty sort key -!! options -cat -pst -!! input -[[Category:MediaWiki User's Guide|]] -!! result -[[Category:MediaWiki User's Guide|MediaWiki User's Guide]] -!! end - -!! test -Category with empty sort key and parentheses -!! options -cat -pst -!! input -[[Category:Foo (bar)|]] -!! result -[[Category:Foo (bar)|Foo]] -!! end - -!! test -Category with link tail -!! options -cat -pst -!! input -123[[Category:Foo]]456 -!! result -123[[Category:Foo]]456 -!! end - -!! test -Category with template -!! options -cat -pst -!! input -[[Category:{{echo|Foo}}]] -!! result -[[Category:{{echo|Foo}}]] -!! end - -!! test -Category with template in sort key -!! options -cat -pst -!! input -[[Category:Foo|{{echo|Bar}}]] -!! result -[[Category:Foo|{{echo|Bar}}]] -!! end - -!! test -Category with template in sort key and title -!! options -cat -pst -!! input -[[Category:{{echo|Foo}}|{{echo|Bar}}]] -!! result -[[Category:{{echo|Foo}}|{{echo|Bar}}]] -!! end - -!! test -Category / paragraph interactions -!! input -Foo [[Category:Baz]] Bar - -Foo [[Category:Baz]] -Bar - -Foo -[[Category:Baz]] -Bar - -Foo -[[Category:Baz]] Bar - -Foo -[[Category:Baz]] - [[Category:Baz]] -[[Category:Baz]] -Bar - -[[Category:Baz]] - [[Category:Baz]] -[[Category:Baz]] - -[[Category:Baz]] - {{echo|[[Category:Baz]]}} -[[Category:Baz]] -!! result -

    Foo Bar -

    Foo -Bar -

    Foo -Bar -

    Foo Bar -

    Foo -Bar -

    -!! end - -!! test -Parsoid: Serialize link to category page with colon escape -!! options -parsoid -!! input - -[[:Category:Foo]] -[[:Category:Foo|Bar]] -!! result -

    -Category:Foo -Bar -

    -!! end - -!! test -Parsoid: Link prefix/suffixes aren't applied to category links -!! options -parsoid=wt2html,wt2wt,html2html -language=is -!! input -x[[Category:Foo]]y -!! result -

    xy

    -!! end - -!! test -Parsoid: Serialize link to file page with colon escape -!! options -parsoid -!! input - -[[:File:Foo.png]] -[[:File:Foo.png|Bar]] -!! result -

    -File:Foo.png -Bar -

    -!! end - -!! test -Parsoid: Serialize a genuine category link without colon escape -!! options -parsoid -!! input -[[Category:Foo]] -[[Category:Foo|Bar]] -!! result - - -!! end - -### -### Inter-language links -### -!! test -Inter-language links -!! options -ill -!! input -[[es:Alimento]] -[[fr:Nourriture]] -[[zh:食品]] -!! result -es:Alimento fr:Nourriture zh:食品 -!! end - -!! test -Duplicate interlanguage links (bug 24502) -!! options -ill -!! input -[[es:1]] -[[es:2]] -[[fr:1]] -[[fr:2]] -!! result -es:1 fr:1 -!! end - -### -### Sections -### -!! test -Basic section headings -!! input -== Headline 1 == -Some text - -==Headline 2== -More -===Smaller headline=== -Blah blah -!! result -

    Headline 1[edit]

    -

    Some text -

    -

    Headline 2[edit]

    -

    More -

    -

    Smaller headline[edit]

    -

    Blah blah -

    -!! end - -!! test -Section headings with TOC -!! input -== Headline 1 == -=== Subheadline 1 === -===== Skipping a level ===== -====== Skipping a level ====== - -== Headline 2 == -Some text -===Another headline=== -!! result - - -

    Headline 1[edit]

    -

    Subheadline 1[edit]

    -
    Skipping a level[edit]
    -
    Skipping a level[edit]
    -

    Headline 2[edit]

    -

    Some text -

    -

    Another headline[edit]

    - -!! end - -# perl -e 'print "="x$_," Level $_ heading","="x$_,"\n" for 1..10' -!! test -Handling of sections up to level 6 and beyond -!! input -= Level 1 Heading= -== Level 2 Heading== -=== Level 3 Heading=== -==== Level 4 Heading==== -===== Level 5 Heading===== -====== Level 6 Heading====== -======= Level 7 Heading======= -======== Level 8 Heading======== -========= Level 9 Heading========= -========== Level 10 Heading========== -!! result - - -

    Level 1 Heading[edit]

    -

    Level 2 Heading[edit]

    -

    Level 3 Heading[edit]

    -

    Level 4 Heading[edit]

    -
    Level 5 Heading[edit]
    -
    Level 6 Heading[edit]
    -
    = Level 7 Heading=[edit]
    -
    == Level 8 Heading==[edit]
    -
    === Level 9 Heading===[edit]
    -
    ==== Level 10 Heading====[edit]
    - -!! end - -!! test -TOC regression (bug 9764) -!! input -== title 1 == -=== title 1.1 === -==== title 1.1.1 ==== -=== title 1.2 === -== title 2 == -=== title 2.1 === -!! result - - -

    title 1[edit]

    -

    title 1.1[edit]

    -

    title 1.1.1[edit]

    -

    title 1.2[edit]

    -

    title 2[edit]

    -

    title 2.1[edit]

    - -!! end - -!! test -TOC with wgMaxTocLevel=3 (bug 6204) -!! options -wgMaxTocLevel=3 -!! input -== title 1 == -=== title 1.1 === -==== title 1.1.1 ==== -=== title 1.2 === -== title 2 == -=== title 2.1 === -!! result - - -

    title 1[edit]

    -

    title 1.1[edit]

    -

    title 1.1.1[edit]

    -

    title 1.2[edit]

    -

    title 2[edit]

    -

    title 2.1[edit]

    - -!! end - -!! test -TOC with wgMaxTocLevel=3 and two level four headings (bug 6204) -!! options -wgMaxTocLevel=3 -!! input -==Section 1== -===Section 1.1=== -====Section 1.1.1==== -====Section 1.1.1.1==== -==Section 2== -!! result -

    Contents

    - -
    - -

    Section 1[edit]

    -

    Section 1.1[edit]

    -

    Section 1.1.1[edit]

    -

    Section 1.1.1.1[edit]

    -

    Section 2[edit]

    - -!! end - - -!! test -Resolving duplicate section names -!! input -== Foo bar == -== Foo bar == -!! result -

    Foo bar[edit]

    -

    Foo bar[edit]

    - -!! end - -!! test -Resolving duplicate section names with differing case (bug 10721) -!! input -== Foo bar == -== Foo Bar == -!! result -

    Foo bar[edit]

    -

    Foo Bar[edit]

    - -!! end - -!! article -Template:sections -!! text -===Section 1=== -==Section 2== -!! endarticle - -!! test -Template with sections, __NOTOC__ -!! input -__NOTOC__ -==Section 0== -{{sections}} -==Section 4== -!! result -

    Section 0[edit]

    -

    Section 1[edit]

    -

    Section 2[edit]

    -

    Section 4[edit]

    - -!! end - -!! test -__NOEDITSECTION__ keyword -!! input -__NOEDITSECTION__ -==Section 1== -==Section 2== -!! result -

    Section 1

    -

    Section 2

    - -!! end - -!! test -Link inside a section heading -!! input -==Section with a [[Main Page|link]] in it== -!! result -

    Section with a link in it[edit]

    - -!! end - -!! test -TOC regression (bug 12077) -!! input -__TOC__ -== title 1 == -=== title 1.1 === -== title 2 == -!! result -

    Contents

    - -
    - -

    title 1[edit]

    -

    title 1.1[edit]

    -

    title 2[edit]

    - -!! end - -!! test -BUG 1219 URL next to image (good) -!! input -http://example.com [[Image:foobar.jpg]] -!! result -

    http://example.com Foobar.jpg -

    -!!end - -!! test -Short headings with trailing space should match behavior of Parser::doHeadings (bug 19910) -!! input -=== -The line above must have a trailing space! -=== -But just in case it doesn't... -!! result -

    =[edit]

    -

    The line above must have a trailing space! -

    -

    =[edit]

    -

    But just in case it doesn't... -

    -!! end - -!! test -Header with special characters (bug 25462) -!! input -The tooltips shall not show entities to the user (ie. be double escaped) - -== text > text == -section 1 - -== text < text == -section 2 - -== text & text == -section 3 - -== text ' text == -section 4 - -== text " text == -section 5 -!! result -

    The tooltips shall not show entities to the user (ie. be double escaped) -

    - - -

    text > text[edit]

    -

    section 1 -

    -

    text < text[edit]

    -

    section 2 -

    -

    text & text[edit]

    -

    section 3 -

    -

    text ' text[edit]

    -

    section 4 -

    -

    text " text[edit]

    -

    section 5 -

    -!! end - -!! test -Headers with excess '=' characters -(Are similar tests necessary beyond the 1st level?) -!! input -=foo== -==foo= -=''italic'' heading== -==''italic'' heading= -!! result - - -

    foo=[edit]

    -

    =foo[edit]

    -

    italic heading=[edit]

    -

    =italic heading[edit]

    - -!! end - -!! test -HTML headers vs TOC (bug 23393) -(__NOEDITSECTION__ for clearer output, doesn't matter here) -!! input -

    Header 1

    -== Header 1.1 == -== Header 1.2 == - -

    Header 2 -

    -== Header 2.1 == -== Header 2.2 == -__NOEDITSECTION__ -!! result - - -

    Header 1

    -

    Header 1.1

    -

    Header 1.2

    -

    Header 2

    -

    Header 2.1

    -

    Header 2.2

    - -!! end - -!! test -BUG 1219 URL next to image (broken) -!! input -http://example.com[[Image:foobar.jpg]] -!! result -

    http://example.comFoobar.jpg -

    -!!end - -!! test -Bug 1186 news: in the middle of text -!! input -http://en.wikinews.org/wiki/Wikinews:Workplace -!! result -

    http://en.wikinews.org/wiki/Wikinews:Workplace -

    -!!end - - -!! test -Namespaced link must have a title -!! input -[[Project:]] -!! result -

    [[Project:]] -

    -!!end - -!! test -Namespaced link must have a title (bad fragment version) -!! input -[[Project:#fragment]] -!! result -

    [[Project:#fragment]] -

    -!!end - - -### -### HTML tags and HTML attributes -### - -!! test -div with no attributes -!! input -
    HTML rocks
    -!! result -
    HTML rocks
    - -!! end - -!! test -div with double-quoted attribute -!! input -
    HTML rocks
    -!! result -
    HTML rocks
    - -!! end - -!! test -div with single-quoted attribute -!! input -
    HTML rocks
    -!! result -
    HTML rocks
    - -!! end - -!! test -div with unquoted attribute -!! input -
    HTML rocks
    -!! result -
    HTML rocks
    - -!! end - -!! test -div with illegal double attributes -!! input -
    HTML rocks
    -!! result -
    HTML rocks
    - -!!end - -# FIXME: produce empty string instead of "class" in the PHP parser, following -# the HTML5 spec. -!! test -div with empty attribute value, space before equals -!! options -parsoid -!! input -
    HTML rocks
    -!! result -
    HTML rocks
    - -!! end - -# The PHP parser escapes the opening brace to { for some reason, so -# disabled this test for it. -!! test -div with braces in attribute value -!! options -parsoid -!! input -
    Foo
    -!! result -
    Foo
    -!! end - -# This it very inconsistent in the PHP parser: it returns -# class="class" if there is a space between the name and the equal sign (see -# 'div with empty attribute value, space before equals'), but strips the -# attribute completely if the space is missing. We hope that not much content -# depends on this, so are implementing the behavior below in Parsoid for -# consistencies' sake. Disabled for the PHP parser. -# FIXME: fix this behavior in the PHP parser? -!! test -div with empty attribute value, no space before equals -!! options -parsoid -!! input -
    HTML rocks
    -!! result -
    HTML rocks
    - -!! end - -!! test -HTML multiple attributes correction -!! input -

    Awesome!

    -!! result -

    Awesome!

    - -!!end - -!! test -Table multiple attributes correction -!! input -{| -!+ class="error" class="awesome"| status -|} -!! result - - -
    status -
    - -!!end - -!! test -DIV IN UPPERCASE -!! input -
    HTML ROCKS
    -!! result -
    HTML ROCKS
    - -!!end - -!! test -Non-ASCII pseudo-tags are rendered as text -!! input - -!! result -

    <khyô> -

    -!! end - -!! test -Pseudo-tag with URL 'name' renders as url link -!! input - -!! result -

    <http://example.com/> -

    -!! end - -!! test -text with amp in the middle of nowhere -!! input -Remember AT&T? -!!result -

    Remember AT&T? -

    -!! end - -!! test -text with character entity: eacute -!! input -I always thought é was a cute letter. -!! result -

    I always thought é was a cute letter. -

    -!! end - -!! test -text with entity-escaped character entity-like string: eacute -!! input -I always thought &eacute; was a cute letter. -!! result -

    I always thought &eacute; was a cute letter. -

    -!! end - -!! test -text with undefined character entity: xacute -!! input -I always thought &xacute; was a cute letter. -!! result -

    I always thought &xacute; was a cute letter. -

    -!! end - - -### -### Nesting tests (see bug 41545, 50604, 51081) -### - -# This test case is fixed in Parsoid by domino 1.0.12. (bug 50604) -# Note that html2wt is considerably more difficult if we use in -# the test case, instead of -!! test -Ensure that HTML adoption agency algorithm is properly implemented. -!! input -XYZ -!! result -

    XYZ -

    -!! end - -# This was bug 41545 in the PHP parser. -!! test -Nesting of -!! input -XYZ -!! result -

    XYZ -

    -!! end - -# The following cases were bug 51081 in the PHP parser. -# Note that there are some other nestable tags (b, i, etc) which are -# not covered; see bug 51081 for discussion. -!! test -Nesting of -!! input -XYZ -!! result -

    XYZ -

    -!! end - -!! test -Nesting of -!! input -XYZ -!! result -

    XYZ -

    -!! end - -!! test -Nesting of -!! input -XYZ -!! result -

    XYZ -

    -!! end - -!! test -Nesting of -!! input -XYZ -!! result -

    XYZ -

    -!! end - -!! test -Nesting of -!! input -XYZ -!! result -

    XYZ -

    -!! end - - -### -### Media links -### - -!! test -Media link -!! input -[[Media:Foobar.jpg]] -!! result -

    Media:Foobar.jpg -

    -!! end - -!! test -Media link with text -!! input -[[Media:Foobar.jpg|A neat file to look at]] -!! result -

    A neat file to look at -

    -!! end - -# FIXME: this is still bad HTML tag nesting -!! test -Media link with nasty text -fixme: doBlockLevels won't wrap this in a paragraph because it contains a div -!! input -[[Media:Foobar.jpg|Safe Link
    " onmouseover="alert(document.cookie)" onfoo="
    ]] -!! result -Safe Link<div style="display:none">" onmouseover="alert(document.cookie)" onfoo="</div> - -!! end - -!! test -Media link to nonexistent file (bug 1702) -!! input -[[Media:No such.jpg]] -!! result -

    Media:No such.jpg -

    -!! end - -!! test -Image link to nonexistent file (bug 1850 - good) -!! input -[[Image:No such.jpg]] -!! result -

    File:No such.jpg -

    -!! end - -!! test -:Image link to nonexistent file (bug 1850 - bad) -!! input -[[:Image:No such.jpg]] -!! result -

    Image:No such.jpg -

    -!! end - - - -!! test -Character reference normalization in link text (bug 1938) -!! input -[[Main Page|this&that]] -!! result -

    this&that -

    -!!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 -

    -אַ -אַ -אַ -אַ -

    -!! end - -!! test -Empty attribute crash test (bug 2067) -!! input -foo -!! result -

    foo -

    -!! end - -!! test -Empty attribute crash test single-quotes (bug 2067) -!! input -foo -!! result -

    foo -

    -!! end - -!! test -Attribute test: equals, then nothing -!! input -foo -!! result -

    foo -

    -!! end - -!! test -Attribute test: unquoted value -!! input -foo -!! result -

    foo -

    -!! end - -!! test -Attribute test: unquoted but illegal value (hash) -!! input -foo -!! result -

    foo -

    -!! end - -!! test -Attribute test: no value -!! input -foo -!! result -

    foo -

    -!! end - -!! test -Bug 2095: link with three closing brackets -!! input -[[Main Page]]] -!! result -

    Main Page] -

    -!! end - -!! test -Bug 2095: link with pipe and three closing brackets -!! input -[[Main Page|link]]] -!! result -

    link] -

    -!! end - -!! test -Bug 2095: link with pipe and three closing brackets, version 2 -!! input -[[Main Page|[http://example.com/]]] -!! result -

    [http://example.com/] -

    -!! end - - -### -### Safety -### - -!! article -Template:Dangerous attribute -!! text -" onmouseover="alert(document.cookie) -!! endarticle - -!! article -Template:Dangerous style attribute -!! text -border-size: expression(alert(document.cookie)) -!! endarticle - -!! article -Template:Div style -!! text -
    Magic div
    -!! endarticle - -!! test -Bug 2304: HTML attribute safety (safe template; regression bug 2309) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (dangerous template; 2309) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (dangerous style template; 2309) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (safe parameter; 2309) -!! input -{{div style|width: 200px}} -!! result -
    Magic div
    - -!! end - -!! test -Bug 2304: HTML attribute safety (unsafe parameter; 2309) -!! input -{{div style|width: expression(alert(document.cookie))}} -!! result -
    Magic div
    - -!! end - -!! test -Bug 2304: HTML attribute safety (unsafe breakout parameter; 2309) -!! input -{{div style|">}} -!! result -
    <script>alert(document.cookie)</script>">Magic div
    - -!! end - -!! test -Bug 2304: HTML attribute safety (unsafe breakout parameter 2; 2309) -!! input -{{div style|" >}} -!! result -
    <script>alert(document.cookie)</script>">Magic div
    - -!! end - -!! test -Bug 2304: HTML attribute safety (link) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (italics) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (bold) -!! input -
    -!! result -
    - -!! end - - -!! test -Bug 2304: HTML attribute safety (ISBN) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (RFC) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (PMID) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (web link) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 2304: HTML attribute safety (named web link) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 3244: HTML attribute safety (extension; safe) -!! input -
    -!! result -
    - -!! end - -!! test -Bug 3244: HTML attribute safety (extension; unsafe) -!! input -
    -!! result -
    - -!! end - -!! test -Opera -o-link CSS -!! input -
    X
    -!! result -
    X
    - -!! end - -# More MSIE fun discovered by Tom Gilder - -!! test -MSIE CSS safety test: spurious slash -!! input -
    evil
    -!! result -
    evil
    - -!! end - -!! test -MSIE CSS safety test: hex code -!! input -
    evil
    -!! result -
    evil
    - -!! end - -!! test -MSIE CSS safety test: comment in url -!! input -
    evil
    -!! result -
    evil
    - -!! end - -!! test -MSIE CSS safety test: comment in expression -!! input -
    evil4
    -!! result -
    evil4
    - -!! end - -!! test -CSS safety test: vertical tab -!! input -

    A

    -!! result -

    A

    - -!! end - -!! test -MSIE CSS safety test: Fullwidth -!! input -

    A

    -
    B
    -!! result -

    A

    -
    B
    - -!! end - -!! test -MSIE CSS safety test: IPA extensions -!! input -
    A
    -

    B

    -!! result -
    A
    -

    B

    - -!! end - -!! test -MSIE CSS safety test: sup/sub script -!! input -
    A
    -
    B
    -

    C

    -!! result -
    A
    -
    B
    -

    C

    - -!! end - -!! test -MSIE CSS safety test: Repetition markers -!! input -

    A

    -

    B

    -

    C

    -

    D

    -

    E

    -

    F

    -

    G

    -!! result -

    A

    -

    B

    -

    C

    -

    D

    -

    E

    -

    F

    -

    G

    - -!! end - -!! test -Table attribute legitimate extension -!! input -{| -!+ style="color:blue"| status -|} -!! result - - -
    status -
    - -!!end - -!! test -Table attribute safety -!! input -{| -!+ style="border-width:expression(0+alert(document.cookie))"| status -|} -!! result - - -
    status -
    - -!! end - -!! test -CSS line continuation 1 -!! input -
    -!! result -
    - -!! end - -!! test -CSS line continuation 2 -!! input -
    -!! result -
    - -!! end - -!! article -Template:Identity -!! text -{{{1}}} -!! endarticle - -!! test -Expansion of multi-line templates in attribute values (bug 6255) -!! input -
    -
    -!! result -
    -
    - -!! end - - -!! test -Expansion of multi-line templates in attribute values (bug 6255 sanity check) -!! input -
    -
    -!! result -
    -
    - -!! end - -!! test -Expansion of multi-line templates in attribute values (bug 6255 sanity check 2) -!! input -
    -
    -!! result -
    -
    - -!! end - -### -### Parser hooks (see tests/parser/parserTestsParserHook.php for the extension) -### -!! test -Parser hook: empty input -!! input - -!! result -
    -''
    -array (
    -)
    -
    - -!! end - -!! test -Parser hook: empty input using terminated empty elements -!! input - -!! result -
    -NULL
    -array (
    -)
    -
    - -!! end - -!! test -Parser hook: empty input using terminated empty elements (space before) -!! input - -!! result -
    -NULL
    -array (
    -)
    -
    - -!! end - -!! test -Parser hook: basic input -!! input -input -!! result -
    -'input'
    -array (
    -)
    -
    - -!! end - - -!! test -Parser hook: case insensitive -!! input -input -!! result -
    -'input'
    -array (
    -)
    -
    - -!! end - - -!! test -Parser hook: case insensitive, redux -!! input -input -!! result -
    -'input'
    -array (
    -)
    -
    - -!! end - -!! test -Parser hook: nested tags -!! options -noxml -!! input - -!! result -
    -''
    -array (
    -)
    -
    </tag> - -!! end - -!! test -Parser hook: basic arguments -!! input - -!! result -
    -''
    -array (
    -  'width' => '200',
    -  'height' => '100',
    -  'depth' => '50',
    -  'square' => 'square',
    -)
    -
    - -!! end - -!! test -Parser hook: argument containing a forward slash (bug 5344) -!! input - -!! result -
    -''
    -array (
    -  'filename' => '/tmp/bla',
    -)
    -
    - -!! end - -!! test -Parser hook: empty input using terminated empty elements (bug 2374) -!! input -text -!! result -
    -NULL
    -array (
    -  'foo' => 'bar',
    -)
    -
    text - -!! end - -#
    should be output literally since there is no matching tag that begins it -!! test -Parser hook: basic arguments using terminated empty elements (bug 2374) -!! input - -other stuff - -!! result -
    -NULL
    -array (
    -  'width' => '200',
    -  'height' => '100',
    -  'depth' => '50',
    -  'square' => 'square',
    -)
    -
    -

    other stuff -</tag> -

    -!! end - -### -### (see tests/parser/parserTestsParserHook.php for the extension) -### - -!! test -Parser hook: static parser hook not inside a comment -!! input -hello, world - -!! result -

    hello, world -

    -!! end - - -!! test -Parser hook: static parser hook inside a comment -!! input - - -!! result -


    -

    -!! end - -# Nested template calls; this case was broken by Parser.php rev 1.506, -# since reverted. - -!! article -Template:One-parameter -!! text -(My parameter is: {{{1}}}) -!! endarticle - -!! article -Template:Map-one-parameter -!! text -{{{{{1}}}|{{{2}}}}} -!! endarticle - -!! test -Nested template calls -!! input -{{Map-one-parameter|One-parameter|param}} -!! result -

    (My parameter is: param) -

    -!! end - - -### -### Sanitizer -### -!! test -Sanitizer: Closing of open tags -!! input -
    -!! result -
    - -!! end - -!! test -Sanitizer: Closing of open but not closed tags -!! input -foo -!! result -

    foo -

    -!! end - -!! test -Sanitizer: Closing of closed but not open tags -!! input -
    -!! result -

    </s> -

    -!! end - -!! test -Sanitizer: Closing of closed but not open table tags -!! input -Table not started -!! result -

    Table not started</td></tr></table> -

    -!! end - -!! test -Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id="" -!! input -byte[[#æ: v|backlink]] -!! result -

    bytebacklink -

    -!! end - -!! test -Sanitizer: Validating the contents of the id attribute (bug 4515) -!! options -disabled -!! input -
    -!! result -Something, but definitely not
    ... -!! end - -!! test -Sanitizer: Validating id attribute uniqueness (bug 4515, bug 6301) -!! options -disabled -!! input -

    -!! result -Something need to be done. foo-2 ? -!! end - -!! test -Sanitizer: Validating that and work, but only for Microdata -!! input -
    - - - - - - -
    -!! result -
    -

    - <meta http-equiv="refresh" content="5"> - -

    - - <link rel="stylesheet" href="http://example.org"> - -
    - -!! end - -!! test -Language converter: output gets cut off unexpectedly (bug 5757) -!! options -language=zh -!! input -this bit is safe: }- - -but if we add a conversion instance: -{zh-cn:xxx;zh-tw:yyy}- - -then we get cut off here: }- - -all additional text is vanished -!! result -

    this bit is safe: }- -

    but if we add a conversion instance: xxx -

    then we get cut off here: }- -

    all additional text is vanished -

    -!! end - -!! test -Self closed html pairs (bug 5487) -!! options -!! input -
    Centered text
    -
    In div text
    -!! result -
    <font id="bug" />Centered text
    -
    <font id="bug2" />In div text
    - -!! end - -# -# -# - -!! test -Punctuation: nbsp before exclamation -!! input -C'est grave ! -!! result -

    C'est grave ! -

    -!! end - -!! test -Punctuation: CSS !important (bug 11874) -!! input -
    important
    -!! result -
    important
    - -!!end - -!! test -Punctuation: CSS ! important (bug 11874; with space after) -!! input -
    important
    -!! result -
    important
    - -!!end - - -!! test -HTML bullet list, closed tags (bug 5497) -!! input -
      -
    • One
    • -
    • Two
    • -
    -!! result -
      -
    • One
    • -
    • Two
    • -
    - -!! end - -!! test -HTML bullet list, unclosed tags (bug 5497) -!! options -disabled -!! input -
      -
    • One -
    • Two -
    -!! result -
      -
    • One -
    • -
    • Two -
    • -
    - -!! end - -!! test -HTML ordered list, closed tags (bug 5497) -!! input -
      -
    1. One
    2. -
    3. Two
    4. -
    -!! result -
      -
    1. One
    2. -
    3. Two
    4. -
    - -!! end - -!! test -HTML ordered list, unclosed tags (bug 5497) -!! options -disabled -!! input -
      -
    1. One -
    2. Two -
    -!! result -
      -
    1. One -
    2. -
    3. Two -
    4. -
    - -!! end - -!! test -HTML nested bullet list, closed tags (bug 5497) -!! input -
      -
    • One
    • -
    • Two: -
        -
      • Sub-one
      • -
      • Sub-two
      • -
      -
    • -
    -!! result -
      -
    • One
    • -
    • Two: -
        -
      • Sub-one
      • -
      • Sub-two
      • -
      -
    • -
    - -!! end - -!! test -HTML nested bullet list, open tags (bug 5497) -!! options -disabled -!! input -
      -
    • One -
    • Two: -
        -
      • Sub-one -
      • Sub-two -
      -
    -!! result -
      -
    • One -
    • -
    • Two: -
        -
      • Sub-one -
      • -
      • Sub-two -
      • -
      -
    • -
    - -!! end - -!! test -HTML nested ordered list, closed tags (bug 5497) -!! input -
      -
    1. One
    2. -
    3. Two: -
        -
      1. Sub-one
      2. -
      3. Sub-two
      4. -
      -
    4. -
    -!! result -
      -
    1. One
    2. -
    3. Two: -
        -
      1. Sub-one
      2. -
      3. Sub-two
      4. -
      -
    4. -
    - -!! end - -!! test -HTML nested ordered list, open tags (bug 5497) -!! options -disabled -!! input -
      -
    1. One -
    2. Two: -
        -
      1. Sub-one -
      2. Sub-two -
      -
    -!! result -
      -
    1. One -
    2. -
    3. Two: -
        -
      1. Sub-one -
      2. -
      3. Sub-two -
      4. -
      -
    4. -
    - -!! end - -!! test -HTML ordered list item with parameters oddity -!! input -
    1. One
    2. -
    -!! result -
    1. One
    2. -
    - -!! end - -!!test -bug 5918: autonumbering -!! input -[http://first/] [http://second] [ftp://ftp] - -ftp://inlineftp - -[mailto:enclosed@mail.tld With target] - -[mailto:enclosed@mail.tld] - -mailto:inline@mail.tld -!! result -

    [1] [2] [3] -

    ftp://inlineftp -

    With target -

    [4] -

    mailto:inline@mail.tld -

    -!! end - - -# -# Security and HTML correctness -# From Nick Jenkins' fuzz testing -# - -!! test -Fuzz testing: Parser13 -!! input -{| -| http://a| -!! result - - - - -
    -
    - -!! end - -!! test -Fuzz testing: Parser14 -!! input -== onmouseover= == -http://__TOC__ -!! result -

    onmouseover=[edit]

    -http://

    Contents

    - -
    - - -!! end - -!! test -Fuzz testing: Parser14-table -!! input -==a== -{| STYLE=__TOC__ -!! result -

    a[edit]

    - - -
    - -!! end - -# Known to produce bogus xml (extra ) -!! test -Fuzz testing: Parser16 -!! options -noxml -!! input -{| -!https://|||||| -!! result - - - - - - -
    https:// - -
    - -!! end - -!! test -Fuzz testing: Parser21 -!! input -{| -! irc://{{ftp://a" onmouseover="alert('hello world');" -| -!! result - - - - - -
    irc://{{ftp://a" onmouseover="alert('hello world');" - -
    - -!! end - -!! test -Fuzz testing: Parser22 -!! input -http://===r:::https://b - -{| -!!result -

    http://===r:::https://b -

    - - -
    - -!! end - -# Known to produce bad XML for now -!! test -Fuzz testing: Parser24 -!! options -noxml -!! input -{| -{{{| -}}}} > -
    - -MOVE YOUR MOUSE CURSOR OVER THIS TEXT -| -!! result - -{{{| -}}}} > -
    - -MOVE YOUR MOUSE CURSOR OVER THIS TEXT -
    - - -
    -
    - -!! end - -# Note: the current result listed for this is not what the original one was, -# but the original bug was JavaScript injection, which is fixed in any case. -# It's not clear that the original result listed was any more correct than the -# current one. Original result: -#

    {{{| -#

    -#
  • -# }}}blah" onmouseover="alert('hello world');" align="left"MOVE MOUSE CURSOR OVER HERE -!!test -Fuzz testing: Parser25 (bug 6055) -!! input -{{{ -| -
  • -}}}blah" onmouseover="alert('hello world');" align="left"'''MOVE MOUSE CURSOR OVER HERE -!! result -

    <LI CLASS=blah" onmouseover="alert('hello world');" align="left"MOVE MOUSE CURSOR OVER HERE -

    -!! end - -!!test -Fuzz testing: URL adjacent extension (with space, clean) -!! options -!! input -http://example.com junk -!! result -

    http://example.com junk -

    -!!end - -!!test -Fuzz testing: URL adjacent extension (no space, dirty; nowiki) -!! options -!! input -http://example.comjunk -!! result -

    http://example.comjunk -

    -!!end - -!!test -Fuzz testing: URL adjacent extension (no space, dirty; pre) -!! options -!! input -http://example.com
    junk
    -!! result -http://example.com
    junk
    - -!!end - -!!test -Fuzz testing: image with bogus manual thumbnail -!!input -[[Image:foobar.jpg|thumbnail= ]] -!!result -
    Error creating thumbnail:
    - -!!end - -!! test -Fuzz testing: encoded newline in generated HTML replacements (bug 6577) -!! input -
    
    -!! result
    -
    
    -
    -!! end
    -
    -!! test
    -Parsing optional HTML elements (Bug 6171)
    -!! options
    -!! input
    -
    -  
    -    
    -    
    -  
    -
    Some tabular data More tabular data ... - And yet som tabular data
    -!! result - - - - - -
    Some tabular data More tabular data ... - And yet som tabular data
    - -!! end - -!! test -Correct handling of , (Bug 6171) -!! options -!! input - - - - - - -
    Some tabular data More tabular data ... And yet som tabular data
    -!! result - - - - - - -
    Some tabular data More tabular data ... And yet som tabular data
    - -!! end - - -!! test -Parsing crashing regression (fr:JavaScript) -!! input - -!! result -

    </body></x> -

    -!! end - -!! test -Inline wiki vs wiki block nesting -!! input -'''Bold paragraph - -New wiki paragraph -!! result -

    Bold paragraph -

    New wiki paragraph -

    -!! end - -!! test -Inline HTML vs wiki block nesting -!! options -disabled -!! input -Bold paragraph - -New wiki paragraph -!! result -

    Bold paragraph -

    New wiki paragraph -

    -!! end - -# Original result was this: -#

    boldboldbolditalics -#

    -# While that might be marginally more intuitive, maybe, the six-apostrophe -# construct is clearly pathological and the result stated here (which is what -# the parser actually does) is about as reasonable as anything. -!!test -Mixing markup for italics and bold -!! options -!! input -'''bold''''''bold''bolditalics''''' -!! result -

    'bold'boldbolditalics -

    -!! end - - -!! article -Xyzzyx -!! text -Article for special page transclusion test -!! endarticle - -!! test -Special page transclusion -!! options -!! input -{{Special:Prefixindex/Xyzzyx}} -!! result -
    Xyzzyx
    - -!! end - -!! test -Special page transclusion twice (bug 5021) -!! options -!! input -{{Special:Prefixindex/Xyzzyx}} -{{Special:Prefixindex/Xyzzyx}} -!! result -
    Xyzzyx
    -
    Xyzzyx
    - -!! end - -!! test -Transclusion of default MediaWiki message -!! input -{{MediaWiki:Mainpage}} -!!result -

    Main Page -

    -!! end - -!! test -Transclusion of nonexistent MediaWiki message -!! input -{{MediaWiki:Mainpagexxx}} -!!result -

    MediaWiki:Mainpagexxx -

    -!! end - -!! test -Transclusion of MediaWiki message with underscore -!! input -{{MediaWiki:history_short}} -!! result -

    History -

    -!! end - -!! test -Transclusion of MediaWiki message with space -!! input -{{MediaWiki:history short}} -!! result -

    History -

    -!! end - -!! test -Invalid header with following text -!! input -= x = y -!! result -

    = x = y -

    -!! end - - -!! test -Section extraction test (section 0) -!! options -section=0 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -!! end - -!! test -Section extraction test (section 1) -!! options -section=1 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -==a== -===aa=== -====aaa==== -!! end - -!! test -Section extraction test (section 2) -!! options -section=2 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===aa=== -====aaa==== -!! end - -!! test -Section extraction test (section 3) -!! options -section=3 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -====aaa==== -!! end - -!! test -Section extraction test (section 4) -!! options -section=4 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -==b== -===ba=== -===bb=== -====bba==== -===bc=== -!! end - -!! test -Section extraction test (section 5) -!! options -section=5 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===ba=== -!! end - -!! test -Section extraction test (section 6) -!! options -section=6 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===bb=== -====bba==== -!! end - -!! test -Section extraction test (section 7) -!! options -section=7 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -====bba==== -!! end - -!! test -Section extraction test (section 8) -!! options -section=8 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===bc=== -!! end - -!! test -Section extraction test (section 9) -!! options -section=9 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -==c== -===ca=== -!! end - -!! test -Section extraction test (section 10) -!! options -section=10 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===ca=== -!! end - -!! test -Section extraction test (nonexistent section 11) -!! options -section=11 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -!! end - -!! test -Section extraction test with bogus heading (section 1) -!! options -section=1 -!! input -==a== -==bogus== not a legal section -==b== -!! result -==a== -==bogus== not a legal section -!! end - -!! test -Section extraction test with bogus heading (section 2) -!! options -section=2 -!! input -==a== -==bogus== not a legal section -==b== -!! result -==b== -!! end - -!! test -Section extraction test with comment after heading (section 1) -!! options -section=1 -!! input -==a== -==b== -==c== -!! result -==a== -!! end - -!! test -Section extraction test with comment after heading (section 2) -!! options -section=2 -!! input -==a== -==b== -==c== -!! result -==b== -!! end - -!! test -Section extraction test with bogus heading (section 1) -!! options -section=1 -!! input -==a== -==bogus== not a legal section -==b== -!! result -==a== -==bogus== not a legal section -!! end - -!! test -Section extraction test with bogus heading (section 2) -!! options -section=2 -!! input -==a== -==bogus== not a legal section -==b== -!! result -==b== -!! end - - -# Formerly testing for bug 2587, now resolved by the use of unmarked sections -# instead of respecting commented sections -!! test -Section extraction prefixed by comment (section 1) -!! options -section=1 -!! input -==sec1== -==sec2== -!!result -==sec2== -!!end - -!! test -Section extraction prefixed by comment (section 2) -!! options -section=2 -!! input -==sec1== -==sec2== -!!result - -!!end - - -# Formerly testing for bug 2607, now resolved by the use of unmarked sections -# instead of respecting HTML-style headings -!! test -Section extraction, mixed wiki and html (section 1) -!! options -section=1 -!! input -

    unmarked

    -unmarked -==1== -one -==2== -two -!! result -==1== -one -!! end - -!! test -Section extraction, mixed wiki and html (section 2) -!! options -section=2 -!! input -

    unmarked

    -unmarked -==1== -one -==2== -two -!! result -==2== -two -!! end - - -# Formerly testing for bug 3342 -!! test -Section extraction, heading surrounded by -!! options -section=1 -!! input -==unmarked== -==marked== -!! result -==marked== -!!end - -# Test behavior 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) -!! options -replace=0,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -xxx - -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 1) -!! options -replace=1,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -xxx - -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 2) -!! options -replace=2,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -xxx - -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 3) -!! options -replace=3,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -xxx - -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 4) -!! options -replace=4,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -xxx - -==c== -===ca=== -!! end - -!! test -Section replacement test (section 5) -!! options -replace=5,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -xxx - -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 6) -!! options -replace=6,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -xxx - -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 7) -!! options -replace=7,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -xxx - -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 8) -!! options -replace=8,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -xxx - -==c== -===ca=== -!!end - -!! test -Section replacement test (section 9) -!! options -replace=9,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -xxx -!! end - -!! test -Section replacement test (section 10) -!! options -replace=10,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -xxx -!! end - -!! test -Section replacement test with initial whitespace (bug 13728) -!! options -replace=2,"xxx" -!! input - Preformatted initial line -==a== -===a=== -!! result - Preformatted initial line -==a== -xxx -!! end - - -!! test -Section extraction, heading followed by pre with 20 spaces (bug 6398) -!! options -section=1 -!! input -==a== - a -!! result -==a== - a -!! end - -!! test -Section extraction, heading followed by pre with 19 spaces (bug 6398 sanity check) -!! options -section=1 -!! input -==a== - a -!! result -==a== - a -!! end - - -!! test -Section extraction,
     around bogus header (bug 10309)
    -!! options
    -noxml section=2
    -!! input
    -== Section One ==
    -
    -=======
    -
    - -== Section Two == -stuff -!! result -== Section Two == -stuff -!! end - -!! test -Section replacement,
     around bogus header (bug 10309)
    -!! options
    -noxml replace=2,"xxx"
    -!! input
    -== Section One ==
    -
    -=======
    -
    - -== Section Two == -stuff -!! result -== Section One == -
    -=======
    -
    - -xxx -!! end - - - -!! test -Handling of in URLs -!! input -**irc:// a -!! result - - -!!end - -!! test -5 quotes, code coverage +1 line (php) -!! options -php -!! input -''''' -!! result -!! end -# The PHP parser strips the empty tags out for giggles; parsoid doesn't. -!! test -5 quotes, code coverage +1 line (parsoid) -!! options -parsoid -!! input -''''' -!! result -

    -!! end - -!! test -Special:Search page linking. -!! input -{{Special:search}} -!! result -

    Special:Search -

    -!! end - -!! test -Say the magic word -!! options -title=[[Parser test]] -!! input -* {{PAGENAME}} -* {{PAGENAMEE}} -* {{FULLPAGENAME}} -* {{FULLPAGENAMEE}} -* {{BASEPAGENAME}} -* {{BASEPAGENAMEE}} -* {{SUBPAGENAME}} -* {{SUBPAGENAMEE}} -* {{ROOTPAGENAME}} -* {{ROOTPAGENAMEE}} -* {{TALKPAGENAME}} -* {{TALKPAGENAMEE}} -* {{SUBJECTPAGENAME}} -* {{SUBJECTPAGENAMEE}} -* {{NAMESPACEE}} -* {{NAMESPACE}} -* {{NAMESPACENUMBER}} -* {{TALKSPACE}} -* {{TALKSPACEE}} -* {{SUBJECTSPACE}} -* {{SUBJECTSPACEE}} -* {{Dynamic|{{NUMBEROFUSERS}}|{{NUMBEROFPAGES}}|{{CURRENTVERSION}}|{{CONTENTLANGUAGE}}|{{DIRECTIONMARK}}|{{CURRENTTIMESTAMP}}|{{NUMBEROFARTICLES}}}} -!! result -
      -
    • Parser test -
    • -
    • Parser_test -
    • -
    • Parser test -
    • -
    • Parser_test -
    • -
    • Parser test -
    • -
    • Parser_test -
    • -
    • Parser test -
    • -
    • Parser_test -
    • -
    • Parser test -
    • -
    • Parser_test -
    • -
    • Talk:Parser test -
    • -
    • Talk:Parser_test -
    • -
    • Parser test -
    • -
    • Parser_test -
    • -
    • -
    • -
    • -
    • -
    • 0 -
    • -
    • Talk -
    • -
    • Talk -
    • -
    • -
    • -
    • -
    • -
    • Template:Dynamic -
    • -
    - -!! end -### Note: Above tests excludes the "{{NUMBEROFADMINS}}" magic word because it generates a MySQL error when included. - -!! test -Gallery -!! input - -image1.png | -image2.gif||||| - -image3| -image4 |300px| centre - image5.svg| http:///////// -[[x|xx]]]] -* image6 - -!! result - - -!! end - -!! test -Gallery (with options) -!! input - -File:Nonexistant.jpg|caption -File:Nonexistant.jpg -image:foobar.jpg|some '''caption''' [[Main Page]] -image:foobar.jpg -image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla. - -!! result - - -!! end - -!! test -Gallery with wikitext inside caption -!! input - -File:foobar.jpg|[[File:foobar.jpg|20px|desc|alt=inneralt]]|alt=galleryalt -File:foobar.jpg|{{Test|unamedParam|alt=param}}|alt=galleryalt - -!! result - - -!! end - -!! test -gallery (with showfilename option) -!! input - -File:Nonexistant.jpg|caption -File:Nonexistant.jpg -image:foobar.jpg|some '''caption''' [[Main Page]] -File:Foobar.jpg - -!! result - - -!! end - -!! test -Gallery (with namespace-less filenames) -!! input - -File:Nonexistant.jpg -Nonexistant.jpg -image:foobar.jpg -foobar.jpg - -!! result - - -!! end - -!! test -HTML Hex character encoding (spells the word "JavaScript") -!! input -JavaScript -!! result -

    JavaScript -

    -!! end - -!! test -HTML Hex character encoding bogus encoding (bug 26437 regression check) -!! input -&#xsee;&#XSEE; -!! result -

    &#xsee;&#XSEE; -

    -!! end - -!! test -HTML Hex character encoding mixed case -!! input -îî -!! result -

    îî -

    -!! end - -!! test -__FORCETOC__ override -!! input -__NEWSECTIONLINK__ -__FORCETOC__ -!! result -


    -

    -!! end - -!! test -ISBN code coverage -!! input -ISBN 978-0-1234-56 789 -!! result -

    ISBN 978-0-1234-56 789 -

    -!! end - -!! test -ISBN followed by 5 spaces -!! input -ISBN -!! result -

    ISBN -

    -!! end - -!! test -Double ISBN -!! input -ISBN ISBN 1234567890 -!! result -

    ISBN ISBN 1234567890 -

    -!! end - -!! test -Bug 22905: followed by ISBN followed by -!! input -(fr) ISBN 2753300917 [http://www.example.com example.com] -!! result -

    (fr) ISBN 2753300917 example.com -

    -!! end - -!! test -Double RFC -!! input -RFC RFC 1234 -!! result -

    RFC RFC 1234 -

    -!! end - -!! test -Double RFC with a wiki link -!! input -RFC [[RFC 1234]] -!! result -

    RFC RFC 1234 -

    -!! end - -!! test -RFC code coverage -!! input -RFC 983 987 -!! result -

    RFC 983 987 -

    -!! end - -!! test -Centre-aligned image -!! input -[[Image:foobar.jpg|centre]] -!! result -
    Foobar.jpg
    - -!!end - -!! test -None-aligned image -!! input -[[Image:foobar.jpg|none]] -!! result -
    Foobar.jpg
    - -!!end - -!! test -Width + Height sized image (using px) (height is ignored) -!! input -[[Image:foobar.jpg|640x480px]] -!! result -

    Foobar.jpg -

    -!!end - -!! test -Width-sized image (using px, no following whitespace) -!! input -[[Image:foobar.jpg|640px]] -!! result -

    Foobar.jpg -

    -!!end - -!! test -Width-sized image (using px, with following whitespace - test regression from r39467) -!! input -[[Image:foobar.jpg|640px ]] -!! result -

    Foobar.jpg -

    -!!end - -!! test -Width-sized image (using px, with preceding whitespace - test regression from r39467) -!! input -[[Image:foobar.jpg| 640px]] -!! result -

    Foobar.jpg -

    -!!end - -!! test -Another italics / bold test -!! input - ''' ''x' -!! result -
    ' x'
    -
    -!!end - -# Note the results may be incorrect, as parserTest output included this: -# XML error: Mismatched tag at byte 6120: -# ...
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - -!!end - - -# Images with the "|" character in external URLs in comment tags; Eats half the comment, leaves unmatched "" tag. -!! test -Images with the "|" character in the comment -!! input -[[image:Foobar.jpg|thumb|An [http://test/?param1=|left|¶m2=|x external] URL]] -!! result -
    An external URL
    - -!!end - -!! test -[Before] HTML without raw HTML enabled ($wgRawHtml==false) -!! input - -!! result -

    <html><script>alert(1);</script></html> -

    -!! end - -!! test -HTML with raw HTML ($wgRawHtml==true) -!! options -wgRawHtml=1 -!! input - -!! result -

    -

    -!! end - -!! test -Parents of subpages, one level up -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../|L2]] -!! result -

    L2 -

    -!! end - - -!! test -Parents of subpages, one level up, not named -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../]] -!! result -

    Subpage test/L1/L2 -

    -!! end - - - -!! test -Parents of subpages, two levels up -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../../|L1]]2 - -[[../../|L1]]l -!! result -

    L12 -

    L1l -

    -!! end - -!! test -Parents of subpages, two levels up, without trailing slash or name. -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../..]] -!! result -

    [[../..]] -

    -!! end - -!! test -Parents of subpages, two levels up, with lots of extra trailing slashes. -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../../////]] -!! result -

    /// -

    -!! end - -!! article -Subpage test/L1/L2/L3Sibling -!! text -Sibling article -!! endarticle - -!! test -Transclusion of a sibling page (one level up) -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -{{../L3Sibling}} -!! result -

    Sibling article -

    -!! end - -!! test -Transclusion of a child page -!! options -subpage title=[[Subpage test/L1/L2]] -!! input -{{/L3Sibling}} -!! result -

    Sibling article -

    -!! end - -!! test -Non-transclusion because of too many up levels -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -{{../../../../More than parent}} -!! result -

    {{../../../../More than parent}} -

    -!! end - -!! test -Definition list code coverage -!! input -; title : def -; title : def -;title: def -!! result -
    -
    title  
    -
    def -
    -
    title 
    -
    def -
    -
    title
    -
    def -
    -
    - -!! end - -!! test -Don't fall for the self-closing div -!! input -
    hello world
    -!! result -
    hello world
    - -!! end - -!! test -MSGNW magic word -!! input -{{MSGNW:msg}} -!! result -

    [[:Template:Msg]] -

    -!! end - -!! test -RAW magic word -!! input -{{RAW:QUERTY}} -!! result -

    Template:QUERTY -

    -!! end - -# This isn't needed for XHTML conformance, but would be handy as a fallback security measure -!! test -Always escape literal '>' in output, not just after '<' -!! input -><> -!! result -

    ><> -

    -!! end - -!! test -Template caching -!! input -{{Test}} -{{Test}} -!! result -

    This is a test template -This is a test template -

    -!! end - - -!! article -MediaWiki:Fake -!! text -==header== -!! endarticle - -!! test -Inclusion of !userCanEdit() content -!! input -{{MediaWiki:Fake}} -!! result -

    header[edit]

    - -!! end - - -!! test -Out-of-order TOC heading levels -!! input -==2== -======6====== -===3=== -=1= -=====5===== -==2== -!! result -

    Contents

    - -
    - -

    2[edit]

    -
    6[edit]
    -

    3[edit]

    -

    1[edit]

    -
    5[edit]
    -

    2[edit]

    - -!! end - - -!! test -ISBN with a dummy number -!! input -ISBN --- -!! result -

    ISBN --- -

    -!! end - - -!! test -ISBN with space-delimited number -!! input -ISBN 92 9017 032 8 -!! result -

    ISBN 92 9017 032 8 -

    -!! end - - -!! test -ISBN with multiple spaces, no number -!! input -ISBN foo -!! result -

    ISBN foo -

    -!! end - - -!! test -ISBN length -!! input -ISBN 123456789 - -ISBN 1234567890 - -ISBN 12345678901 -!! result -

    ISBN 123456789 -

    ISBN 1234567890 -

    ISBN 12345678901 -

    -!! end - - -!! test -ISBN with trailing year (bug 8110) -!! input -ISBN 1-234-56789-0 - 2006 - -ISBN 1 234 56789 0 - 2006 -!! result -

    ISBN 1-234-56789-0 - 2006 -

    ISBN 1 234 56789 0 - 2006 -

    -!! end - - -!! test -anchorencode -!! input -{{anchorencode:foo bar©#%n}} -!! result -

    foo_bar.C2.A9.23.25n -

    -!! end - -!! test -anchorencode trims spaces -!! input -{{anchorencode: __pretty__please__}} -!! result -

    pretty_please -

    -!! end - -!! test -anchorencode deals with links -!! input -{{anchorencode: [[hello|world]] [[hi]]}} -!! result -

    world_hi -

    -!! end - -!! test -anchorencode deals with templates -!! input -{{anchorencode: {{Foo}} }} -!! result -

    FOO -

    -!! end - -!! test -anchorencode encodes like the TOC generator: (bug 18431) -!! input -=== _ +:.3A%3A&&]] === -{{anchorencode: _ +:.3A%3A&&]] }} -__NOEDITSECTION__ -!! result -

    _ +:.3A%3A&&]]

    -

    .2B:.3A.253A.26.26.5D.5D -

    -!! end - -!! test -Bug 6200: blockquotes and paragraph formatting -!! input -
    -foo -
    - -bar - - baz -!! result -
    -

    foo -

    -
    -

    bar -

    -
    baz
    -
    -!! end - -!! test -Bug 8293: Use of center tag ruins paragraph formatting -!! input -
    -foo -
    - -bar - - baz -!! result -
    -

    foo -

    -
    -

    bar -

    -
    baz
    -
    -!! end - -!!test -Parsing of overlapping (improperly nested) inline html tags (PHP parser) -!!options -php -!!input -x -!!result -

    x</span> -

    -!!end - -!!test -Parsing of overlapping (improperly nested) inline html tags (Parsoid) -!!options -parsoid -!!input -x -!!result -

    x -

    -!!end - -### -### Language variants related tests -### -!! test -Self-link in language variants -!! options -title=[[Dunav]] language=sr -!! input -Both [[Dunav]] and [[Дунав]] are names for this river. -!! result -

    Both Dunav and Дунав are names for this river. -

    -!!end - -!! article -Дуна -!! text -content -!! endarticle - -!! test -Link to another existing title shouldn't be parsed as self-link even if it's a variant of this title -!! options -title=[[Duna]] language=sr -!! input -[[Дуна]] is not a self-link while [[Duna]] and [[Dуна]] are still self-links. -!! result -

    Дуна is not a self-link while Duna and Dуна are still self-links. -

    -!! end - -!! test -Link to a section of a variant of this title shouldn't be parsed as self-link -!! options -title=[[Duna]] language=sr -!! input -[[Dуна]] is a self-link while [[Dunа#Foo]] and [[Dуна#Foo]] are not self-links. -!! result -

    Dуна is a self-link while Dunа#Foo and Dуна#Foo are not self-links. -

    -!! end - -!! test -Link to pages in language variants -!! options -language=sr -!! input -Main Page can be written as [[Маин Паге]] -!! result -

    Main Page can be written as Маин Паге -

    -!!end - - -!! test -Multiple links to pages in language variants -!! options -language=sr -!! input -[[Main Page]] can be written as [[Маин Паге]] same as [[Маин Паге]]. -!! result -

    Main Page can be written as Маин Паге same as Маин Паге. -

    -!!end - - -!! test -Simple template in language variants -!! options -language=sr -!! input -{{тест}} -!! result -

    This is a test template -

    -!! end - - -!! test -Template with explicit namespace in language variants -!! options -language=sr -!! input -{{Template:тест}} -!! result -

    This is a test template -

    -!! end - - -!! test -Basic test for template parameter in language variants -!! options -language=sr -!! input -{{парамтест|param=foo}} -!! result -

    This is a test template with parameter foo -

    -!! end - - -!! test -Simple category in language variants -!! options -language=sr cat -!! input -[[Category:МедиаWики Усер'с Гуиде]] -!! result -MediaWiki User's Guide -!! end - - -!! article -Category:分类 -!! text -blah -!! endarticle - -!! article -Category:分類 -!! text -blah -!! endarticle - -!! test -Don't convert blue categorylinks to another variant (bug 33210) -!! options -language=zh cat -!! input -[[A]][[Category:分类]] -!! result -分类 -!! end - - -!! test -Stripping -{}- tags (language variants) -!! options -language=sr -!! input -Latin proverb: -{Ne nuntium necare}- -!! result -

    Latin proverb: Ne nuntium necare -

    -!! end - - -!! test -Prevent conversion with -{}- tags (language variants) -!! options -language=sr variant=sr-ec -!! input -Latinski: -{Ne nuntium necare}- -!! result -

    Латински: Ne nuntium necare -

    -!! end - - -!! test -Prevent conversion of text with -{}- tags (language variants) -!! options -language=sr variant=sr-ec -!! input -Latinski: -{Ne nuntium necare}- -!! result -

    Латински: Ne nuntium necare -

    -!! end - - -!! test -Prevent conversion of links with -{}- tags (language variants) -!! options -language=sr variant=sr-ec -!! input --{[[Main Page]]}- -!! result -

    Main Page -

    -!! end - - -!! test --{}- tags within headlines (within html for parserConvert()) -!! options -language=sr variant=sr-ec -!! input -== -{Naslov}- == -!! result -

    Naslov[уреди]

    - -!! end - - -!! test -Explicit definition of language variant alternatives -!! options -language=zh variant=zh-tw -!! input --{zh:China;zh-tw:Taiwan}-, not China -!! result -

    Taiwan, not China -

    -!! end - - -!! test -Conversion around HTML tags -!! options -language=sr variant=sr-ec -!! input --{H|span=>sr-ec:script;title=>sr-ec:src;}- -ski -!! result -

    -ски -

    -!! end - - -!! test -Explicit session-wise language variant mapping (A flag and - flag) -!! options -language=zh variant=zh-tw -!! input -Taiwan is not China. -But -{A|zh:China;zh-tw:Taiwan}- is China, -(This-{-|zh:China;zh-tw:Taiwan}- should be stripped!) -and -{China}- is China. -!! result -

    Taiwan is not China. -But Taiwan is Taiwan, -(This should be stripped!) -and China is China. -

    -!! end - -!! test -Explicit session-wise language variant mapping (H flag for hide) -!! options -language=zh variant=zh-tw -!! input -(This-{H|zh:China;zh-tw:Taiwan}- should be stripped!) -Taiwan is China. -!! result -

    (This should be stripped!) -Taiwan is Taiwan. -

    -!! end - -!! test -Adding explicit conversion rule for title (T flag) -!! options -language=zh variant=zh-tw showtitle -!! input -Should be stripped-{T|zh:China;zh-tw:Taiwan}-! -!! result -Taiwan -

    Should be stripped! -

    -!! end - -!! test -Testing that changing the language variant here in the tests actually works -!! options -language=zh variant=zh showtitle -!! input -Should be stripped-{T|zh:China;zh-tw:Taiwan}-! -!! result -China -

    Should be stripped! -

    -!! end - -!! test -Recursive conversion of alt and title attrs shouldn't clear converter state -!! options -language=zh variant=zh-cn showtitle -!! input --{H|zh-cn:Exclamation;zh-tw:exclamation;}- -Should be stripped-{T|zh-cn:China;zh-tw:Taiwan}-! -!! result -China -

    -Should be stripped! -

    -!! 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 -

    This should be stripped! -This won't take interferes with the title rule. -

    -!! end - -!! test -Partly disable title conversion if variant == main language code -!! options -language=zh variant=zh title=[[ZH]] showtitle -!! input --{T|zh-cn:CN;zh-tw:TW}- -!! result -ZH -

    -

    -!! end - -!! test -Partly disable title conversion if variant == main language code, more -!! options -language=zh variant=zh title=[[ZH]] showtitle -!! input --{T|TW}- -!! result -ZH -

    -

    -!! end - -!! test -Raw output of variant escape tags (R flag) -!! options -language=zh variant=zh-tw -!! input -Raw: -{R|zh:China;zh-tw:Taiwan}- -!! result -

    Raw: zh:China;zh-tw:Taiwan -

    -!! end - -!! test -Nested using of manual convert syntax -!! options -language=zh variant=zh-hk -!! input -Nested: -{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiwan;zh-hk:H-{ong}- K-{}-ong;}-;}-! -!! result -

    Nested: Hello Hong Kong! -

    -!! end - -!! test -Proper conversion of text in external links -!! options -language=sr variant=sr-ec -!! input -http://www.google.com -gopher://www.google.com -[http://www.google.com http://www.google.com] -[gopher://www.google.com gopher://www.google.com] -[https://www.google.com irc://www.google.com] -[ftp://www.google.com www.google.com/ftp://dir] -[//www.google.com www.google.com] -!! result -

    http://www.google.com -gopher://www.google.com -http://www.google.com -gopher://www.google.com -irc://www.google.com -www.гоогле.цом/фтп://дир -www.гоогле.цом -

    -!! end - -!! test -Do not convert roman numbers to language variants -!! options -language=sr variant=sr-ec -!! input -Fridrih IV je car. -!! result -

    Фридрих IV је цар. -

    -!! end - -!! test -Unclosed language converter markup "-{" -!! options -language=sr -!! input --{T|hello -!! result -

    -{T|hello -

    -!! end - -!! test -Don't convert raw rule "-{R|=>}-" to "=>" -!! options -language=sr -!! input --{R|=>}- -!! result -

    => -

    -!!end - -!! test -Bug 529: Uncovered bullet -!! input -* Foo {{bullet}} -!! result -
      -
    • Foo -
    • -
    • Bar -
    • -
    - -!! end - -# Plain MediaWiki does not remove empty lists, but tidy actually does. -# Templates in Wikipedia rely on this behavior, as tidy has always been -# enabled there. These tests are normally run *without* tidy, so specify the -# full output here. -# To test realistic parsing behavior, apply a tidy-like transformation to both -# the expected output and your parser's output. -!! test -Bug 529: Uncovered bullet leaving empty list, normally removed by tidy -!! input -******* Foo {{bullet}} -!! result -
      -
      • -
        • -
          • -
            • -
              • -
                • -
                • Foo -
                • -
                -
              • -
              -
            • -
            -
          • -
          -
        • -
        -
      • -
      -
    • -
    • Bar -
    • -
    - -!! end - -!! test -Bug 529: Uncovered table already at line-start -!! input -x - -{{table}} -y -!! result -

    x -

    - - - - - - -
    1 2 -
    3 4 -
    -

    y -

    -!! end - -!! test -Bug 529: Uncovered bullet in parser function result -!! input -* Foo {{lc:{{bullet}} }} -!! result -
      -
    • Foo -
    • -
    • bar -
    • -
    - -!! end - -!! test -Bug 5678: Double-parsed template argument -!! input -{{lc:{{{1}}}|hello}} -!! result -

    {{{1}}} -

    -!! end - -!! test -Bug 5678: Double-parsed template invocation -!! input -{{lc:{{paramtest {{!}} param = hello }} }} -!! result -

    {{paramtest | param = hello }} -

    -!! end - -!! test -Case insensitivity of parser functions for non-ASCII characters (bug 8143) -!! options -language=cs -title=[[Main Page]] -!! input -{{PRVNÍVELKÉ:ěščř}} -{{prvnívelké:ěščř}} -{{PRVNÍMALÉ:ěščř}} -{{prvnímalé:ěščř}} -{{MALÁ:ěščř}} -{{malá:ěščř}} -{{VELKÁ:ěščř}} -{{velká:ěščř}} -!! result -

    Ěščř -Ěščř -ěščř -ěščř -ěščř -ěščř -ĚŠČŘ -ĚŠČŘ -

    -!! end - -!! test -Morwen/13: Unclosed link followed by heading -!! input -[[link -==heading== -!! result -

    [[link -

    -

    heading[edit]

    - -!! end - -!! test -HHP2.1: Heuristics for headings in preprocessor parenthetical structures -!! input -{{foo| -=heading= -!! result -

    {{foo| -

    -

    heading

    - -!! end - -!! test -HHP2.2: Heuristics for headings in preprocessor parenthetical structures -!! input -{{foo| -==heading== -!! result -

    {{foo| -

    -

    heading[edit]

    - -!! end - -!! test -Tildes in comments -!! options -pst -!! input - -!! result - -!! end - -!! test -Paragraphs inside divs (no extra line breaks) -!! input -
    Line one - -Line two
    -!! result -
    Line one -Line two
    - -!! end - -!! test -Paragraphs inside divs (extra line break on open) -!! input -
    -Line one - -Line two
    -!! result -
    -

    Line one -

    -Line two
    - -!! end - -!! test -Paragraphs inside divs (extra line break on close) -!! input -
    Line one - -Line two -
    -!! result -
    Line one -

    Line two -

    -
    - -!! end - -!! test -Paragraphs inside divs (extra line break on open and close) -!! input -
    -Line one - -Line two -
    -!! result -
    -

    Line one -

    Line two -

    -
    - -!! end - -!! test -Nesting tags, paragraphs on lines which begin with
    -!! options -disabled -!! input -
    A -B -!! result -
    -

    A -B -

    -!! end - -# Bug 6200:
    should behave like
    with respect to line breaks -!! test -Bug 6200: paragraphs inside blockquotes (no extra line breaks) -!! input -
    Line one - -Line two
    -!! result -
    Line one -Line two
    - -!! end - -!! test -Bug 6200: paragraphs inside blockquotes (extra line break on open) -!! input -
    -Line one - -Line two
    -!! result -
    -

    Line one -

    -Line two
    - -!! end - -!! test -Bug 6200: paragraphs inside blockquotes (extra line break on close) -!! input -
    Line one - -Line two -
    -!! result -
    Line one -

    Line two -

    -
    - -!! end - -!! test -Bug 6200: paragraphs inside blockquotes (extra line break on open and close) -!! input -
    -Line one - -Line two -
    -!! result -
    -

    Line one -

    Line two -

    -
    - -!! end - -!! test -Paragraphs inside blockquotes/divs (no extra line breaks) -!! input -
    Line one - -Line two
    -!! result -
    Line one -Line two
    - -!! end - -!! test -Paragraphs inside blockquotes/divs (extra line break on open) -!! input -
    -Line one - -Line two
    -!! result -
    -

    Line one -

    -Line two
    - -!! end - -!! test -Paragraphs inside blockquotes/divs (extra line break on close) -!! input -
    Line one - -Line two -
    -!! result -
    Line one -

    Line two -

    -
    - -!! end - -!! test -Paragraphs inside blockquotes/divs (extra line break on open and close) -!! input -
    -Line one - -Line two -
    -!! result -
    -

    Line one -

    Line two -

    -
    - -!! end - -!! test -Interwiki links trounced by replaceExternalLinks after early LinkHolderArray expansion -!! options -wgLinkHolderBatchSize=0 -!! input -[[meatball:1]] -[[meatball:2]] -[[meatball:3]] -!! result -

    meatball:1 -meatball:2 -meatball:3 -

    -!! end - -!! test -Free external link invading image caption -!! input -[[Image:Foobar.jpg|thumb|http://x|hello]] -!! result -
    hello
    - -!! end - -!! test -Bug 15196: localised external link numbers -!! options -language=fa -!! input -[http://en.wikipedia.org/] -!! result -

    [۱] -

    -!! end - -!! test -Multibyte character in padleft -!! input -{{padleft:-Hello|7|Æ}} -!! result -

    Æ-Hello -

    -!! end - -!! test -Multibyte character in padright -!! input -{{padright:Hello-|7|Æ}} -!! result -

    Hello-Æ -

    -!! end - -!!test -formatdate parser function -!!input -{{#formatdate:2009-03-24}} -!! result -

    2009-03-24 -

    -!! end - -!!test -formatdate parser function, with default format -!!input -{{#formatdate:2009-03-24|mdy}} -!! result -

    March 24, 2009 -

    -!! end - -!! test -Spacing of numbers in formatted dates -!! input -{{#formatdate:January 15}} -!! result -

    January 15 -

    -!! end - -!! test -formatdate parser function, with default format and on a page of which the content language is always English and different from the wiki content language -!! options -language=nl title=[[MediaWiki:Common.css]] -!! input -{{#formatdate:2009-03-24|dmy}} -!! result -

    24 March 2009 -

    -!! end - -# -# -# - -# -# Edit comments -# - -!! test -Edit comment with link -!! options -comment -!! input -I like the [[Main Page]] a lot -!! result -I like the Main Page a lot -!!end - -!! test -Edit comment with link and link text -!! options -comment -!! input -I like the [[Main Page|best pages]] a lot -!! result -I like the best pages a lot -!!end - -!! test -Edit comment with link and link text with suffix -!! options -comment -!! input -I like the [[Main Page|best page]]s a lot -!! result -I like the best pages a lot -!!end - -!! test -Edit comment with section link (non-local, eg in history list) -!! options -comment title=[[Main Page]] -!! input -/* External links */ removed bogus entries -!! result -External links: removed bogus entries -!!end - -!! test -Edit comment with section link and text before it (non-local, eg in history list) -!! options -comment title=[[Main Page]] -!! input -pre-comment text /* External links */ removed bogus entries -!! result -pre-comment text External links: removed bogus entries -!!end - -!! test -Edit comment with section link (local, eg in diff view) -!! options -comment local title=[[Main Page]] -!! input -/* External links */ removed bogus entries -!! result -External links: removed bogus entries -!!end - -!! test -Edit comment with subpage link (bug 14080) -!! options -comment -subpage -title=[[Subpage test]] -!! input -Poked at a [[/subpage]] here... -!! result -Poked at a /subpage here... -!!end - -!! test -Edit comment with subpage link and link text (bug 14080) -!! options -comment -subpage -title=[[Subpage test]] -!! input -Poked at a [[/subpage|neat little page]] here... -!! result -Poked at a neat little page here... -!!end - -!! test -Edit comment with bogus subpage link in non-subpage NS (bug 14080) -!! options -comment -title=[[Subpage test]] -!! input -Poked at a [[/subpage]] here... -!! result -Poked at a /subpage here... -!!end - -!! test -Edit comment with bare anchor link (local, as on diff) -!! options -comment -local -title=[[Main Page]] -!!input -[[#section]] -!! result -#section -!! end - -!! test -Edit comment with bare anchor link (non-local, as on history) -!! options -comment -title=[[Main Page]] -!!input -[[#section]] -!! result -#section -!! end - -!! test -Anchor starting with underscore -!!input -[[#_ref|One]] -!! result -

    One -

    -!! end - -!! test -Id starting with underscore -!!input -
    -!! result -
    - -!! end - -!! test -Space normalisation on autocomment (bug 22784) -!! options -comment -title=[[Main Page]] -!!input -/* __hello__world__ */ -!! result -__hello__world__ -!! end - -!! test -percent-encoding and + signs in comments (Bug 26410) -!! options -comment -!!input -[[ABC%33D% ++]] [[ABC%33D% ++|+%20]] -!! result -ABC3D% ++ +%20 -!! end - -!! test -Bad images - basic functionality -!! options -disabled -!! input -[[File:Bad.jpg]] -!! result -!! end - -!! test -Bad images - bug 16039: text after bad image disappears -!! options -disabled -!! input -Foo bar -[[File:Bad.jpg]] -Bar foo -!! result -

    Foo bar -

    Bar foo -

    -!! end - -!! test -Verify that displaytitle works (bug #22501) no displaytitle -!! options -showtitle -!! config -wgAllowDisplayTitle=true -wgRestrictDisplayTitle=false -!! input -this is not the the title -!! result -Parser test -

    this is not the the title -

    -!! 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 -

    this is not the the title -

    -!! end - -!! test -Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true mismatch -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=true -wgRestrictDisplayTitle=true -!! input -this is not the the title -{{DISPLAYTITLE:whatever}} -!! result -Screen -

    this is not the the title -

    -!! 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 -

    this is not the the title -

    -!! end - -!! test -Verify that displaytitle works (bug #22501) AllowDisplayTitle=false -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=false -!! input -this is not the the title -{{DISPLAYTITLE:screen}} -!! result -Screen -

    this is not the the title -Template:DISPLAYTITLE:screen -

    -!! 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 -

    this is not the the title -

    -!! end - -!! test -Verify that displaytitle handles inline CSS styles (bug 26547) - rejected value -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=true -wgRestrictDisplayTitle=true -!! input -this is not the the title -{{DISPLAYTITLE:screen}} -!! result -screen -

    this is not the the title -

    -!! end - -!! test -Verify that displaytitle handles inline CSS styles (bug 26547) - accepted value -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=true -wgRestrictDisplayTitle=true -!! input -this is not the the title -{{DISPLAYTITLE:screen}} -!! result -screen -

    this is not the the title -

    -!! end - -!! test -preload: check and -!! options -preload -!! input -Hello cruelkind world. -!! result -Hello kind world. -!! end - -!! test -preload: check -!! options -preload -!! input -Goodbye Hello world -!! result -Hello world -!! end - -!! test -preload: can pass tags through if we want to -!! options -preload -!! input -<includeonly>Hello world</includeonly> -!! result -Hello world -!! end - -!! test -preload: check that it doesn't try to do tricks -!! options -preload -!! input -* ''{{world}}'' {{subst:How are you}}{{ {{{|safesubst:}}} #if:1|2|3}} -!! result -* ''{{world}}'' {{subst:How are you}}{{ {{{|safesubst:}}} #if:1|2|3}} -!! end - -!! test -Play a bit with r67090 and bug 3158 -!! options -disabled -!! input -
     
    -
     
    -
     
    -
     
    -!! result -
     
    -
     
    -
     
    -
     
    - -!! end - -!! test -HTML5 data attributes -!! input -Baz -

    Quuz

    -!! result -

    Baz -

    -

    Quuz

    - -!! end - -!! test -percent-encoding and + signs in internal links (Bug 26410) -!! input -[[User:+%]] [[Page+title%]] -[[%+]] [[%+|%20]] [[%+ ]] [[%+r]] -[[%]] [[+]] [[image:%+abc%39|foo|[[bar]]]] -[[%33%45]] [[%33%45+]] -!! result -

    User:+% Page+title% -%+ %20 %+ %+r -% + bar -3E 3E+ -

    -!! end - -!! test -Special characters in embedded file links (bug 27679) -!! input -[[File:Contains & ampersand.jpg]] -[[File:Does not exist.jpg|Title with & ampersand]] -!! result -

    File:Contains & ampersand.jpg -Title with & ampersand -

    -!! end - - -!! test -Confirm that 'apos' named character reference doesn't make it to output (not legal in HTML 4) -!! input -Text's been normalized? -!! result -

    Text's been normalized? -

    -!! end - -!! test -Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate free external links -!! input -http://www.example.org/ <-- U+3000 (vim: ^Vu3000) -!! result -

    http://www.example.org/ <-- U+3000 (vim: ^Vu3000) -

    -!! end - -!! test -Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate bracketed external links -!! input -[http://www.example.org/ ideograms] -!! result -

    ideograms -

    -!! end - -!! test -Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate external images links -!! input -http://www.example.org/pic.png <-- U+3000 (vim: ^Vu3000) -!! result -

    pic.png <-- U+3000 (vim: ^Vu3000) -

    -!! end - -!! article -Mediawiki:loop1 -!! text -{{Identical|A}} -!! endarticle - -!! article -Mediawiki:loop2 -!! text -{{Identical|B}} -!! endarticle - -!! article -Template:Identical -!! text -{{int:loop1}} -{{int:loop2}} -!! endarticle - -!! test -Bug 31098 Template which includes system messages which includes the template -!! input -{{Identical}} -!! result -

    Template loop detected: Template:Identical -Template loop detected: Template:Identical -

    -!! end - -!! test -Bug31490 Turkish: ucfirst 'blah' -!! options -language=tr -!! input -{{ucfirst:blah}} -!! result -

    Blah -

    -!! end - -!! test -Bug31490 Turkish: ucfirst 'ix' -!! options -language=tr -!! input -{{ucfirst:ix}} -!! result -

    İx -

    -!! end - -!! test -Bug31490 Turkish: lcfirst 'BLAH' -!! options -language=tr -!! input -{{lcfirst:BLAH}} -!! result -

    bLAH -

    -!! end - -!! test -Bug31490 Turkish: ucfırst (with a dotless i) -!! options -language=tr -!! input -{{ucfırst:blah}} -!! result -

    Şablon:Ucfırst:blah -

    -!! end - -!! test -Bug31490 ucfırst (with a dotless i) with English language -!! options -language=en -!! input -{{ucfırst:blah}} -!! result -

    Template:Ucfırst:blah -

    -!! end - -!! test -Bug 26375: TOC with italics -!! options -title=[[Main Page]] -!! input -__TOC__ -== ''Lost'' episodes == -!! result -

    Contents

    - -
    - -

    Lost episodes[edit]

    - -!! end - -!! test -Bug 26375: TOC with bold -!! options -title=[[Main Page]] -!! input -__TOC__ -== '''should be bold''' then normal text == -!! result - - -

    should be bold then normal text[edit]

    - -!! end - -!! test -Bug 33845: Headings become cursive in TOC when they contain an image -!! options -title=[[Main Page]] -!! input -__TOC__ -== Image [[Image:foobar.jpg]] == -!! result -

    Contents

    - -
    - -

    Image Foobar.jpg[edit]

    - -!! end - -!! test -Bug 33845 (2): Headings become bold in TOC when they contain a blockquote -!! options -title=[[Main Page]] -!! input -__TOC__ -==
    Quote
    == -!! result -

    Contents

    - -
    - -

    Quote
    [edit]

    - -!! end - -!! test -Unclosed tags in TOC -!! options -title=[[Main Page]] -!! input -__TOC__ -== Proof: 2 < 3 == -Hanc marginis exiguitas non caperet. -QED -!! result -

    Contents

    - -
    - -

    Proof: 2 < 3[edit]

    -

    Hanc marginis exiguitas non caperet. -QED -

    -!! end - -!! test -Multiple tags in TOC -!! input -__TOC__ -== Foo Bar == - -== Foo
    Bar
    == -!! result -

    Contents

    - -
    - -

    Foo Bar[edit]

    -

    Foo
    Bar
    [edit]

    - -!! end - -!! test -Tags with parameters in TOC -!! input -__TOC__ -== Hello == - -== Evilbye == -!! result -

    Contents

    - -
    - -

    Hello[edit]

    -

    b">Evilbye[edit]

    - -!! end - -!! test -span tags with directionality in TOC -!! input -__TOC__ -== C++ == - -== זבנג! == - -== The attributes on these span tags must be deleted from the TOC == - -== All attributes on these span tags must be deleted from the TOC == - -== Attributes after dir on these span tags must be deleted from the TOC == -!! result - - -

    C++[edit]

    -

    זבנג![edit]

    -

    The attributes on these span tags must be deleted from the TOC[edit]

    -

    All attributes on these span tags must be deleted from the TOC[edit]

    -

    Attributes after dir on these span tags must be deleted from the TOC[edit]

    - -!! end - -!! article -MediaWiki:Bug32057 -!! text -== {{int:headline_sample}} == -!! endarticle - -!! test -Bug 32057: Title needed when expanding nodes. -!! options -title=[[Main Page]] -!! input -{{int:Bug32057}} -!! result -

    Headline text[edit]

    - -!! end - -!! test -Strip marker in urlencode -!! input -{{urlencode:xy}} -{{urlencode:xy|wiki}} -{{urlencode:xy|path}} -!! result -

    xy -xy -xy -

    -!! end - -!! test -Strip marker in lc -!! input -{{lc:xy}} -!! result -

    xy -

    -!! end - -!! test -Strip marker in uc -!! input -{{uc:xy}} -!! result -

    XY -

    -!! end - -!! test -Strip marker in formatNum -!! input -{{formatnum:12}} -{{formatnum:12|R}} -!! result -

    12 -12 -

    -!! end - -!! test -Check noCommafy in formatNum -!! options -language=be-tarask -!! input -{{formatnum:123456.78}} -{{formatnum:123456.78|NOSEP}} -!! result -

    123 456,78 -123456.78 -

    -!! end - -!! test -Strip marker in grammar -!! options -language=fi -!! input -{{grammar:elative|foobar}} -!! result -

    foobarista -

    -!! end - -!! test -Strip marker in padleft -!! input -{{padleft:|2|xy}} -!! result -

    xy -

    -!! end - -!! test -Strip marker in padright -!! input -{{padright:|2|xy}} -!! result -

    xy -

    -!! end - -!! test -Strip marker in anchorencode -!! input -{{anchorencode:xy}} -!! result -

    xy -

    -!! end - -!! test -nowiki inside link inside heading (bug 18295) -!! input -==[[foo|xyz]]== -!! result -

    xyz[edit]

    - -!! end - -!! test -new support for bdi element (bug 31817) -!! input -

    ולדימיר לנין (ברוסית: Владимир Ленин, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.

    -!! result -

    ולדימיר לנין (ברוסית: Владимир Ленин, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.

    - -!!end - -!! test -Ignore pipe between table row attributes -!! input -{| -| quux -|- id=foo | style='color: red' -| bar -|} -!! result - - - - -
    quux -
    bar -
    - -!! end - -!!test -Gallery override link with WikiLink (bug 34852) -!! input - -File:foobar.jpg|caption|alt=galleryalt|link=InterWikiLink - -!! result - - -!! end - -!!test -Gallery override link with absolute external link (bug 34852) -!! input - -File:foobar.jpg|caption|alt=galleryalt|link=http://www.example.org - -!! result - - -!! end - -!!test -Gallery override link with malicious javascript (bug 34852) -!! input - -File:foobar.jpg|caption|alt=galleryalt|link=" onclick="alert('malicious javascript code!'); - -!! result - - -!! end - -!!test -Gallery with invalid title as link (bug 43964) -!! input - -File:foobar.jpg|link=< - -!! result - - -!! end - -!!test -Language parser function -!! input -{{#language:ar}} -!! result -

    العربية -

    -!! end - -!!test -Padleft and padright as substr -!! input -{{padleft:|3|abcde}} -{{padright:|3|abcde}} -!! result -

    abc -abc -

    -!! end - -!!test -Special parser function -!! input -{{#special:RandomPage}} -{{#special:BaDtItLe}} -{{#special:Foobar}} -!! result -

    Special:Random -Special:Badtitle -Special:Foobar -

    -!! end - -!!test -Bug 34939 - Case insensitive link parsing ([HttP://]) -!! input -[HttP://MediaWiki.Org/] -!! result -

    [1] -

    -!! end - -!!test -Bug 34939 - Case insensitive link parsing ([HttP:// title]) -!! input -[HttP://MediaWiki.Org/ MediaWiki] -!! result -

    MediaWiki -

    -!! end - -!!test -Bug 34939 - Case insensitive link parsing (HttP://) -!! input -HttP://MediaWiki.Org/ -!! result -

    HttP://MediaWiki.Org/ -

    -!! end - -!!test -Disable TOC -!! options -notoc -!! input -Lead -== Section 1 == -== Section 2 == -== Section 3 == -== Section 4 == -== Section 5 == -!! result -

    Lead -

    - -

    Section 1[edit]

    -

    Section 2[edit]

    -

    Section 3[edit]

    -

    Section 4[edit]

    -

    Section 5[edit]

    - -!! end - - -### -### Parsoids-specific tests -### Parsoid-PHP parser incompatibilities -### -!!test -1. SOL-sensitive wikitext tokens as template-args -!!options -parsoid=wt2html,wt2wt -!!input -{{echo|*a}} -{{echo|#a}} -{{echo|:a}} -!!result - -
    • a
    • -
    - -
    1. a
    2. -
    - -
    a
    -
    -!!end - -#### ---------------------------------------------------------------- -#### Parsoid-only testing of Parsoid's impl of and -#### tags. Parsoid's output for these tags differs from that of the -#### PHP parser. -#### ---------------------------------------------------------------- - -!!test -Ref: 1. ref-location should be replaced with an index span -!!options -parsoid -!!input -A foo -B foo -C -!!result -

    A [1] -B [2] -C [3]

    -!!end - -!!test -Ref: 2. ref-tags with identical names should all get the same index -!!options -parsoid -!!input -A foo -B -!!result -

    A [1] -B [1]

    -!!end - -!!test -Ref: 3. spaces in ref-names should be ignored -!!options -parsoid -!!input -A foo -B -C -!!result -

    A [1] -B [1] -C [1]

    -!!end - -!!test -Ref: 4. 'constructor' should be accepted as a valid ref-name -(NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly) -!!options -parsoid -!!input -A foo -!!result -

    A [1]

    -!!end - -!!test -Ref: 5. body should accept generic wikitext -!!options -parsoid -!!input -A - This is a '''[[bolded link]]''' and this is a {{echo|transclusion}} - - - -!!result -

    A [1]

    - -
      -
    1. This is a bolded link and this is a transclusion -
    2. -
    -!!end - -!!test -Ref: 6. indent-pres should not be output in ref-body -!!options -parsoid -!!input -A - foo - bar - baz - - - -!!result -

    A [1]

    - -
      -
    1. foo - bar - baz -
    2. -
    -!!end - -!!test -Ref: 7. No p-wrapping in ref-body -!!options -parsoid -!!input -A -foo - -bar - - -baz - - - -booz - - - -!!result -

    A [1]

    - -
      -
    1. foo - -bar - - -baz - - - -booz -
    2. -
    -!!end - -!!test -Ref: 8. transclusion wikitext has lower precedence -!!options -parsoid -!!input -A foo {{echo| B C}} - - -!!result -

    A [1] B C}}

    - -
      -
    1. foo {{echo|
    2. -
    -!!end - -!!test -Ref: 9. unclosed comments should not leak out of ref-body -!!options -parsoid -!!input -A foo "},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref">[1] B C

    - -
      -
    1. foo
    2. -
    -!!end - -!!test -Ref: 10. Unclosed HTML tags should not leak out of ref-body -!!options -parsoid -!!input -A foo B C - - -!!result -

    A [1] B C

    - -
      -
    1. foo
    2. -
    -!!end - -!!test -Ref: 11. ref-tags acts like an inline element wrt P-wrapping -!!options -parsoid -!!input -A foo B -C bar D -!!result -

    A [1] B -C [2] D

    -!!end - -!!test -Ref: 12. ref-tags act as trailing newline migration barrier -!!options -parsoid -!!input -a - -b - - -c -!!result -

    a

    - - -

    b [1] -[2]

    - - -

    c

    -!!end - -!!test -Ref: 13. ref-tags are not SOL-transparent and block indent-pres -!!options -parsoid -!!input -foo A -bar - B -!!result -

    [1] A -[2] B

    -!!end - -!!test -Ref: 14. A nested ref-tag should be emitted as plain text -!!options -parsoid -!!input -foo bar baz - - -!!result -

    [1]

    - -
      -
    1. foo <ref>bar</ref> baz
    2. -
    -!!end - -!!test -Ref: 15. ref-tags with identical names should get identical indexes -!!options -parsoid -!!input -A1 foo A2 -B1 B2 bar - - -!!result -

    A1 [1] A2 [1] -B1 [2] B2 [2]

    - -
    1. 1.0 1.1 foo
    2. 2.0 2.1 bar
    3. -
    -!!end - -!!test -References: 1. references tag without any refs should be handled properly -!!options -parsoid -!!input - -!!result -
      -!!end - -!!test -References: 2. references tag with group only outputs references from that group -!!options -parsoid -!!input -A foo -B bar - - -!!result -

      A [a 1] -B [b 1]

      - -
      1. foo
      2. -
      -!!end - -!!test -References: 3. ref list should be cleared after processing references -!!options -parsoid -!!input -A foo - - - -B bar - - -!!result -

      A [1]

      - -
      1. foo
      2. -
      - -

      B [1]

      - -
      1. bar
      2. -
      -!!end - -!!test -References: 4. only referenced group should be cleared after processing references -!!options -parsoid -!!input -A afoo -B bfoo - - - -C cfoo - - -!!result -

      A [a 1] -B [1]

      - -
      1. afoo
      2. -
      - -

      C [2]

      - -
      1. bfoo
      2. cfoo
      3. -
      -!!end - -!!test -References: 5. ref tags in references should be processed while ignoring all other content -!!options -parsoid -!!input -A -B bar - - -foo -This should just get lost. - -!!result -

      A [1] -B [2]

      - -
      1. foo
      2. bar
      3. -
      -!!end - -!!test -References: 6. from a transclusion -!!options -parsoid -!!input -{{echo|}} -!!result -
        -!!end - -!! test -References: 7. Multiple references tags (one without and one with nested refs) should be correctly handled -!! options -parsoid -!! input -A foo bar for a -B - - - - -foo - -!! result -

        A [1] -B [2]

        - -
          -
        1. foo bar for a
        2. -
        3. -
        - -
          -
        1. foo
        2. -
        -!! end - -#### ---------------------------------------------------------------- -#### The following section of tests are primarily to test -#### wikitext escaping capabilities of Parsoid. Given that -#### escaping can be done any number of ways, the wikitext (input) -#### is always adjusted to reflect how Parsoid adds nowiki -#### escape tags. -#### -#### We are marking several tests as parsoid-only since the -#### HTML in the result section is different from what the -#### PHP parser generates for it. -#### ---------------------------------------------------------------- - - -#### --------------- Headings --------------- -#### 0. Unnested -#### 1. Nested inside html

        =foo=

        -#### 2. Outside heading nest on a single line

        foo

        *bar -#### 3. Nested inside html with wikitext split by html tags -#### 4. No escape needed -#### 5. Empty headings

        -#### 6. Heading chars in SOL context -#### ---------------------------------------- -!! test -Headings: 0. Unnested -!! options -parsoid -!! input -=foo= - - =foo= - -=foo= - -=foo''a''= -!! result -

        =foo=

        - -

        =foo= - -=foo=

        - -

        =fooa=

        -!!end - -!! test -Headings: 1. Nested inside html -!! options -parsoid -!! input -==foo== - -===foo=== - -====foo==== - -=====foo===== - -======foo====== - -=======foo======= -!! result -

        =foo=

        -

        =foo=

        -

        =foo=

        -

        =foo=

        -
        =foo=
        -
        =foo=
        -!!end - -!! test -Headings: 2. Outside heading nest on a single line

        foo

        *bar -!! options -parsoid -!! input -=foo= -*bar - -=foo= -=bar - -=foo= -=bar= -!! result -

        foo

        *bar -

        foo

        =bar -

        foo

        =bar= -!!end - -!! test -Headings: 3. Nested inside html with wikitext split by html tags -!! options -parsoid -!! input -=='''bold'''foo== -!! result -

        =boldfoo=

        -!!end - -!! test -Headings: 4a. No escaping needed (testing just h1 and h2) -!! options -parsoid -!! input -==foo= - -=foo== - -= =foo= = - -==foo= bar= - -===foo== - -==foo=== - -=''=''foo== - -=== -!! result -

        =foo

        -

        foo=

        -

        =foo=

        -

        =foo= bar

        -

        =foo

        -

        foo=

        -

        =foo=

        -

        =

        -!!end - -!! test -Headings: 4b. No escaping needed (inside p-tags) -!! options -parsoid -!! input -=== -=foo= x -=foo= -!! result -

        === -=foo= x -=foo= -

        -!!end - -!! test -Headings: 5. Empty headings -!! options -parsoid -!! input -== - -==== - -====== - -======== - -========== - -============ -!! result -

        -

        -

        -

        -
        -
        -!!end - -!! test -Headings: 6a. Heading chars in SOL context (with trailing spaces) -!! options -parsoid -!! input -=a= - -=a= - -=a= - -=a= -!! result -

        =a=

        -

        =a=

        -

        =a=

        -

        =a=

        -!!end - -!! test -Headings: 6b. Heading chars in SOL context (with trailing newlines) -!! options -parsoid -!! input -=a= -b - -=a= -b - -=a= -b - -=a= -b -!! result -

        =a= -b

        -

        =a= -b

        -

        =a= -b

        -

        =a= -b

        -

        -!!end - -!! test -Headings: 6c. Heading chars in SOL context (leading newline break) -!! options -parsoid -!! input -a -=b= -!! result -

        a -=b=

        -!!end - -!! test -Headings: 6d. Heading chars in SOL context (with interspersed comments) -!! options -parsoid -!! input -=a= - -=a= -!! result -

        =a=

        -

        =a=

        -!!end - -!! test -Headings: 6d. Heading chars in SOL context (No escaping needed) -!! options -parsoid=html2wt -!! input -=a=
        b
        -!! result -=a=
        b
        -!!end - -#### --------------- Lists --------------- -#### 0. Outside nests (*foo, etc.) -#### 1. Nested inside html
        • *foo
        -#### 2. Inside definition lists -#### 3. Only bullets at start should be escaped -#### 4. No escapes needed -#### 5. No unnecessary escapes -#### 6. Escape bullets in SOL position -#### 7. Escape bullets in a multi-line context -#### ---------------------------------------- - -!! test -Lists: 0. Outside nests -!! input -*foo - -#foo -!! result -

        *foo -

        #foo -

        -!!end - -!! test -Lists: 1. Nested inside html -!! input -**foo - -*#foo - -*:foo - -*;foo - -#*foo - -##foo - -#:foo - -#;foo -!! result -
          -
        • *foo -
        • -
        -
          -
        • #foo -
        • -
        -
          -
        • :foo -
        • -
        -
          -
        • ;foo -
        • -
        -
          -
        1. *foo -
        2. -
        -
          -
        1. #foo -
        2. -
        -
          -
        1. :foo -
        2. -
        -
          -
        1. ;foo -
        2. -
        - -!!end - -!! test -Lists: 2. Inside definition lists -!! input -;;foo - -;:foo - -;:foo -:bar - -::foo -!! result -
        -
        ;foo -
        -
        -
        -
        :foo -
        -
        -
        -
        :foo -
        -
        bar -
        -
        -
        -
        :foo -
        -
        - -!!end - -!! test -Lists: 3. Only bullets at start of text should be escaped -!! input -**foo*bar - -**foo''it''*bar -!! result -
          -
        • *foo*bar -
        • -
        -
          -
        • *fooit*bar -
        • -
        - -!!end - -!! test -Lists: 4. No escapes needed -!! options -parsoid -!! input -*foo*bar - -*''foo''*bar - -*[[Foo]]: bar -!! result -
          -
        • foo*bar -
        • -
        -
          -
        • foo*bar -
        • -
        - -!!end - -!! test -Lists: 5. No unnecessary escapes -!! input -* bar [[foo]] - -*=bar [[foo]] - -*[[bar [[foo]] - -*]]bar [[foo]] - -*=bar foo]]= - -* : a -!! result -
          -
        • bar [[foo]] -
        • -
        -
          -
        • =bar [[foo]] -
        • -
        -
          -
        • [[bar [[foo]] -
        • -
        -
          -
        • ]]bar [[foo]] -
        • -
        -
          -
        • =bar foo]]= -
        • -
        -
          -
        • : a -
        • -
        - -!!end - -!! test -Lists: 6. Escape bullets in SOL position -!! options -parsoid -!! input -*foo -!! result -

        *foo

        -!!end - -!! test -Lists: 7. Escape bullets in a multi-line context -!! input -a -*b -!! result -

        a -*b -

        -!!end - -#### --------------- HRs --------------- -#### 1. Single line -#### ----------------------------------- - -!! test -HRs: 1. Single line -!! options -parsoid -!! input --------- -----=foo= -----*foo -!! result -
        ---- -
        =foo= -
        *foo -!! end - -#### --------------- Tables --------------- -#### 1a. Simple example -#### 1b. No escaping needed (!foo) -#### 1c. No escaping needed (|foo) -#### 1d. No escaping needed (|}foo) -#### -#### 2a. Nested in td (foo|bar) -#### 2b. Nested in td (foo||bar) -#### 2c. Nested in td -- no escaping needed(foo!!bar) -#### -#### 3a. Nested in th (foo!bar) -#### 3b. Nested in th (foo!!bar) -#### 3c. Nested in th -- no escaping needed(foo||bar) -#### -#### 4a. Escape - -#### 4b. Escape + -#### 4c. No escaping needed -#### -------------------------------------- - -!! test -Tables: 1a. Simple example -!! input -{| -|} -!! result -

        {| -|} -

        -!! end - -!! test -Tables: 1b. No escaping needed -!! input -!foo -!! result -

        !foo -

        -!! end - -!! test -Tables: 1c. No escaping needed -!! input -|foo -!! result -

        |foo -

        -!! end - -!! test -Tables: 1d. No escaping needed -!! input -|}foo -!! result -

        |}foo -

        -!! end - -!! test -Tables: 2a. Nested in td -!! options -parsoid -!! input -{| -|foo|bar -|} -!! result - -
        foo|bar
        -!! end - -!! test -Tables: 2b. Nested in td -!! options -parsoid -!! input -{| -|foo||bar -|''it''foo||bar -|} -!! result - - -
        foo||baritfoo||bar
        -!! end - -!! test -Tables: 2c. Nested in td -- no escaping needed -!! options -parsoid -!! input -{| -|foo!!bar -|} -!! result -
        foo!!bar -
        - -!! end - -!! test -Tables: 3a. Nested in th -!! options -parsoid -!! input -{| -!foo!bar -|} -!! result -
        foo!bar -
        - -!! end - -!! test -Tables: 3b. Nested in th -!! options -parsoid -!! input -{| -!foo!!bar -|} -!! result - - -
        foo!!bar
        -!! end - -!! test -Tables: 3c. Nested in th -- no escaping needed -!! options -parsoid -!! input -{| -!foo||bar -|} -!! result - -
        foo||bar
        -!! end - -!! test -Tables: 4a. Escape - -!! options -parsoid -!! input -{| -!-bar -|- -|-bar -|} -!! result - - - -
        -bar
        -bar
        -!! end - -!! test -Tables: 4b. Escape + -!! options -parsoid -!! input -{| -!+bar -|- -|+bar -|} -!! result - - - -
        +bar
        +bar
        -!! end - -!! test -Tables: 4c. No escaping needed -!! options -parsoid -!! input -{| -|foo-bar -|foo+bar -|- -|''foo''-bar -|''foo''+bar -|- -|foo -bar|baz -+bar --bar -|} -!! result - - - - -
        foo-barfoo+bar
        foo-barfoo+bar
        foo -

        bar|baz -+bar --bar

        -!! end - -### SSS FIXME: Disabled right now because accurate html2wt -### on this snippet requires data-parsoid flags that we've -### stripped out of these tests. We should scheme how we -### we want to handle these kind of tests that require -### data-parsoid flags for accurate html2wt serialization - -!! test -Tables: 4d. No escaping needed -!! options -disabled -!! input -{| -||+1 -||-2 -|} -!! result - - - -
        +1 --2 -
        - -!! end - -#### --------------- Links ---------------- -#### 1. Quote marks in link text -#### 2. Wikilinks: Escapes needed -#### 3. Wikilinks: No escapes needed -#### 4. Extlinks: Escapes needed -#### 5. Extlinks: No escapes needed -#### -------------------------------------- -!! test -Links 1. Quote marks in link text -!! options -parsoid -!! input -[[Foo|Foo''boo'']] -!! result -Foo''boo'' -!! end - -!! test -Links 2. WikiLinks: Escapes needed -!! options -parsoid -!! input -[[Foo|[Foobar]]] -[[Foo|Foobar]]] -[[Foo|x [Foobar] x]] -[[Foo|x [http://google.com g] x]] -[[Foo|[[Bar]]]] -[[Foo|x [[Bar]] x]] -[[Foo||Bar]] -[[Foo|]]bar]] -[[Foo|[[bar]] -[[Foo|x ]] y [[ z]] -!! result -[Foobar] -Foobar] -x [Foobar] x -x [http://google.com g] x -[[Bar]] -x [[Bar]] x -|Bar -]]bar -[[bar -x ]] y [[ z -!! end - -!! test -Links 3. WikiLinks: No escapes needed -!! options -parsoid -!! input -[[Foo|[Foobar]] -[[Foo|foo|bar]] -!! result -[Foobar -foo|bar -!! end - -!! test -Links 4. ExtLinks: Escapes needed -!! options -parsoid -!! input -[http://google.com [google]] -[http://google.com google]] -!! result -[google] -google] -!! end - -!! test -Links 5. ExtLinks: No escapes needed -!! options -parsoid -!! input -[http://google.com [google] -!! result -[google -!! end - -#### --------------- Quotes --------------- -#### 1. Quotes inside and -#### 2. Link fragments separated by and tags -#### 3. Link fragments inside and -#### 4. No escaping needed -#### -------------------------------------- -!! test -1. Quotes inside and -!! options -parsoid=html2wt,wt2wt -!! input -'''foo''' -''''foo'''' -'''''foo''''' -''foo'''s -''''foo'''' -'''''foo''''' -''''''foo'''''' -'''foo'''bar'''baz''' -'''foo''''s -'''foo'' -''foo''' -'''foo''' -''''foo''' -'''foo'''' -''''foo'''' -!! result -

        'foo' -''foo'' -'''foo''' -foo's -'foo' -''foo'' -'''foo''' -foo'bar'baz -foo's -'foo -foo' -'foo' -'foo -foo' -'foo'

        -!! end - -!! test -2. Link fragments separated by and tags -!! input -[[''foo''hello]] - -[['''foo'''hello]] -!! result -

        [[foohello]] -

        [[foohello]] -

        -!! end - -!! test -3. Link fragments inside and -(FIXME: Escaping one or both of [[ and ]] is also acceptable -- - this is one of the shortcomings of this format) -!! input -''[[foo'']] - -'''[[foo''']] -!! result -

        [[foo]] -

        [[foo]] -

        -!! end - -!! test -4. No escaping needed -!! input -'''bar''' -''''bar'''' -!! result -

        'bar' -'bar' -

        -!! end - -#### ----------- Paragraphs --------------- -#### 1. No unnecessary escapes -#### -------------------------------------- - -!! test -1. No unnecessary escapes -!! input -bar [[foo]] - -=bar [[foo]] - -[[bar [[foo]] - -]]bar [[foo]] - -=bar foo]]= -!! result -

        bar [[foo]] -

        =bar [[foo]] -

        [[bar [[foo]] -

        ]]bar [[foo]] -

        =bar foo]]= -

        -!!end - -#### ----------------------- PRE -------------------------- -#### 1. Leading whitespace in SOL context should be escaped -#### ------------------------------------------------------ -!! test -1. Leading whitespace in SOL context should be escaped -!! options -parsoid -!! input - a - - a - - a(tab) - - a - - a - -a - b - -a - b - -a - b -!! result -

        a

        -

        a

        -

        a(tab)

        -

        a

        -

        a

        -

        a - b

        -

        a - b

        -

        a - b

        -!! end - -#### --------------- Behavior Switches -------------------- -!! test -1. Valid behavior switches should be escaped -!! options -parsoid=html2wt -!! input -__TOC__ -!! result -__TOC__ -!! end - -!! test -2. Invalid behavior switches should not be escaped -!! options -parsoid=html2wt -!! input -__TOO__ -__|__ -!! result -__TOO__ -__|__ -!! end - -#### --------------- HTML tags --------------- -#### 1. a tags -#### 2. other tags -#### 3. multi-line html tag -#### ----------------------------------------- -!! test -1. a tags -!! options -parsoid -!! input -google -!! result -<a href="http://google.com">google</a> -!! end - -!! test -2. other tags -!! input -
        foo
        -
        foo
        -!! result -

        <div>foo</div> -<div style="color:red">foo</div> -

        -!! end - -!! test -3. multi-line html tag -!! input -
        foo
        -!! result -

        <div ->foo</div -> -

        -!! end - -!! test -4. extension tags -!! input -foo -!! result -

        <ref>foo</ref> -

        -!! end - -#### --------------- Others --------------- -!! test -Escaping nowikis -!! input -<nowiki>foo</nowiki> -!! result -

        <nowiki>foo</nowiki> -

        -!! end - -## The quote-char in the input is necessary for triggering the bug -!! test -(Bug 52035) Nowiki-escaping should not get tripped by " :" in text -!! options -parsoid=wt2wt,html2wt -!! input -foo's bar : -!! result -

        foo's bar :

        -!! end - -!! test - -Tag-like HTML structures are passed through as text -!! input - - - - - - -1>2 - -xb - -1f -!! result -

        <x y> -

        <x.y> -

        <x-y> -

        1>2 -

        x<y -

        a>b -

        1<d e>f -

        -!! end - - -# This was a bug in the PHP parser (see bug 17663 and its dups, -# https://bugzilla.wikimedia.org/show_bug.cgi?id=17663) -!! test -Tag names followed by punctuation should not be recognized as tags -!! input - text -!! result -

        <s.ome> text -

        -!! end - -!! test -HTML tag with necessary entities in attributes -!! input -foo -!! result -

        foo -

        -!! end - -!! test -HTML tag with 'unnecessary' entity encoding in attributes -!! input -foo -!! result -

        foo -

        -!! end - -!! test -HTML tag with broken attribute value quoting -!! input -Foo -!! result -

        Foo -

        -!! end - -!! test -Table with broken attribute value quoting -!! input -{| -| title="Hello world|Foo -|} -!! result - - -
        Foo -
        - -!! end - -!! test -Table with broken attribute value quoting on consecutive lines -!! input -{| -| title="Hello world|Foo -| style="color:red|Bar -|} -!! result - - - -
        Foo -Bar -
        - -!! end - -!! test -Parsoid-only: Table with broken attribute value quoting on consecutive lines -!! options -parsoid -!! input -{| -| title="Hello world|Foo -| style="color:red|Bar -|} -!! result - - -
        Foo -Bar -
        - -!! end - -!! test -Parsoid-only: Don't wrap broken template tags in on wt2wt (Bug 42353) -!! options -parsoid -!! input -{{}} -!! result -{{}} -!! end - -!! test -Parsoid-only: Don't wrap broken template tags in on wt2wt (Bug 42353) -!! options -parsoid -!! input -}}{{ -!! result -}}{{ -!! end - -!!test -Accept empty td cell attribute -!!input -{| -| align="center" | foo || | -|} -!!result - - - -
        foo -
        - -!!end - -!!test -Non-empty attributes in th-cells -!!input -{| -! Foo !! style="color: red" | Bar -|} -!!result - - - -
        Foo Bar -
        - -!!end - -!!test -Accept empty attributes in th-cells -!!input -{| -!| foo !!| bar -|} -!!result - - - -
        foo bar -
        - -!!end - -!!test -Empty table rows go away -!!input -{| -| Hello -| there -|- class="foo" -|- -|} -!! result - - - - - -
        Hello - there -
        - -!! end - -### -### Parsoid-centric tests for testing RTing of inter-element separators -### Edge cases not tested by existing parser tests and specific to -### Parsoid-specific serialization strategies. -### - -!!test -RT-ed inter-element separators should be valid separators -!!input -{| -|- [[foo]] -|} -!!result - - -
        - -!!end - -!!test -Trailing newlines in a deep dom-subtree that ends a wikitext line should be migrated out -(Parsoid-only since PHP parser relies on Tidy for correct output) -!!options -parsoid -!!input -{| -|foo -bar -|} - -{| -|foo -|} -!!result -!!end - -!!test -Empty TD followed by TD with tpl-generated attribute -!!input -{| -|- -| -|{{echo|style='color:red'}}|foo -|} -!!result - - - - -
        -foo -
        - -!!end - -!!test -Indented table with an empty td -!!input - {| - |- - | - |foo - |} -!!result - - - - -
        -foo -
        - -!!end - -!!test -Empty TR followed by a template-generated TR -(Parsoid-specific since PHP parser doesn't handle this mixed tbl-wikitext) -!!options -parsoid -!!input -{| -|- -{{echo|foo}} -|} -!!result - - - - - -
        foo
        -!!end - -## PHP and parsoid output differ for this, and since this is primarily -## for testing Parsoid's serializer, marking this Parsoid only -!!test -Empty TR followed by mixed-ws-comment line should RT correctly -!!options -parsoid -!!input -{| -|- - -|- - -|} -!!result - - - - - - -
        - -!!end - -!!test -Multi-line image caption generated by templates with/without trailing newlines -!!options -parsoid -!!input -[[File:foo.jpg|thumb|300px|foo\n{{echo|A}}\n{{echo|B}}\n{{echo|C}}]] -[[File:foo.jpg|thumb|300px|foo\n{{echo|A}}\n{{echo|B}}\n{{echo|C}}\n\n]] -!!result -
        File:Foo.jpg
        foo\nA\nB\nC
        -
        File:Foo.jpg
        foo\nA\nB\nC\n\n
        - -!!end - -## PHP emits broken html for this, and since this is primarily -## a Parsoid serializer test, marking this Parsoid only -!!test -Improperly nested inline or quotes tags with whitespace in between -!!options -parsoid -!!input - x -''' ''x''' '' -!!result -

        x - x -

        -!!end - -!!test -Encapsulate protected attributes from wt -!!options -parsoid -!!input -
        foo
        -!!result -
        foo
        - -!!end - -## Currently the p-wrapper is fragile in how adds / removes transformations. -## Having nested or stray pre tags results in the attempt to add duplicates, -## causing an assertion fail. This test tries to prevent that situation. -!!test -Ensure ParagraphWrapper can deal with stray closing pre tags -!!options -parsoid=wt2html -!!input -plain text
        -!!result -plain text -!!end - -!!test -Ensure fostered text content is wrapped in spans -!!options -parsoid=wt2html -!!input -hi
        ho
        -!!result -hi -
        -ho -
        -!!end - -!!test -Encapsulation properly handles null DSR information from foster box -!!options -parsoid=wt2html,wt2wt -!!input -{{echo|foo
        bar
        }} -!!result -foo - - - -
        bar
        -!!end - -!!test -1. Encapsulate foster-parented transclusion content -!!options -parsoid=wt2wt,wt2html -!!input -{{echo|foo}}
        bar
        -!!result -foo - - - -
        bar
        -!!end - -!!test -2. Encapsulate foster-parented transclusion content -!!options -parsoid=wt2wt,wt2html -!!input -
        {{echo|foo}}
        bar
        -!!result -
        foo
        - - - -
        bar
        -!!end - -!!test -3. Encapsulate foster-parented transclusion content -!!options -parsoid=wt2wt,wt2html -!!input -

        {{echo|foo

        }}bar
        -!!result -
        -

        foo

        - - - -
        bar
        -!!end - -!!test -4. Encapsulate foster-parented transclusion content -!!options -parsoid=wt2wt,wt2html -!!input -

        {{echo|foo

        }}bar
        -!!result -
        -

        foo

        - - - -
        bar
        -!!end - -!!test -5. Encapsulate foster-parented transclusion content -!!options -parsoid=wt2wt,wt2html -!!input -foo}}

        {{echo|foo

        -!!result -foo - - - -
        -
        -

        foo

        -!!end - -!!test -6. Encapsulate foster-parented transclusion content -!!options -parsoid=wt2wt,wt2html -!!input -foo

        {{echo|foo

        }}

        ok

        -!!result -foo - - - -
        -
        -

        foo

        -

        ok

        -!!end - -!!test -7. Encapsulate foster-parented transclusion content -!!options -parsoid=wt2wt,wt2html -!!input -{{echo|

        foo

        }}
        bar
        -!!result -

        foo

        - - - -
        bar
        -!!end - -!!test -8. Encapsulate foster-parented transclusion content -!!options -parsoid=wt2wt,wt2html -!!input -{{echo|a -}}{|{{echo|style='color:red'}} -|- -|b -|} -!!result -

        a

        {{{1}}} - - - -
        b
        -!!end - -# ----------------------------------------------------------------- -# The following section of tests are primarily to spec requirements -# around serialization of new/edited content. -# -# All these tests are marked Parsoid html2wt and html2html only -# ---------------------------------------------------------------- - -!! test -Image: Modifying size of an image -!! options -parsoid=html2wt -!! input -[[Image:Wiki.png|230x230px]] -!! result -

        -!!end - -!! test -Image: New block level image should have \n before and after -!! options -parsoid=html2wt -!! input -123 -[[File:Wiki.png|right|thumb|150x150px]] -456 -!! result -

        123

        456

        -!!end - -# Wacky -- the leading newline in input is required because -# that is what the serializer emits. To be fixed. Not fixing -# the test because this test is required to test serialization of -# new content and preferred whitespace style. -!! test -Lists: Serialize correctly even when list content is wrapped in p-tags (like VE does) -!! options -parsoid=html2wt -!! input - -* foo -!! result -
          -
        • foo

        • -
        -!! end - -# Wacky -- the leading newline in input is required because -# that is what the serializer emits. To be fixed. Not fixing -# the test because this test is required to test serialization of -# new content and preferred whitespace style. -!! test -Lists: Add space after bullets -!! options -parsoid=html2wt -!! input - -* foo -* bar -* baz -!! result -
          -
        • foo
        • -
        • bar
        • -
        • baz
        • -
        -!! end - -!! test -Parsoid: Serialize positional parameters with = in them as named parameter -!! options -parsoid=html2wt -!! input -{{echo|1 = f=oo}} - -{{echo|1 = f=oo|2 = bar}} - - - -{{echo|f=oo|bar}} -!! result -

        foo

        - -

        foo

        - - - -

        foo

        -!! end - -!! test -Parsoid: Correctly serialize block-node children when they are a combination of text and p-nodes -!! options -parsoid=html2wt -!! input -
        a -b -
        -
        a -b -
        -
        -a - -b -
        -!! result -
        a

        b

        -
        a -

        b

        -
        -a -

        b

        -!! end - -#----------------------------- -# I/B quote minimization tests -#----------------------------- - -!! test -1. I/B quote minimization: wikitext-only tags should be combined -!! options -parsoid=html2wt -!! input -''AB'' - -'''AB''' - -''A'''B''''' - -'''A''B''''' - -'''A''BC''D''' - -'''''AB''''' - -'''''AB''''' - -'''''AB''''' -!! result -

        AB

        -

        AB

        -

        AB

        -

        AB

        -

        ABCD

        -

        AB

        -

        AB

        -

        AB

        -!! end - -!! test -2. I/B quote minimization: wikitext and html tags should not be combined -!! options -parsoid=html2wt -!! input -''A''B - -''A'''''B''' -!! result -

        AB

        -

        AB

        -!! end - -!! test -3. I/B quote minimization: templated content stops minimization -!! options -parsoid=html2wt -!! input -''A''{{echo|''B''}} - -''A''{{echo|'''''B'''''}} -!! result -

        AB -

        AB -!! end - -!! test -4. I/B quote minimization: new content should be mimimized with adjacent old content -!! options -parsoid=html2wt -!! input -''AB'' - -'''AB''' - -''A'''B''''' -!! result -

        AB

        -

        AB

        -

        AB

        -!! end - -# ----------------------------------------------------------------- -# End of section for Parsoid-only html2wt tests for serialization -# of new content -# ----------------------------------------------------------------- - -TODO: -more images -more tables -character entities -and much more -Try for 100% code coverage -- cgit v1.2.3-54-g00ecf