</p>
!! end
+## PHP parser discards the "<pre " string
!! test
Handle broken pre-like tags (bug 64025)
!! options
<table><pre </table>
!! html/php
<pre>x</pre>
-<table><pre </table>
+<table><pre></pre></table>
-!! html/php+tidy
-<pre>
-x
-</pre>
-<p><pre</p>
!! html/parsoid
<pre about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"a":{"<pre":null},"sa":{"<pre":""},"stx":"html","pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<pre <pre>x</pre>"}},"i":0}}]}'>x</pre>
<td data-parsoid='{"startTagSrc":"| ","attrSepSrc":"|","autoInsertedEnd":true}'><a rel="mw:ExtLink" href="ftp://|x||"></a>" onmouseover="alert(document.cookie)">test</td></tr></tbody></table>
!! end
+!! test
+! and || in element attributes should not be parsed as <th>/<td>
+!! wikitext
+{|
+| <div style="color: red !important;" data-contrived="put this here ||">hi</div>
+|}
+!! html/php
+<table>
+<tr>
+<td> <div style="color: red !important;" data-contrived="put this here ||">hi</div>
+</td></tr></table>
+
+!! html/parsoid
+<table>
+<tbody><tr><td> <div style="color: red !important;" data-contrived="put this here ||" data-parsoid='{"stx":"html"}'>hi</div></td></tr>
+</tbody></table>
+!! end
+
# FIXME: The output seems broken. Filed as T110268.
!! test
! and || in td attributes should not be parsed as <th>/<td>
!! 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
!! wikitext
{|
| style=| hello
|}
+!! html/php
+<table>
+<tr>
+<td style=""> hello
+</td></tr></table>
+
!! html/parsoid
<table>
<tbody>
!! wikitext
<includeonly>
!! html
-<p><includeonly>
-</p>
!! end
## We used to, but no longer wt2wt this test since the default serializer
!!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
!! wikitext
<div class =>HTML rocks</div>
!! html
!! end
+# FIXME: Parsoid doesn't match the html5 spec
!! test
div with multiple empty attribute values
!! options
-parsoid
+parsoid=wt2html,html2html
!! wikitext
<div id= title=>HTML rocks</div>
-!! html
-<div id="" title="">HTML rocks</div>
+!! html/php
+<div id="title.3D">HTML rocks</div>
+!! html/parsoid
+<div id="" title="">HTML rocks</div>
!! end
+# FIXME: Parsoid doesn't match the html5 spec
!! test
table with multiple empty attribute values
!! options
-parsoid
+parsoid=wt2html,html2html
!! wikitext
{| title= id=
| hi
|}
-!! html
+!! html/php
+<table title="id=">
+<tr>
+<td> hi
+</td></tr></table>
+
+!! html/parsoid
<table title="" id="">
<tbody><tr><td> hi</td></tr>
</tbody></table>
<div title="{}">Foo</div>
!! 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.
-# FIXME: fix this behavior in the PHP parser?
!! test
div with empty attribute value, no space before equals
!! options
!! wikitext
<div class=>HTML rocks</div>
!! html/php
-<div>HTML rocks</div>
+<div class="">HTML rocks</div>
!! html/parsoid
<div class="">HTML rocks</div>
!! wikitext
<font color=>foo</font>
!! html
-<p><font>foo</font>
+<p><font color="">foo</font>
</p>
!! end
!! test
HTML tag with broken attribute value quoting
+!! options
+parsoid=wt2html,html2html
!! wikitext
<span title="Hello world>Foo</span>
!! html/php
<p><span title="Hello world">Foo</span>
</p>
!! html/parsoid
-<p><span title="Hello world">Foo</span>
-</p>
+<p><span title="Hello world">Foo</span></p>
!! end
!! test
!! test
Table with broken attribute value quoting
+!! options
+parsoid=wt2html,html2html
!! wikitext
{|
| title="Hello world|Foo
!! test
Table with broken attribute value quoting on consecutive lines
+!! options
+parsoid=wt2html,html2html
!! wikitext
{|
| title="Hello world|Foo