Harness status: OK

Found 272 tests

212 Pass
60 Fail
Pass	Simplest possible test ("<div>abc")
Fail	Leading whitespace removed ("<div> abc")
Fail	Trailing whitespace removed ("<div>abc ")
Pass	Internal whitespace compressed ("<div>abc  def")
Pass	\n converted to space ("<div>abc\ndef")
Pass	\r converted to space ("<div>abc\rdef")
Pass	\t converted to space ("<div>abc\tdef")
Fail	Trailing whitespace before hard line break removed ("<div>abc <br>def")
Fail	Leading whitespace after hard line break removed ("<div>abc<br> def")
Pass	Leading whitespace preserved ("<pre> abc")
Pass	Trailing whitespace preserved ("<pre>abc ")
Pass	Internal whitespace preserved ("<pre>abc  def")
Pass	\n preserved ("<pre>abc\ndef")
Pass	\r converted to newline ("<pre>abc\rdef")
Pass	\t preserved ("<pre>abc\tdef")
Pass	Two <pre> siblings ("<div><pre>abc</pre><pre>def</pre>")
Pass	Leading whitespace preserved ("<div style='white-space:pre'> abc")
Pass	Trailing whitespace preserved ("<div style='white-space:pre'>abc ")
Pass	Internal whitespace preserved ("<div style='white-space:pre'>abc  def")
Pass	\n preserved ("<div style='white-space:pre'>abc\ndef")
Pass	\r converted to newline ("<div style='white-space:pre'>abc\rdef")
Pass	\t preserved ("<div style='white-space:pre'>abc\tdef")
Pass	Leading whitespace preserved ("<span style='white-space:pre'> abc")
Pass	Trailing whitespace preserved ("<span style='white-space:pre'>abc ")
Pass	Internal whitespace preserved ("<span style='white-space:pre'>abc  def")
Pass	\n preserved ("<span style='white-space:pre'>abc\ndef")
Pass	\r converted to newline ("<span style='white-space:pre'>abc\rdef")
Pass	\t preserved ("<span style='white-space:pre'>abc\tdef")
Fail	Leading whitespace removed ("<div style='white-space:pre-line'> abc")
Fail	Trailing whitespace removed ("<div style='white-space:pre-line'>abc ")
Pass	Internal whitespace collapsed ("<div style='white-space:pre-line'>abc  def")
Pass	\n preserved ("<div style='white-space:pre-line'>abc\ndef")
Pass	\r converted to newline ("<div style='white-space:pre-line'>abc\rdef")
Pass	\t converted to space ("<div style='white-space:pre-line'>abc\tdef")
Fail	Whitespace collapses across element boundaries ("<div><span>abc </span> def")
Fail	Whitespace collapses across element boundaries ("<div><span>abc </span><span></span> def")
Fail	Whitespace collapses across element boundaries ("<div><span>abc </span><span style='white-space:pre'></span> def")
Pass	Whitespace around <input> should not be collapsed ("<div>abc <input> def")
Pass	Whitespace around inline-block should not be collapsed ("<div>abc <span style='display:inline-block'></span> def")
Fail	Trailing space at end of inline-block should be collapsed ("<div>abc <span style='display:inline-block'> def </span> ghi")
Pass	Whitespace around inline-flex should not be collapsed ("<div>abc <span style='display:inline-flex'></span> def")
Fail	Trailing space at end of inline-flex should be collapsed ("<div>abc <span style='display:inline-flex'> def </span> ghi")
Pass	Whitespace around inline-grid should not be collapsed ("<div>abc <span style='display:inline-grid'></span> def")
Fail	Trailing space at end of grid-flex should be collapsed ("<div>abc <span style='display:inline-grid'> def </span> ghi")
Fail	Whitespace between <input> and block should be collapsed ("<div><input> <div>abc</div>")
Fail	Whitespace between inline-block and block should be collapsed ("<div><span style='inline-block'></span> <div>abc</div>")
Fail	Whitespace between inline-flex and block should be collapsed ("<div><span style='inline-flex'></span> <div>abc</div>")
Fail	Whitespace between inline-grid and block should be collapsed ("<div><span style='inline-grid'></span> <div>abc</div>")
Pass	Whitespace around <img> should not be collapsed ("<div>abc <img> def")
Pass	Whitespace around <img> should not be collapsed ("<div>abc <img width=1 height=1> def")
Pass	Leading whitesapce should not be collapsed ("<div><img> abc")
Pass	Trailing whitesapce should not be collapsed ("<div>abc <img>")
Fail	Whitespace around empty span should be collapsed ("<div>abc <b></b> def")
Fail	Whitespace around empty spans should be collapsed ("<div>abc <b><i></i></b> def")
Pass	<canvas> should not collapse following space ("<div><canvas></canvas> abc")
Fail	Replaced element <img> with display:block should be treated as block-level ("<div>abc <img style='display:block'> def")
Fail	Replaced element <canvas> with display:block should be treated as block-level ("<div>abc <canvas style='display:block'></canvas> def")
Pass	Soft line breaks ignored ("<div style='width:0'>abc def")
Pass	Soft line break at hyphen ignored ("<div style='width:0'>abc-def")
Pass	Whitespace text node preserved ("<div style='width:0'><span>abc</span> <span>def</span>")
Pass	Soft breaks ignored in presence of word-break:break-word ("<div style='width:1px; word-break:break-word'>Hello Kitty</div>")
Pass	Element boundaries ignored for soft break handling (1) ("<div style='width:1px; word-break:break-word'><x>Hello</x> <x>Kitty</x></div>")
Fail	Whitespace collapses across element boundaries at soft break (1) ("<div style='width:1px; word-break:break-word'><x>Hello</x> <x> Kitty</x></div>")
Pass	Element boundaries ignored for soft break handling (2) ("<div style='width:1px; word-break:break-word'><x>Hello</x><x> Kitty</x></div>")
Fail	Whitespace collapses across element boundaries at soft break (2) ("<div style='width:1px; word-break:break-word'><x>Hello </x> <x>Kitty</x></div>")
Pass	Element boundaries ignored for soft break handling (3) ("<div style='width:1px; word-break:break-word'><x>Hello </x><x>Kitty</x></div>")
Fail	Whitespace collapses across element boundaries at soft break (3) ("<div style='width:1px; word-break:break-word'><x>Hello </x><x> Kitty</x></div>")
Fail	Whitespace collapses across element boundaries at soft break (4) ("<div style='width:1px; word-break:break-word'><x>Hello </x> <x> Kitty</x></div>")
Pass	Element boundaries ignored for soft break handling (4) ("<div style='width:1px; word-break:break-word'><x>Hello</x> Kitty</div>")
Pass	Element boundaries ignored for soft break handling (5) ("<div style='width:1px; word-break:break-word'><x>Hello </x>Kitty</div>")
Pass	Soft breaks ignored, text-transform applied ("<div style='width:1px; word-break:break-word; text-transform:uppercase'>Hello Kitty</div>")
Fail	<br> returned as newline, following space collapsed ("<div style='width:1px; word-break:break-word'>Hello<br> Kitty</div>")
Fail	<br> returned as newline, preceding space collapsed ("<div style='width:1px; word-break:break-word'>Hello <br>Kitty</div>")
Fail	<br> returned as newline, adjacent spaces collapsed across element boundaries ("<div style='width:1px; word-break:break-word'><x>Hello </x> <br> <x> Kitty</x></div>")
Fail	::first-line styles applied ("<div class='first-line-uppercase'>abc")
Fail	::first-line styles applied ("<div class='first-line-uppercase' style='width:0'>abc def")
Fail	::first-letter styles applied ("<div class='first-letter-uppercase' style='width:0'>abc def")
Pass	::first-letter float ignored ("<div class='first-letter-float' style='width:0'>abc def")
Pass	&nbsp; preserved ("<div>&nbsp;")
Pass	display:none container ("<div style='display:none'>abc")
Pass	No whitespace compression in display:none container ("<div style='display:none'>abc  def")
Pass	No removal of leading/trailing whitespace in display:none container ("<div style='display:none'> abc def ")
Pass	display:none child not rendered ("<div>123<span style='display:none'>abc")
Pass	display:none container with non-display-none target child ("<div style='display:none'><span id='target'>abc")
Pass	non-display-none child of svg ("<div id='target'>abc")
Pass	display:none child of svg ("<div style='display:none' id='target'>abc")
Pass	child of display:none child of svg ("<div style='display:none'><div id='target'>abc")
Pass	display:contents container ("<div style='display:contents'>abc")
Pass	display:contents container ("<div><div style='display:contents'>abc")
Pass	display:contents rendered ("<div>123<span style='display:contents'>abc")
Fail	display:contents not processed via textContent ("<div style='display:contents'>   ")
Fail	display:contents not processed via textContent ("<div><div style='display:contents'>   ")
Pass	visibility:hidden container ("<div style='visibility:hidden'>abc")
Pass	visibility:hidden child not rendered ("<div>123<span style='visibility:hidden'>abc")
Pass	visibility:visible child rendered ("<div style='visibility:hidden'>123<span style='visibility:visible'>abc")
Pass	visibility:collapse row-group ("<table><tbody style='visibility:collapse'><tr><td>abc")
Pass	visibility:collapse row ("<table><tr style='visibility:collapse'><td>abc")
Pass	visibility:collapse cell ("<table><tr><td style='visibility:collapse'>abc")
Pass	visibility:collapse row-group with visible cell ("<table><tbody style='visibility:collapse'><tr><td style='visibility:visible'>abc")
Pass	visibility:collapse row with visible cell ("<table><tr style='visibility:collapse'><td style='visibility:visible'>abc")
Pass	visibility:collapse honored on flex item ("<div style='display:flex'><span style='visibility:collapse'>1</span><span>2</span></div>")
Pass	visibility:collapse honored on grid item ("<div style='display:grid'><span style='visibility:collapse'>1</span><span>2</span></div>")
Pass	opacity:0 container ("<div style='opacity:0'>abc")
Pass	Whitespace compression in opacity:0 container ("<div style='opacity:0'>abc  def")
Fail	Remove leading/trailing whitespace in opacity:0 container ("<div style='opacity:0'> abc def ")
Pass	opacity:0 child rendered ("<div>123<span style='opacity:0'>abc")
Pass	Generated content not included ("<div class='before'>")
Pass	Generated content on child not included ("<div><div class='before'>")
Pass	<button> contents preserved ("<button>abc")
Pass	<fieldset> contents preserved ("<fieldset>abc")
Pass	<fieldset> <legend> contents preserved ("<fieldset><legend>abc")
Pass	<input> contents ignored ("<input type='text' value='abc'>")
Pass	<textarea> contents ignored ("<textarea>abc")
Pass	<iframe> contents ignored ("<iframe>abc")
Pass	<iframe> contents ignored ("<iframe><div id='target'>abc")
Pass	<iframe> subdocument ignored ("<iframe src='data:text/html,abc'>")
Pass	<audio> contents ignored ("<audio style='display:block'>abc")
Pass	<audio> contents ok for element not being rendered ("<audio style='display:block'><source id='target' class='poke' style='display:block'>")
Pass	<audio> contents ok for element not being rendered ("<audio style='display:block'><source id='target' class='poke' style='display:none'>")
Pass	<video> contents ignored ("<video>abc")
Pass	<video> contents ok for element not being rendered ("<video style='display:block'><source id='target' class='poke' style='display:block'>")
Pass	<video> contents ok for element not being rendered ("<video style='display:block'><source id='target' class='poke' style='display:none'>")
Pass	<canvas> contents ignored ("<canvas>abc")
Pass	<canvas><div id='target'> contents ok for element not being rendered ("<canvas><div id='target'>abc")
Pass	<img> alt text ignored ("<img alt='abc'>")
Pass	<img> contents ignored ("<img src='about:blank' class='poke'>")
Pass	<svg> text contents preserved ("<div><svg><text>abc</text></svg></div>")
Pass	<svg><defs> text contents ignored ("<div><svg><defs><text>abc</text></defs></svg></div>")
Fail	<svg> non-rendered text ignored ("<div><svg><stop>abc</stop></svg></div>")
Pass	<foreignObject> contents preserved ("<svg><foreignObject><span id='target'>abc</span></foreignObject></svg>")
Fail	<select size='1'> contents of options preserved ("<select size='1'><option>abc</option><option>def")
Fail	<select size='2'> contents of options preserved ("<select size='2'><option>abc</option><option>def")
Pass	<select size='1'> contents of target option preserved ("<select size='1'><option id='target'>abc</option><option>def")
Pass	<select size='2'> contents of target option preserved ("<select size='2'><option id='target'>abc</option><option>def")
Pass	empty <select> ("<div>a<select></select>bc")
Fail	empty <optgroup> in <select> ("<div>a<select><optgroup></select>bc")
Fail	empty <option> in <select> ("<div>a<select><option></select>bc")
Pass	<select> containing text node child ("<select class='poke'></select>")
Pass	<optgroup> containing <optgroup> ("<select><optgroup class='poke-optgroup'></select>")
Fail	<optgroup> containing <option> ("<select><optgroup><option>abc</select>")
Fail	<div> in <option> ("<select><option class='poke-div'>123</select>")
Fail	empty <optgroup> in <div> ("<div>a<optgroup></optgroup>bc")
Fail	<optgroup> in <div> ("<div>a<optgroup>123</optgroup>bc")
Fail	empty <option> in <div> ("<div>a<option></option>bc")
Fail	<option> in <div> ("<div>a<option>123</option>bc")
Pass	<button> contents preserved ("<div><button>abc")
Pass	<fieldset> contents preserved ("<div><fieldset>abc")
Pass	<fieldset> <legend> contents preserved ("<div><fieldset><legend>abc")
Pass	<input> contents ignored ("<div><input type='text' value='abc'>")
Pass	<textarea> contents ignored ("<div><textarea>abc")
Fail	<select size='1'> contents of options preserved ("<div><select size='1'><option>abc</option><option>def")
Fail	<select size='2'> contents of options preserved ("<div><select size='2'><option>abc</option><option>def")
Pass	<iframe> contents ignored ("<div><iframe>abc")
Pass	 <iframe> subdocument ignored ("<div><iframe src='data:text/html,abc'>")
Pass	<audio> contents ignored ("<div><audio>abc")
Pass	<video> contents ignored ("<div><video>abc")
Pass	<canvas> contents ignored ("<div><canvas>abc")
Pass	<object> contents ignored ("<div><object>abc")
Pass	<img> alt text ignored ("<div><img alt='abc'>")
Pass	Newline at block boundary ("<div>123<div>abc</div>def")
Pass	Newline at display:block boundary ("<div>123<span style='display:block'>abc</span>def")
Pass	Empty block induces single line break ("<div>abc<div></div>def")
Pass	Consecutive empty blocks ignored ("<div>abc<div></div><div></div>def")
Pass	No blank lines around <p> alone ("<div><p>abc")
Fail	No blank lines around <p> followed by only collapsible whitespace ("<div><p>abc</p> ")
Fail	No blank lines around <p> preceded by only collapsible whitespace ("<div> <p>abc</p>")
Pass	Blank line between consecutive <p>s ("<div><p>abc<p>def")
Fail	Blank line between consecutive <p>s separated only by collapsible whitespace ("<div><p>abc</p> <p>def")
Pass	Blank line between consecutive <p>s separated only by empty block ("<div><p>abc</p><div></div><p>def")
Pass	Blank lines between <p>s separated by non-empty block ("<div><p>abc</p><div>123</div><p>def")
Pass	Blank lines around a <p> in its own block ("<div>abc<div><p>123</p></div>def")
Pass	Blank line before <p> ("<div>abc<p>def")
Pass	Blank line after <p> ("<div><p>abc</p>def")
Pass	One blank line between <p>s, ignoring empty <p>s ("<div><p>abc<p></p><p></p><p>def")
Pass	Invisible <p> doesn't induce extra line breaks ("<div style='visibility:hidden'><p><span style='visibility:visible'>abc</span></p>\n<div style='visibility:visible'>def</div>")
Pass	No blank lines around <div> with margin ("<div>abc<div style='margin:2em'>def")
Pass	No newlines at display:inline-block boundary ("<div>123<span style='display:inline-block'>abc</span>def")
Fail	Leading/trailing space removal at display:inline-block boundary ("<div>123<span style='display:inline-block'> abc </span>def")
Fail	Leading/trailing space removal at display:inline-flex boundary ("<div>123<span style='display:inline-flex'> abc </span>def")
Fail	Leading/trailing space removal at display:inline-grid boundary ("<div>123<span style='display:inline-grid'> abc </span>def")
Pass	Blank lines around <p> even without margin ("<div>123<p style='margin:0px'>abc</p>def")
Pass	No blank lines around <h1> ("<div>123<h1>abc</h1>def")
Pass	No blank lines around <h2> ("<div>123<h2>abc</h2>def")
Pass	No blank lines around <h3> ("<div>123<h3>abc</h3>def")
Pass	No blank lines around <h4> ("<div>123<h4>abc</h4>def")
Pass	No blank lines around <h5> ("<div>123<h5>abc</h5>def")
Pass	No blank lines around <h6> ("<div>123<h6>abc</h6>def")
Pass	2 blank lines around <p> even when display:block ("<div>123<p style='display:block'>abc")
Pass	2 blank lines around <p> even when display:inline-block ("<div>123<p style='display:inline-block'>abc")
Pass	<span> boundaries are irrelevant ("<div>123<span>abc</span>def")
Pass	<span> boundaries are irrelevant ("<div>123 <span>abc</span> def")
Pass	<span> boundaries are irrelevant ("<div style='width:0'>123 <span>abc</span> def")
Pass	<em> gets no special treatment ("<div>123<em>abc</em>def")
Pass	<b> gets no special treatment ("<div>123<b>abc</b>def")
Pass	<i> gets no special treatment ("<div>123<i>abc</i>def")
Pass	<strong> gets no special treatment ("<div>123<strong>abc</strong>def")
Pass	<tt> gets no special treatment ("<div>123<tt>abc</tt>def")
Pass	<code> gets no special treatment ("<div>123<code>abc</code>def")
Pass	soft hyphen preserved ("<div>abc&shy;def")
Pass	soft hyphen preserved ("<div style='width:0'>abc&shy;def")
Fail	Ignoring non-rendered table whitespace ("<div><table style='white-space:pre'>  <td>abc</td>  </table>")
Pass	Tab-separated table cells ("<div><table><tr><td>abc<td>def</table>")
Pass	Tab-separated table cells including empty cells ("<div><table><tr><td>abc<td><td>def</table>")
Pass	Tab-separated table cells including trailing empty cells ("<div><table><tr><td>abc<td><td></table>")
Pass	Newline-separated table rows ("<div><table><tr><td>abc<tr><td>def</table>")
Pass	Newlines around table ("<div>abc<table><td>def</table>ghi")
Pass	Tab-separated table cells in a border-collapse table ("<div><table style='border-collapse:collapse'><tr><td>abc<td>def</table>")
Pass	tfoot not reordered ("<div><table><tfoot>x</tfoot><tbody>y</tbody></table>")
Fail	 ("<table><tfoot><tr><td>footer</tfoot><thead><tr><td style='visibility:collapse'>thead</thead><tbody><tr><td>tbody</tbody></table>")
Pass	No tab on table-cell itself ("<table><tr><td id=target>abc</td><td>def</td>")
Pass	No newline on table-row itself ("<table><tr id=target><td>abc</td><td>def</td></tr><tr id=target><td>ghi</td><td>jkl</td></tr>")
Pass	Newline between cells and caption ("<div><table><tr><td>abc<caption>def</caption></table>")
Fail	Tab-separated table cells ("<div><div class='table'><span class='cell'>abc</span>\n<span class='cell'>def</span></div>")
Fail	Newline-separated table rows ("<div><div class='table'><span class='row'><span class='cell'>abc</span></span>\n<span class='row'><span class='cell'>def</span></span></div>")
Pass	Newlines around table ("<div>abc<div class='table'><span class='cell'>def</span></div>ghi")
Fail	Tab-separated table cells ("<div><div class='itable'><span class='cell'>abc</span>\n<span class='cell'>def</span></div>")
Fail	Newline-separated table rows ("<div><div class='itable'><span class='row'><span class='cell'>abc</span></span>\n<span class='row'><span class='cell'>def</span></span></div>")
Pass	No newlines around inline-table ("<div>abc<div class='itable'><span class='cell'>def</span></div>ghi")
Fail	Single newline in two-row inline-table ("<div>abc<div class='itable'><span class='row'><span class='cell'>def</span></span>\n<span class='row'><span class='cell'>123</span></span></div>ghi")
Pass	display:table-row on the element itself ("<div style='display:table-row'>")
Pass	display:table-cell on the element itself ("<div style='display:table-cell'>")
Pass	display:table-caption on the element itself ("<div style='display:table-caption'>")
Pass	<ol> list items get no special treatment ("<div><ol><li>abc")
Pass	<ul> list items get no special treatment ("<div><ul><li>abc")
Pass	display:block <script> is rendered ("<div><script style='display:block'>abc")
Pass	display:block <style> is rendered ("<div><style style='display:block'>abc")
Pass	display:block <noscript> is not rendered (it's not parsed!) ("<div><noscript style='display:block'>abc")
Pass	display:block <template> contents are not rendered (the contents are in a different document) ("<div><template style='display:block'>abc")
Pass	<br> induces line break ("<div>abc<br>def")
Pass	<br> induces line break even at end of block ("<div>abc<br>")
Pass	<br> content ignored ("<div><br class='poke'>")
Pass	<hr> induces line break ("<div>abc<hr>def")
Pass	<hr><hr> induces just one line break ("<div>abc<hr><hr>def")
Pass	<hr><hr><hr> induces just one line break ("<div>abc<hr><hr><hr>def")
Pass	<hr> content rendered ("<div><hr class='poke'>")
Pass	comment ignored ("<div>abc<!--comment-->def")
Pass	<br> ("<br>")
Pass	empty <p> ("<p>")
Pass	empty <div> ("<div>")
Pass	unopened <details> ignored ("<div><details><summary>abc</summary>123")
Pass	opened <details> content shown ("<div><details open><summary>abc</summary>123")
Pass	text-transform is applied ("<div><div style='text-transform:uppercase'>abc")
Pass	text-transform handles es-zet ("<div><div style='text-transform:uppercase'>Maß")
Pass	text-transform handles Turkish casing ("<div><div lang='tr' style='text-transform:uppercase'>i ı")
Pass	block-in-inline doesn't add unnecessary newlines ("<div>abc<span>123<div>456</div>789</span>def")
Pass	floats induce a block boundary ("<div>abc<div style='float:left'>123</div>def")
Pass	floats induce a block boundary ("<div>abc<span style='float:left'>123</span>def")
Pass	float on the element itself ("<div style='float:left'>123")
Pass	position:absolute induces a block boundary ("<div>abc<div style='position:absolute'>123</div>def")
Pass	position:absolute induces a block boundary ("<div>abc<span style='position:absolute'>123</span>def")
Pass	position:absolute on the element itself ("<div style='position:absolute'>123")
Pass	position:relative has no effect ("<div>abc<div style='position:relative'>123</div>def")
Pass	position:relative has no effect ("<div>abc<span style='position:relative'>123</span>def")
Pass	overflow:hidden ignored ("<div style='overflow:hidden'>abc")
Pass	overflow:hidden ignored even with zero width ("<div style='width:0; overflow:hidden'>abc")
Pass	overflow:hidden ignored even with zero height ("<div style='height:0; overflow:hidden'>abc")
Pass	text-overflow:ellipsis ignored ("<div style='width:0; overflow:hidden; text-overflow:ellipsis'>abc")
Pass	innerText not supported on SVG elements ("<svg>abc")
Pass	innerText not supported on MathML elements ("<math>abc")
Pass	<rt> and no <rp> ("<div><ruby>abc<rt>def</rt></ruby>")
Pass	<rp> ("<div><ruby>abc<rp>(</rp><rt>def</rt><rp>)</rp></ruby>")
Pass	Lone <rp> ("<div><rp>abc</rp>")
Pass	visibility:hidden <rp> ("<div><rp style='visibility:hidden'>abc</rp>")
Pass	display:block <rp> ("<div><rp style='display:block'>abc</rp>def")
Fail	display:block <rp> with whitespace ("<div><rp style='display:block'> abc </rp>def")
Pass	<rp> in a <select> ("<div><select class='poke-rp'></select>")
Pass	Shadow DOM contents ignored ("<div class='shadow'>")
Pass	Shadow DOM contents ignored ("<div><div class='shadow'>")
Pass	CSS 'order' property ignored ("<div style='display:flex'><div style='order:1'>1</div><div>2</div></div>")
Pass	Flex items blockified ("<div style='display:flex'><span>1</span><span>2</span></div>")
Pass	CSS 'order' property ignored ("<div style='display:grid'><div style='order:1'>1</div><div>2</div></div>")
Pass	Grid items blockified ("<div style='display:grid'><span>1</span><span>2</span></div>")