*#*#;*;;foo :bar
*#*#;boo :baz
!! result
-<ul><li><ol><li><ul><li><ol><li><dl><dt><ul><li><dl><dt><dl><dt>foo </dt><dd>bar
-</dd></dl></dt></dl></li></ul></dt><dt>boo </dt><dd>baz</dd></dl></li></ol></li></ul></li></ol></li></ul>
+<ul>
+<li>
+<ol>
+<li>
+<ul>
+<li>
+<ol>
+<li>
+<dl>
+<dt>
+<ul>
+<li>
+<dl>
+<dt>
+<dl>
+<dt>foo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'> </span></dt>
+<dd data-parsoid='{"stx":"row"}'>bar</dd></dl></dt></dl></li></ul></dt>
+<dt>boo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'> </span></dt>
+<dd data-parsoid='{"stx":"row"}'>baz</dd></dl></li></ol></li></ul></li></ol></li></ul>
!! end
!! input
*#;*::;; foo : bar (who uses this?)
!! result
-<ul><li><ol><li><dl><dt><ul><li><dl><dd><dl><dd><dl><dt><dl><dt> foo </dt><dd> bar (who uses this?)</dd></dl></dt></dl></dd></dl></dd></dl></li></ul></dt></dl></li></ol></li></ul>
+<ul>
+<li>
+<ol>
+<li>
+<dl>
+<dt>
+<ul>
+<li>
+<dl>
+<dd>
+<dl>
+<dd>
+<dl>
+<dt>
+<dl>
+<dt> foo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'> </span></dt>
+<dd data-parsoid='{"stx":"row"}'> bar (who uses this?)</dd></dl></dt></dl></dd></dl></dd></dl></li></ul></dt></dl></li></ol></li></ul>
!! end
###
!!test
Templates: P-wrapping: 1d. Template preceded by comment-only line
!!options
-parsoid
+parsoid=wt2html,wt2wt
!!input
<!-- foo -->
{{echo|Bar}}
!!result
<!-- foo -->
-<p>Bar
+<p typeof="mw:Object/Template">Bar
</p>
!!end
Templates: Ugly nesting: 2. Quotes opened/closed across templates (echo_with_span)
(PHP parser generates misnested html)
!! options
-parsoid
+parsoid=wt2html,wt2wt
!!input
{{echo_with_span|''a}}{{echo_with_span|b''c''d}}{{echo_with_span|''e}}
!!result
-<p><span><i>a</i></span><i><span>b</span></i><span>c</span><i>d</i><span>e</span></p>
+<p><span typeof="mw:Object/Template"><i>a</i></span><i typeof="mw:Object/Template"><span>b</span></i><span>c</span><i>d</i><span>e</span></p>
!!end
!!test
Templates: Ugly nesting: 3. Quotes opened/closed across templates (echo_with_div)
(PHP parser generates misnested html)
!! options
-parsoid
+parsoid=wt2html,wt2wt
!!input
{{echo_with_div|''a}}{{echo_with_div|b''c''d}}{{echo_with_div|''e}}
!!result
-<div><i>a</i></div>
-<div><i>b</i>c<i>d</i></div>
-<div>e</div>
+<div typeof="mw:Object/Template"><i>a</i></div>
+<div typeof="mw:Object/Template"><i>b</i>c<i>d</i></div>
+<div typeof="mw:Object/Template">e</div>
!!end
!!test
|bar
|}
!!result
-<table about="#mwt1" typeof="mw:Object/Template ">
-<tbody><tr><td>foo</td></tr></tbody></table><span about="#mwt1">
-bar</span><span about="#mwt1">
-</span>
+<table typeof="mw:Object/Template">
+<tbody>
+<tr>
+<td>foo</td></tr></tbody></table><span>bar</span>
!!end
!!test
wiki<nowiki>nowiki<!--nowiki</nowiki>wiki
!!end
+# Leading @ in this template definition works around a limitation
+# in parsoid's parserTests which otherwise strips the <span> from the
+# result (confusing it for a template wrapper)
!! article
Template:dangerous
!!text
-<span onmouseover="alert('crap')">Oh no</span>
+@<span onmouseover="alert('crap')">Oh no</span>
!!endarticle
!!test
!! input
{{Template:dangerous}}
!! result
-<p><span>Oh no</span>
+<p>@<span>Oh no</span>
</p>
!! end
!!test
1. SOL-sensitive wikitext tokens as template-args
!!options
-parsoid
+parsoid=wt2html,wt2wt
!!input
{{echo|*a}}
{{echo|#a}}
{{echo|:a}}
!!result
-<p>*a
-#a
-:a
-</p>
+<span about="#mwt1" typeof="mw:Object/Template">
+</span><ul about="#mwt1"><li>a</li></ul>
+<span about="#mwt2" typeof="mw:Object/Template">
+</span><ol about="#mwt2"><li>a</li></ol>
+<span about="#mwt3" typeof="mw:Object/Template">
+</span><dl about="#mwt3"><dd>a</dd></dl>
!!end
#### The following section of tests are primarily to test
=foo''a''<nowiki>=</nowiki>
!! result
-<p>=foo=
-</p><p> =foo=
-</p><p><!--cmt-->=foo=
-</p><p>=foo<i>a</i>=
-</p>
+<p><span typeof="mw:Nowiki">=foo=</span></p>
+
+<p><span typeof="mw:Nowiki"> =foo= </span>
+<!--cmt-->
+<span typeof="mw:Nowiki">=foo=</span></p>
+
+<p>=foo<i>a</i><span typeof="mw:Nowiki">=</span></p>
!!end
!! test
=====<nowiki>=foo=</nowiki>=====
======<nowiki>=foo=</nowiki>======
!! result
-<h1>=foo=</h1>
-<h2>=foo=</h2>
-<h3>=foo=</h3>
-<h4>=foo=</h4>
-<h5>=foo=</h5>
-<h6>=foo=</h6>
+<h1><span typeof="mw:Nowiki">=foo=</span></h1>
+<h2><span typeof="mw:Nowiki">=foo=</span></h2>
+<h3><span typeof="mw:Nowiki">=foo=</span></h3>
+<h4><span typeof="mw:Nowiki">=foo=</span></h4>
+<h5><span typeof="mw:Nowiki">=foo=</span></h5>
+<h6><span typeof="mw:Nowiki">=foo=</span></h6>
!!end
!! test
!! input
=='''bold'''<nowiki>foo=</nowiki>=
!! result
-<h1>=<b>bold</b>foo=</h1>
+<h1>=<b>bold</b><span typeof="mw:Nowiki">foo=</span></h1>
!!end
!! test
<h2>=foo</h2>
<h2>foo=</h2>
<h1><i>=</i>foo=</h1>
-<h1>=</h1>
-
+<h1><span typeof="mw:Nowiki">=</span></h1>
!!end
!! test
<!--cmt--><nowiki>=h1=</nowiki>
<!--cmt--><nowiki> =h1= </nowiki>
!! result
-<p><!--cmt-->=h1=
-<!--cmt--> =h1=
-</p>
+<p><!--cmt--><span typeof="mw:Nowiki">=h1=</span>
+<!--cmt--><span typeof="mw:Nowiki"> =h1= </span></p>
!!end
#### --------------- Lists ---------------
</li></ul>
<ul><li><i>foo</i>*bar
</li></ul>
-<ul><li><a href="Foo" rel="mw:WikiLink">Foo</a>: bar
+<ul><li><a rel="mw:WikiLink" href="Foo">Foo</a>: bar
</li></ul>
!!end
!! input
<!--cmt--><nowiki>*foo</nowiki>
!! result
-<p><!--cmt-->*foo
-</p>
+<p><!--cmt--><span typeof="mw:Nowiki">*foo</span></p>
!!end
!! test
----=foo=
----*foo
!! result
-<hr>----
+<hr><span typeof="mw:Nowiki">----</span>
<hr>=foo=
<hr>*foo
!! end
|<nowiki>foo|bar</nowiki>
|}
!! result
-<table><tbody>
-<tr><td>foo|bar
-</td></tr></tbody></table>
-
+<table><tbody><tr>
+<td><span typeof="mw:Nowiki">foo|bar</span></td></tr></tbody></table>
!! end
!! test
|''it''<nowiki>foo||bar</nowiki>
|}
!! result
-<table><tbody>
-<tr><td>foo||bar
-</td><td><i>it</i>foo||bar
-</td></tr></tbody></table>
-
+<table><tbody><tr>
+<td><span typeof="mw:Nowiki">foo||bar</span></td>
+<td><i>it</i><span typeof="mw:Nowiki">foo||bar</span></td></tr></tbody></table>
!! end
!! test
|foo!!bar
|}
!! result
-<table><tbody>
-<tr><td>foo!!bar
+<table><tbody><tr><td>foo!!bar
</td></tr></tbody></table>
!! end
!foo!bar
|}
!! result
-<table><tbody>
-<tr><th>foo!bar
+<table><tbody><tr><th>foo!bar
</th></tr></tbody></table>
!! end
!<nowiki>foo!!bar</nowiki>
|}
!! result
-<table><tbody>
-<tr><th>foo!!bar
-</th></tr></tbody></table>
-
+<table>
+<tbody><tr><th><span typeof="mw:Nowiki">foo!!bar</span></th></tr>
+</tbody></table>
!! end
!! test
!<nowiki>foo||bar</nowiki>
|}
!! result
-<table><tbody>
-<tr><th>foo||bar
-</th></tr></tbody></table>
-
+<table><tbody><tr>
+<th><span typeof="mw:Nowiki">foo||bar</span></th></tr></tbody></table>
!! end
!! test
!! result
<table><tbody>
<tr><th>-bar</th></tr>
-<tr><td>-bar</td></tr>
-</tbody></table>
+<tr>
+<td><span typeof="mw:Nowiki">-bar</span></td></tr></tbody></table>
!! end
!! test
!! result
<table><tbody>
<tr><th>+bar</th></tr>
-<tr><td>+bar</td></tr>
-</tbody></table>
+<tr>
+<td><span typeof="mw:Nowiki">+bar</span></td></tr></tbody></table>
!! end
!! test
Empty TR followed by a template-generated TR
(Parsoid-specific since PHP parser doesn't handle this mixed tbl-wikitext)
!!options
-parsoid
+parsoid=wt2html,wt2wt
!!input
{|
|-
!!result
<table>
<tbody>
-<tr>
-</tr>
-<tr>
+<tr></tr>
+<tr typeof="mw:Object/Template">
<td>foo</td></tr></tbody></table>
!!end