Test content

Test that nav closes p. This paragraph should be surrounded by a thin green border, instead of a thick red one. Also tests that nav lays out as a block. There should be only a single border box with width of the content area (minus margins).

Test that p does not close nav. This paragraph should have a double green border.

Test that nav can nest inside itself. This paragraph should have a double green border.

Test of residual style. This text should be bold.
This should be bold too.

Test of FormatBlock behavior. This text should have a green border.

DOM for the above (so this test can dump as text)


<p></p><nav>Test that <code>nav</code> closes <code>p</code>. This paragraph should be surrounded by a thin green border, instead of a thick red one. Also tests that nav lays out as a block. There should be only a single border box with width of the content area (minus margins).</nav>
<br>
<nav><p>Test that <code>p</code> does not close <code>nav</code>. This paragraph should have a double green border.</p></nav>
<br>
<nav><nav>Test that <code>nav</code> can nest inside itself. This paragraph should have a double green border.</nav></nav>
<br>
<b><nav>Test of residual style. This text should be bold.</nav>This should be bold too.</b>

<p><br></p>

<div contenteditable="true" id="editable"><nav>
Test of FormatBlock behavior. This text should have a green border.
</nav></div>

