+++ /dev/null
-<?php
-
-/**
- * @covers DerivativeRequest
- */
-class DerivativeRequestTest extends PHPUnit\Framework\TestCase {
-
- public function testSetIp() {
- $original = new WebRequest();
- $original->setIP( '1.2.3.4' );
- $derivative = new DerivativeRequest( $original, [] );
-
- $this->assertEquals( '1.2.3.4', $derivative->getIP() );
-
- $derivative->setIP( '5.6.7.8' );
-
- $this->assertEquals( '5.6.7.8', $derivative->getIP() );
- $this->assertEquals( '1.2.3.4', $original->getIP() );
- }
-
-}
+++ /dev/null
-<?php
-
-/**
- * @covers Sanitizer::validateEmail
- * @todo all test methods in this class should be refactored and...
- * use a single test method and a single data provider...
- */
-class SanitizerValidateEmailTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- private function checkEmail( $addr, $expected = true, $msg = '' ) {
- if ( $msg == '' ) {
- $msg = "Testing $addr";
- }
-
- $this->assertEquals(
- $expected,
- Sanitizer::validateEmail( $addr ),
- $msg
- );
- }
-
- private function valid( $addr, $msg = '' ) {
- $this->checkEmail( $addr, true, $msg );
- }
-
- private function invalid( $addr, $msg = '' ) {
- $this->checkEmail( $addr, false, $msg );
- }
-
- public function testEmailWellKnownUserAtHostDotTldAreValid() {
- $this->valid( 'user@example.com' );
- $this->valid( 'user@example.museum' );
- }
-
- public function testEmailWithUpperCaseCharactersAreValid() {
- $this->valid( 'USER@example.com' );
- $this->valid( 'user@EXAMPLE.COM' );
- $this->valid( 'user@Example.com' );
- $this->valid( 'USER@eXAMPLE.com' );
- }
-
- public function testEmailWithAPlusInUserName() {
- $this->valid( 'user+sub@example.com' );
- $this->valid( 'user+@example.com' );
- }
-
- public function testEmailDoesNotNeedATopLevelDomain() {
- $this->valid( "user@localhost" );
- $this->valid( "FooBar@localdomain" );
- $this->valid( "nobody@mycompany" );
- }
-
- public function testEmailWithWhiteSpacesBeforeOrAfterAreInvalids() {
- $this->invalid( " user@host.com" );
- $this->invalid( "user@host.com " );
- $this->invalid( "\tuser@host.com" );
- $this->invalid( "user@host.com\t" );
- }
-
- public function testEmailWithWhiteSpacesAreInvalids() {
- $this->invalid( "User user@host" );
- $this->invalid( "first last@mycompany" );
- $this->invalid( "firstlast@my company" );
- }
-
- /**
- * T28948 : comma were matched by an incorrect regexp range
- */
- public function testEmailWithCommasAreInvalids() {
- $this->invalid( "user,foo@example.org" );
- $this->invalid( "userfoo@ex,ample.org" );
- }
-
- public function testEmailWithHyphens() {
- $this->valid( "user-foo@example.org" );
- $this->valid( "userfoo@ex-ample.org" );
- }
-
- public function testEmailDomainCanNotBeginWithDot() {
- $this->invalid( "user@." );
- $this->invalid( "user@.localdomain" );
- $this->invalid( "user@localdomain." );
- $this->valid( "user.@localdomain" );
- $this->valid( ".@localdomain" );
- $this->invalid( ".@a............" );
- }
-
- public function testEmailWithFunnyCharacters() {
- $this->valid( "\$user!ex{this}@123.com" );
- }
-
- public function testEmailTopLevelDomainCanBeNumerical() {
- $this->valid( "user@example.1234" );
- }
-
- public function testEmailWithoutAtSignIsInvalid() {
- $this->invalid( 'useràexample.com' );
- }
-
- public function testEmailWithOneCharacterDomainIsValid() {
- $this->valid( 'user@a' );
- }
-}
+++ /dev/null
-<?php
-
-/**
- * @group Xml
- */
-class XmlJsTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- /**
- * @covers XmlJsCode::__construct
- * @dataProvider provideConstruction
- */
- public function testConstruction( $value ) {
- $obj = new XmlJsCode( $value );
- $this->assertEquals( $value, $obj->value );
- }
-
- public static function provideConstruction() {
- return [
- [ null ],
- [ '' ],
- ];
- }
-
-}
+++ /dev/null
-<?php
-
-/**
- * @covers ComposerVersionNormalizer
- *
- * @group ComposerHooks
- *
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class ComposerVersionNormalizerTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
- use PHPUnit4And6Compat;
-
- /**
- * @dataProvider nonStringProvider
- */
- public function testGivenNonString_normalizeThrowsInvalidArgumentException( $nonString ) {
- $normalizer = new ComposerVersionNormalizer();
-
- $this->setExpectedException( InvalidArgumentException::class );
- $normalizer->normalizeSuffix( $nonString );
- }
-
- public function nonStringProvider() {
- return [
- [ null ],
- [ 42 ],
- [ [] ],
- [ new stdClass() ],
- [ true ],
- ];
- }
-
- /**
- * @dataProvider simpleVersionProvider
- */
- public function testGivenSimpleVersion_normalizeSuffixReturnsAsIs( $simpleVersion ) {
- $this->assertRemainsUnchanged( $simpleVersion );
- }
-
- protected function assertRemainsUnchanged( $version ) {
- $normalizer = new ComposerVersionNormalizer();
-
- $this->assertEquals(
- $version,
- $normalizer->normalizeSuffix( $version )
- );
- }
-
- public function simpleVersionProvider() {
- return [
- [ '1.22.0' ],
- [ '1.19.2' ],
- [ '1.19.2.0' ],
- [ '1.9' ],
- [ '123.321.456.654' ],
- ];
- }
-
- /**
- * @dataProvider complexVersionProvider
- */
- public function testGivenComplexVersionWithoutDash_normalizeSuffixAddsDash(
- $withoutDash, $withDash
- ) {
- $normalizer = new ComposerVersionNormalizer();
-
- $this->assertEquals(
- $withDash,
- $normalizer->normalizeSuffix( $withoutDash )
- );
- }
-
- public function complexVersionProvider() {
- return [
- [ '1.22.0alpha', '1.22.0-alpha' ],
- [ '1.22.0RC', '1.22.0-RC' ],
- [ '1.19beta', '1.19-beta' ],
- [ '1.9RC4', '1.9-RC4' ],
- [ '1.9.1.2RC4', '1.9.1.2-RC4' ],
- [ '1.9.1.2RC', '1.9.1.2-RC' ],
- [ '123.321.456.654RC9001', '123.321.456.654-RC9001' ],
- ];
- }
-
- /**
- * @dataProvider complexVersionProvider
- */
- public function testGivenComplexVersionWithDash_normalizeSuffixReturnsAsIs(
- $withoutDash, $withDash
- ) {
- $this->assertRemainsUnchanged( $withDash );
- }
-
- /**
- * @dataProvider fourLevelVersionsProvider
- */
- public function testGivenFourLevels_levelCountNormalizationDoesNothing( $version ) {
- $normalizer = new ComposerVersionNormalizer();
-
- $this->assertEquals(
- $version,
- $normalizer->normalizeLevelCount( $version )
- );
- }
-
- public function fourLevelVersionsProvider() {
- return [
- [ '1.22.0.0' ],
- [ '1.19.2.4' ],
- [ '1.19.2.0' ],
- [ '1.9.0.1' ],
- [ '123.321.456.654' ],
- [ '123.321.456.654RC4' ],
- [ '123.321.456.654-RC4' ],
- ];
- }
-
- /**
- * @dataProvider levelNormalizationProvider
- */
- public function testGivenFewerLevels_levelCountNormalizationEnsuresFourLevels(
- $expected, $version
- ) {
- $normalizer = new ComposerVersionNormalizer();
-
- $this->assertEquals(
- $expected,
- $normalizer->normalizeLevelCount( $version )
- );
- }
-
- public function levelNormalizationProvider() {
- return [
- [ '1.22.0.0', '1.22' ],
- [ '1.22.0.0', '1.22.0' ],
- [ '1.19.2.0', '1.19.2' ],
- [ '12345.0.0.0', '12345' ],
- [ '12345.0.0.0-RC4', '12345-RC4' ],
- [ '12345.0.0.0-alpha', '12345-alpha' ],
- ];
- }
-
- /**
- * @dataProvider invalidVersionProvider
- */
- public function testGivenInvalidVersion_normalizeSuffixReturnsAsIs( $invalidVersion ) {
- $this->assertRemainsUnchanged( $invalidVersion );
- }
-
- public function invalidVersionProvider() {
- return [
- [ '1.221-a' ],
- [ '1.221-' ],
- [ '1.22rc4a' ],
- [ 'a1.22rc' ],
- [ '.1.22rc' ],
- [ 'a' ],
- [ 'alpha42' ],
- ];
- }
-}
+++ /dev/null
-<?php
-
-use Wikimedia\TestingAccessWrapper;
-
-class EtcdConfigTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
- use PHPUnit4And6Compat;
-
- private function createConfigMock( array $options = [] ) {
- return $this->getMockBuilder( EtcdConfig::class )
- ->setConstructorArgs( [ $options + [
- 'host' => 'etcd-tcp.example.net',
- 'directory' => '/',
- 'timeout' => 0.1,
- ] ] )
- ->setMethods( [ 'fetchAllFromEtcd' ] )
- ->getMock();
- }
-
- private static function createEtcdResponse( array $response ) {
- $baseResponse = [
- 'config' => null,
- 'error' => null,
- 'retry' => false,
- 'modifiedIndex' => 0,
- ];
- return array_merge( $baseResponse, $response );
- }
-
- private function createSimpleConfigMock( array $config, $index = 0 ) {
- $mock = $this->createConfigMock();
- $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
- ->willReturn( self::createEtcdResponse( [
- 'config' => $config,
- 'modifiedIndex' => $index,
- ] ) );
- return $mock;
- }
-
- /**
- * @covers EtcdConfig::has
- */
- public function testHasKnown() {
- $config = $this->createSimpleConfigMock( [
- 'known' => 'value'
- ] );
- $this->assertSame( true, $config->has( 'known' ) );
- }
-
- /**
- * @covers EtcdConfig::__construct
- * @covers EtcdConfig::get
- */
- public function testGetKnown() {
- $config = $this->createSimpleConfigMock( [
- 'known' => 'value'
- ] );
- $this->assertSame( 'value', $config->get( 'known' ) );
- }
-
- /**
- * @covers EtcdConfig::has
- */
- public function testHasUnknown() {
- $config = $this->createSimpleConfigMock( [
- 'known' => 'value'
- ] );
- $this->assertSame( false, $config->has( 'unknown' ) );
- }
-
- /**
- * @covers EtcdConfig::get
- */
- public function testGetUnknown() {
- $config = $this->createSimpleConfigMock( [
- 'known' => 'value'
- ] );
- $this->setExpectedException( ConfigException::class );
- $config->get( 'unknown' );
- }
-
- /**
- * @covers EtcdConfig::getModifiedIndex
- */
- public function testGetModifiedIndex() {
- $config = $this->createSimpleConfigMock(
- [ 'some' => 'value' ],
- 123
- );
- $this->assertSame( 123, $config->getModifiedIndex() );
- }
-
- /**
- * @covers EtcdConfig::__construct
- */
- public function testConstructCacheObj() {
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get' ] )
- ->getMock();
- $cache->expects( $this->once() )->method( 'get' )
- ->willReturn( [
- 'config' => [ 'known' => 'from-cache' ],
- 'expires' => INF,
- 'modifiedIndex' => 123
- ] );
- $config = $this->createConfigMock( [ 'cache' => $cache ] );
-
- $this->assertSame( 'from-cache', $config->get( 'known' ) );
- }
-
- /**
- * @covers EtcdConfig::__construct
- */
- public function testConstructCacheSpec() {
- $config = $this->createConfigMock( [ 'cache' => [
- 'class' => HashBagOStuff::class
- ] ] );
- $config->expects( $this->once() )->method( 'fetchAllFromEtcd' )
- ->willReturn( self::createEtcdResponse(
- [ 'config' => [ 'known' => 'from-fetch' ], ] ) );
-
- $this->assertSame( 'from-fetch', $config->get( 'known' ) );
- }
-
- /**
- * Test matrix
- *
- * - [x] Cache miss
- * Result: Fetched value
- * > cache miss | gets lock | backend succeeds
- *
- * - [x] Cache miss with backend error
- * Result: ConfigException
- * > cache miss | gets lock | backend error (no retry)
- *
- * - [x] Cache hit after retry
- * Result: Cached value (populated by process holding lock)
- * > cache miss | no lock | cache retry
- *
- * - [x] Cache hit
- * Result: Cached value
- * > cache hit
- *
- * - [x] Process cache hit
- * Result: Cached value
- * > process cache hit
- *
- * - [x] Cache expired
- * Result: Fetched value
- * > cache expired | gets lock | backend succeeds
- *
- * - [x] Cache expired with backend failure
- * Result: Cached value (stale)
- * > cache expired | gets lock | backend fails (allows retry)
- *
- * - [x] Cache expired and no lock
- * Result: Cached value (stale)
- * > cache expired | no lock
- *
- * Other notable scenarios:
- *
- * - [ ] Cache miss with backend retry
- * Result: Fetched value
- * > cache expired | gets lock | backend failure (allows retry)
- */
-
- /**
- * @covers EtcdConfig::load
- */
- public function testLoadCacheMiss() {
- // Create cache mock
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get', 'lock' ] )
- ->getMock();
- // .. misses cache
- $cache->expects( $this->once() )->method( 'get' )
- ->willReturn( false );
- // .. gets lock
- $cache->expects( $this->once() )->method( 'lock' )
- ->willReturn( true );
-
- // Create config mock
- $mock = $this->createConfigMock( [
- 'cache' => $cache,
- ] );
- $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
- ->willReturn(
- self::createEtcdResponse( [ 'config' => [ 'known' => 'from-fetch' ] ] ) );
-
- $this->assertSame( 'from-fetch', $mock->get( 'known' ) );
- }
-
- /**
- * @covers EtcdConfig::load
- */
- public function testLoadCacheMissBackendError() {
- // Create cache mock
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get', 'lock' ] )
- ->getMock();
- // .. misses cache
- $cache->expects( $this->once() )->method( 'get' )
- ->willReturn( false );
- // .. gets lock
- $cache->expects( $this->once() )->method( 'lock' )
- ->willReturn( true );
-
- // Create config mock
- $mock = $this->createConfigMock( [
- 'cache' => $cache,
- ] );
- $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
- ->willReturn( self::createEtcdResponse( [ 'error' => 'Fake error', ] ) );
-
- $this->setExpectedException( ConfigException::class );
- $mock->get( 'key' );
- }
-
- /**
- * @covers EtcdConfig::load
- */
- public function testLoadCacheMissWithoutLock() {
- // Create cache mock
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get', 'lock' ] )
- ->getMock();
- $cache->expects( $this->exactly( 2 ) )->method( 'get' )
- ->will( $this->onConsecutiveCalls(
- // .. misses cache first time
- false,
- // .. hits cache on retry
- [
- 'config' => [ 'known' => 'from-cache' ],
- 'expires' => INF,
- 'modifiedIndex' => 123
- ]
- ) );
- // .. misses lock
- $cache->expects( $this->once() )->method( 'lock' )
- ->willReturn( false );
-
- // Create config mock
- $mock = $this->createConfigMock( [
- 'cache' => $cache,
- ] );
- $mock->expects( $this->never() )->method( 'fetchAllFromEtcd' );
-
- $this->assertSame( 'from-cache', $mock->get( 'known' ) );
- }
-
- /**
- * @covers EtcdConfig::load
- */
- public function testLoadCacheHit() {
- // Create cache mock
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get', 'lock' ] )
- ->getMock();
- $cache->expects( $this->once() )->method( 'get' )
- // .. hits cache
- ->willReturn( [
- 'config' => [ 'known' => 'from-cache' ],
- 'expires' => INF,
- 'modifiedIndex' => 0,
- ] );
- $cache->expects( $this->never() )->method( 'lock' );
-
- // Create config mock
- $mock = $this->createConfigMock( [
- 'cache' => $cache,
- ] );
- $mock->expects( $this->never() )->method( 'fetchAllFromEtcd' );
-
- $this->assertSame( 'from-cache', $mock->get( 'known' ) );
- }
-
- /**
- * @covers EtcdConfig::load
- */
- public function testLoadProcessCacheHit() {
- // Create cache mock
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get', 'lock' ] )
- ->getMock();
- $cache->expects( $this->once() )->method( 'get' )
- // .. hits cache
- ->willReturn( [
- 'config' => [ 'known' => 'from-cache' ],
- 'expires' => INF,
- 'modifiedIndex' => 0,
- ] );
- $cache->expects( $this->never() )->method( 'lock' );
-
- // Create config mock
- $mock = $this->createConfigMock( [
- 'cache' => $cache,
- ] );
- $mock->expects( $this->never() )->method( 'fetchAllFromEtcd' );
-
- $this->assertSame( 'from-cache', $mock->get( 'known' ), 'Cache hit' );
- $this->assertSame( 'from-cache', $mock->get( 'known' ), 'Process cache hit' );
- }
-
- /**
- * @covers EtcdConfig::load
- */
- public function testLoadCacheExpiredLockFetchSucceeded() {
- // Create cache mock
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get', 'lock' ] )
- ->getMock();
- $cache->expects( $this->once() )->method( 'get' )->willReturn(
- // .. stale cache
- [
- 'config' => [ 'known' => 'from-cache-expired' ],
- 'expires' => -INF,
- 'modifiedIndex' => 0,
- ]
- );
- // .. gets lock
- $cache->expects( $this->once() )->method( 'lock' )
- ->willReturn( true );
-
- // Create config mock
- $mock = $this->createConfigMock( [
- 'cache' => $cache,
- ] );
- $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
- ->willReturn( self::createEtcdResponse( [ 'config' => [ 'known' => 'from-fetch' ] ] ) );
-
- $this->assertSame( 'from-fetch', $mock->get( 'known' ) );
- }
-
- /**
- * @covers EtcdConfig::load
- */
- public function testLoadCacheExpiredLockFetchFails() {
- // Create cache mock
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get', 'lock' ] )
- ->getMock();
- $cache->expects( $this->once() )->method( 'get' )->willReturn(
- // .. stale cache
- [
- 'config' => [ 'known' => 'from-cache-expired' ],
- 'expires' => -INF,
- 'modifiedIndex' => 0,
- ]
- );
- // .. gets lock
- $cache->expects( $this->once() )->method( 'lock' )
- ->willReturn( true );
-
- // Create config mock
- $mock = $this->createConfigMock( [
- 'cache' => $cache,
- ] );
- $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
- ->willReturn( self::createEtcdResponse( [ 'error' => 'Fake failure', 'retry' => true ] ) );
-
- $this->assertSame( 'from-cache-expired', $mock->get( 'known' ) );
- }
-
- /**
- * @covers EtcdConfig::load
- */
- public function testLoadCacheExpiredNoLock() {
- // Create cache mock
- $cache = $this->getMockBuilder( HashBagOStuff::class )
- ->setMethods( [ 'get', 'lock' ] )
- ->getMock();
- $cache->expects( $this->once() )->method( 'get' )
- // .. hits cache (expired value)
- ->willReturn( [
- 'config' => [ 'known' => 'from-cache-expired' ],
- 'expires' => -INF,
- 'modifiedIndex' => 0,
- ] );
- // .. misses lock
- $cache->expects( $this->once() )->method( 'lock' )
- ->willReturn( false );
-
- // Create config mock
- $mock = $this->createConfigMock( [
- 'cache' => $cache,
- ] );
- $mock->expects( $this->never() )->method( 'fetchAllFromEtcd' );
-
- $this->assertSame( 'from-cache-expired', $mock->get( 'known' ) );
- }
-
- public static function provideFetchFromServer() {
- return [
- '200 OK - Success' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [],
- 'body' => json_encode( [ 'node' => [ 'nodes' => [
- [
- 'key' => '/example/foo',
- 'value' => json_encode( [ 'val' => true ] ),
- 'modifiedIndex' => 123
- ],
- ] ] ] ),
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'config' => [ 'foo' => true ], // data
- 'modifiedIndex' => 123
- ] ),
- ],
- '200 OK - Empty dir' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [],
- 'body' => json_encode( [ 'node' => [ 'nodes' => [
- [
- 'key' => '/example/foo',
- 'value' => json_encode( [ 'val' => true ] ),
- 'modifiedIndex' => 123
- ],
- [
- 'key' => '/example/sub',
- 'dir' => true,
- 'modifiedIndex' => 234,
- 'nodes' => [],
- ],
- [
- 'key' => '/example/bar',
- 'value' => json_encode( [ 'val' => false ] ),
- 'modifiedIndex' => 125
- ],
- ] ] ] ),
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'config' => [ 'foo' => true, 'bar' => false ], // data
- 'modifiedIndex' => 125 // largest modified index
- ] ),
- ],
- '200 OK - Recursive' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [],
- 'body' => json_encode( [ 'node' => [ 'nodes' => [
- [
- 'key' => '/example/a',
- 'dir' => true,
- 'modifiedIndex' => 124,
- 'nodes' => [
- [
- 'key' => 'b',
- 'value' => json_encode( [ 'val' => true ] ),
- 'modifiedIndex' => 123,
-
- ],
- [
- 'key' => 'c',
- 'value' => json_encode( [ 'val' => false ] ),
- 'modifiedIndex' => 123,
- ],
- ],
- ],
- ] ] ] ),
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'config' => [ 'a/b' => true, 'a/c' => false ], // data
- 'modifiedIndex' => 123 // largest modified index
- ] ),
- ],
- '200 OK - Missing nodes at second level' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [],
- 'body' => json_encode( [ 'node' => [ 'nodes' => [
- [
- 'key' => '/example/a',
- 'dir' => true,
- 'modifiedIndex' => 0,
- ],
- ] ] ] ),
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'error' => "Unexpected JSON response in dir 'a'; missing 'nodes' list.",
- ] ),
- ],
- '200 OK - Directory with non-array "nodes" key' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [],
- 'body' => json_encode( [ 'node' => [ 'nodes' => [
- [
- 'key' => '/example/a',
- 'dir' => true,
- 'nodes' => 'not an array'
- ],
- ] ] ] ),
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'error' => "Unexpected JSON response in dir 'a'; 'nodes' is not an array.",
- ] ),
- ],
- '200 OK - Correctly encoded garbage response' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [],
- 'body' => json_encode( [ 'foo' => 'bar' ] ),
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'error' => "Unexpected JSON response: Missing or invalid node at top level.",
- ] ),
- ],
- '200 OK - Bad value' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [],
- 'body' => json_encode( [ 'node' => [ 'nodes' => [
- [
- 'key' => '/example/foo',
- 'value' => ';"broken{value',
- 'modifiedIndex' => 123,
- ]
- ] ] ] ),
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'error' => "Failed to parse value for 'foo'.",
- ] ),
- ],
- '200 OK - Empty node list' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [],
- 'body' => '{"node":{"nodes":[], "modifiedIndex": 12 }}',
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'config' => [], // data
- ] ),
- ],
- '200 OK - Invalid JSON' => [
- 'http' => [
- 'code' => 200,
- 'reason' => 'OK',
- 'headers' => [ 'content-length' => 0 ],
- 'body' => '',
- 'error' => '(curl error: no status set)',
- ],
- 'expect' => self::createEtcdResponse( [
- 'error' => "Error unserializing JSON response.",
- ] ),
- ],
- '404 Not Found' => [
- 'http' => [
- 'code' => 404,
- 'reason' => 'Not Found',
- 'headers' => [ 'content-length' => 0 ],
- 'body' => '',
- 'error' => '',
- ],
- 'expect' => self::createEtcdResponse( [
- 'error' => 'HTTP 404 (Not Found)',
- ] ),
- ],
- '400 Bad Request - custom error' => [
- 'http' => [
- 'code' => 400,
- 'reason' => 'Bad Request',
- 'headers' => [ 'content-length' => 0 ],
- 'body' => '',
- 'error' => 'No good reason',
- ],
- 'expect' => self::createEtcdResponse( [
- 'error' => 'No good reason',
- 'retry' => true, // retry
- ] ),
- ],
- ];
- }
-
- /**
- * @covers EtcdConfig::fetchAllFromEtcdServer
- * @covers EtcdConfig::unserialize
- * @covers EtcdConfig::parseResponse
- * @covers EtcdConfig::parseDirectory
- * @covers EtcdConfigParseError
- * @dataProvider provideFetchFromServer
- */
- public function testFetchFromServer( array $httpResponse, array $expected ) {
- $http = $this->getMockBuilder( MultiHttpClient::class )
- ->disableOriginalConstructor()
- ->getMock();
- $http->expects( $this->once() )->method( 'run' )
- ->willReturn( array_values( $httpResponse ) );
-
- $conf = $this->getMockBuilder( EtcdConfig::class )
- ->disableOriginalConstructor()
- ->getMock();
- // Access for protected member and method
- $conf = TestingAccessWrapper::newFromObject( $conf );
- $conf->http = $http;
-
- $this->assertSame(
- $expected,
- $conf->fetchAllFromEtcdServer( 'etcd-tcp.example.net' )
- );
- }
-}
+++ /dev/null
-<?php
-
-class DatabaseOracleTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
- use PHPUnit4And6Compat;
-
- /**
- * @return PHPUnit_Framework_MockObject_MockObject|DatabaseOracle
- */
- private function getMockDb() {
- return $this->getMockBuilder( DatabaseOracle::class )
- ->disableOriginalConstructor()
- ->setMethods( null )
- ->getMock();
- }
-
- public function provideBuildSubstring() {
- yield [ 'someField', 1, 2, 'SUBSTR(someField,1,2)' ];
- yield [ 'someField', 1, null, 'SUBSTR(someField,1)' ];
- }
-
- /**
- * @covers DatabaseOracle::buildSubstring
- * @dataProvider provideBuildSubstring
- */
- public function testBuildSubstring( $input, $start, $length, $expected ) {
- $mockDb = $this->getMockDb();
- $output = $mockDb->buildSubstring( $input, $start, $length );
- $this->assertSame( $expected, $output );
- }
-
- public function provideBuildSubstring_invalidParams() {
- yield [ -1, 1 ];
- yield [ 1, -1 ];
- yield [ 1, 'foo' ];
- yield [ 'foo', 1 ];
- yield [ null, 1 ];
- yield [ 0, 1 ];
- }
-
- /**
- * @covers DatabaseOracle::buildSubstring
- * @dataProvider provideBuildSubstring_invalidParams
- */
- public function testBuildSubstring_invalidParams( $start, $length ) {
- $mockDb = $this->getMockDb();
- $this->setExpectedException( InvalidArgumentException::class );
- $mockDb->buildSubstring( 'foo', $start, $length );
- }
-
-}
+++ /dev/null
-<?php
-
-namespace MediaWiki\Logger\Monolog;
-
-class LogstashFormatterTest extends \PHPUnit\Framework\TestCase {
- /**
- * @dataProvider provideV1
- * @covers MediaWiki\Logger\Monolog\LogstashFormatter::formatV1
- * @param array $record The input record.
- * @param array $expected Associative array of expected keys and their values.
- * @param array $notExpected List of keys that should not exist.
- */
- public function testV1( array $record, array $expected, array $notExpected ) {
- $formatter = new LogstashFormatter( 'app', 'system', null, null, LogstashFormatter::V1 );
- $formatted = json_decode( $formatter->format( $record ), true );
- foreach ( $expected as $key => $value ) {
- $this->assertArrayHasKey( $key, $formatted );
- $this->assertSame( $value, $formatted[$key] );
- }
- foreach ( $notExpected as $key ) {
- $this->assertArrayNotHasKey( $key, $formatted );
- }
- }
-
- public function provideV1() {
- return [
- [
- [ 'extra' => [ 'foo' => 1 ], 'context' => [ 'bar' => 2 ] ],
- [ 'foo' => 1, 'bar' => 2 ],
- [ 'logstash_formatter_key_conflict' ],
- ],
- [
- [ 'extra' => [ 'url' => 1 ], 'context' => [ 'url' => 2 ] ],
- [ 'url' => 1, 'c_url' => 2, 'logstash_formatter_key_conflict' => [ 'url' ] ],
- [],
- ],
- [
- [ 'channel' => 'x', 'context' => [ 'channel' => 'y' ] ],
- [ 'channel' => 'x', 'c_channel' => 'y',
- 'logstash_formatter_key_conflict' => [ 'channel' ] ],
- [],
- ],
- ];
- }
-
- /**
- * @covers MediaWiki\Logger\Monolog\LogstashFormatter::formatV1
- */
- public function testV1WithPrefix() {
- $formatter = new LogstashFormatter( 'app', 'system', null, 'ctx_', LogstashFormatter::V1 );
- $record = [ 'extra' => [ 'url' => 1 ], 'context' => [ 'url' => 2 ] ];
- $formatted = json_decode( $formatter->format( $record ), true );
- $this->assertArrayHasKey( 'url', $formatted );
- $this->assertSame( 1, $formatted['url'] );
- $this->assertArrayHasKey( 'ctx_url', $formatted );
- $this->assertSame( 2, $formatted['ctx_url'] );
- $this->assertArrayNotHasKey( 'c_url', $formatted );
- }
-}
+++ /dev/null
-<?php
-
-/**
- * @covers MWCallableUpdate
- */
-class MWCallableUpdateTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- public function testDoUpdate() {
- $ran = 0;
- $update = new MWCallableUpdate( function () use ( &$ran ) {
- $ran++;
- } );
- $this->assertSame( 0, $ran );
- $update->doUpdate();
- $this->assertSame( 1, $ran );
- }
-
- public function testCancel() {
- // Prepare update and DB
- $db = new DatabaseTestHelper( __METHOD__ );
- $db->begin( __METHOD__ );
- $ran = 0;
- $update = new MWCallableUpdate( function () use ( &$ran ) {
- $ran++;
- }, __METHOD__, $db );
-
- // Emulate rollback
- $db->rollback( __METHOD__ );
-
- $update->doUpdate();
-
- // Ensure it was cancelled
- $this->assertSame( 0, $ran );
- }
-
- public function testCancelSome() {
- // Prepare update and DB
- $db1 = new DatabaseTestHelper( __METHOD__ );
- $db1->begin( __METHOD__ );
- $db2 = new DatabaseTestHelper( __METHOD__ );
- $db2->begin( __METHOD__ );
- $ran = 0;
- $update = new MWCallableUpdate( function () use ( &$ran ) {
- $ran++;
- }, __METHOD__, [ $db1, $db2 ] );
-
- // Emulate rollback
- $db1->rollback( __METHOD__ );
-
- $update->doUpdate();
-
- // Prevents: "Notice: DB transaction writes or callbacks still pending"
- $db2->rollback( __METHOD__ );
-
- // Ensure it was cancelled
- $this->assertSame( 0, $ran );
- }
-
- public function testCancelAll() {
- // Prepare update and DB
- $db1 = new DatabaseTestHelper( __METHOD__ );
- $db1->begin( __METHOD__ );
- $db2 = new DatabaseTestHelper( __METHOD__ );
- $db2->begin( __METHOD__ );
- $ran = 0;
- $update = new MWCallableUpdate( function () use ( &$ran ) {
- $ran++;
- }, __METHOD__, [ $db1, $db2 ] );
-
- // Emulate rollbacks
- $db1->rollback( __METHOD__ );
- $db2->rollback( __METHOD__ );
-
- $update->doUpdate();
-
- // Ensure it was cancelled
- $this->assertSame( 0, $ran );
- }
-
-}
+++ /dev/null
-<?php
-
-/**
- * @covers TransactionRoundDefiningUpdate
- */
-class TransactionRoundDefiningUpdateTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- public function testDoUpdate() {
- $ran = 0;
- $update = new TransactionRoundDefiningUpdate( function () use ( &$ran ) {
- $ran++;
- } );
- $this->assertSame( 0, $ran );
- $update->doUpdate();
- $this->assertSame( 1, $ran );
- }
-}
+++ /dev/null
-<?php
-
-use Wikimedia\TestingAccessWrapper;
-
-/**
- * @group BagOStuff
- */
-class RedisBagOStuffTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- /** @var RedisBagOStuff */
- private $cache;
-
- protected function setUp() {
- parent::setUp();
- $cache = $this->getMockBuilder( RedisBagOStuff::class )
- ->disableOriginalConstructor()
- ->getMock();
- $this->cache = TestingAccessWrapper::newFromObject( $cache );
- }
-
- /**
- * @covers RedisBagOStuff::unserialize
- * @dataProvider unserializeProvider
- */
- public function testUnserialize( $expected, $input, $message ) {
- $actual = $this->cache->unserialize( $input );
- $this->assertSame( $expected, $actual, $message );
- }
-
- public function unserializeProvider() {
- return [
- [
- -1,
- '-1',
- 'String representation of \'-1\'',
- ],
- [
- 0,
- '0',
- 'String representation of \'0\'',
- ],
- [
- 1,
- '1',
- 'String representation of \'1\'',
- ],
- [
- -1.0,
- 'd:-1;',
- 'Serialized negative double',
- ],
- [
- 'foo',
- 's:3:"foo";',
- 'Serialized string',
- ]
- ];
- }
-
- /**
- * @covers RedisBagOStuff::serialize
- * @dataProvider serializeProvider
- */
- public function testSerialize( $expected, $input, $message ) {
- $actual = $this->cache->serialize( $input );
- $this->assertSame( $expected, $actual, $message );
- }
-
- public function serializeProvider() {
- return [
- [
- -1,
- -1,
- '-1 as integer',
- ],
- [
- 0,
- 0,
- '0 as integer',
- ],
- [
- 1,
- 1,
- '1 as integer',
- ],
- [
- 'd:-1;',
- -1.0,
- 'Negative double',
- ],
- [
- 's:3:"2.1";',
- '2.1',
- 'Decimal string',
- ],
- [
- 's:1:"1";',
- '1',
- 'String representation of 1',
- ],
- [
- 's:3:"foo";',
- 'foo',
- 'String',
- ],
- ];
- }
-}
+++ /dev/null
-<?php
-
-/**
- * @covers VersionChecker
- */
-class VersionCheckerTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
- use PHPUnit4And6Compat;
-
- /**
- * @dataProvider provideMediaWikiCheck
- */
- public function testMediaWikiCheck( $coreVersion, $constraint, $expected ) {
- $checker = new VersionChecker( $coreVersion, '7.0.0', [] );
- $this->assertEquals( $expected, !(bool)$checker->checkArray( [
- 'FakeExtension' => [
- 'MediaWiki' => $constraint,
- ],
- ] ) );
- }
-
- public static function provideMediaWikiCheck() {
- return [
- // [ $wgVersion, constraint, expected ]
- [ '1.25alpha', '>= 1.26', false ],
- [ '1.25.0', '>= 1.26', false ],
- [ '1.26alpha', '>= 1.26', true ],
- [ '1.26alpha', '>= 1.26.0', true ],
- [ '1.26alpha', '>= 1.26.0-stable', false ],
- [ '1.26.0', '>= 1.26.0-stable', true ],
- [ '1.26.1', '>= 1.26.0-stable', true ],
- [ '1.27.1', '>= 1.26.0-stable', true ],
- [ '1.26alpha', '>= 1.26.1', false ],
- [ '1.26alpha', '>= 1.26alpha', true ],
- [ '1.26alpha', '>= 1.25', true ],
- [ '1.26.0-alpha.14', '>= 1.26.0-alpha.15', false ],
- [ '1.26.0-alpha.14', '>= 1.26.0-alpha.10', true ],
- [ '1.26.1', '>= 1.26.2, <=1.26.0', false ],
- [ '1.26.1', '^1.26.2', false ],
- // Accept anything for un-parsable version strings
- [ '1.26mwf14', '== 1.25alpha', true ],
- [ 'totallyinvalid', '== 1.0', true ],
- ];
- }
-
- /**
- * @dataProvider providePhpValidCheck
- */
- public function testPhpValidCheck( $phpVersion, $constraint, $expected ) {
- $checker = new VersionChecker( '1.0.0', $phpVersion, [] );
- $this->assertEquals( $expected, !(bool)$checker->checkArray( [
- 'FakeExtension' => [
- 'platform' => [
- 'php' => $constraint,
- ],
- ],
- ] ) );
- }
-
- public static function providePhpValidCheck() {
- return [
- // [ phpVersion, constraint, expected ]
- [ '7.0.23', '>= 7.0.0', true ],
- [ '7.0.23', '^7.1.0', false ],
- [ '7.0.23', '7.0.23', true ],
- ];
- }
-
- /**
- * @expectedException UnexpectedValueException
- */
- public function testPhpInvalidConstraint() {
- $checker = new VersionChecker( '1.0.0', '7.0.0', [] );
- $checker->checkArray( [
- 'FakeExtension' => [
- 'platform' => [
- 'php' => 'totallyinvalid',
- ],
- ],
- ] );
- }
-
- /**
- * @dataProvider providePhpInvalidVersion
- * @expectedException UnexpectedValueException
- */
- public function testPhpInvalidVersion( $phpVersion ) {
- $checker = new VersionChecker( '1.0.0', $phpVersion, [] );
- }
-
- public static function providePhpInvalidVersion() {
- return [
- // [ phpVersion ]
- [ '7.abc' ],
- [ '5.a.x' ],
- ];
- }
-
- /**
- * @dataProvider provideType
- */
- public function testType( $given, $expected ) {
- $checker = new VersionChecker(
- '1.0.0',
- '7.0.0',
- [ 'phpLoadedExtension' ],
- [
- 'presentAbility' => true,
- 'presentAbilityWithMessage' => true,
- 'missingAbility' => false,
- 'missingAbilityWithMessage' => false,
- ],
- [
- 'presentAbilityWithMessage' => 'Present.',
- 'missingAbilityWithMessage' => 'Missing.',
- ]
- );
- $checker->setLoadedExtensionsAndSkins( [
- 'FakeDependency' => [
- 'version' => '1.0.0',
- ],
- 'NoVersionGiven' => [],
- ] );
- $this->assertEquals( $expected, $checker->checkArray( [
- 'FakeExtension' => $given,
- ] ) );
- }
-
- public static function provideType() {
- return [
- // valid type
- [
- [
- 'extensions' => [
- 'FakeDependency' => '1.0.0',
- ],
- ],
- [],
- ],
- [
- [
- 'MediaWiki' => '1.0.0',
- ],
- [],
- ],
- [
- [
- 'extensions' => [
- 'NoVersionGiven' => '*',
- ],
- ],
- [],
- ],
- [
- [
- 'extensions' => [
- 'NoVersionGiven' => '1.0',
- ],
- ],
- [
- [
- 'incompatible' => 'FakeExtension',
- 'type' => 'incompatible-extensions',
- 'msg' => 'NoVersionGiven does not expose its version, but FakeExtension requires: 1.0.',
- ],
- ],
- ],
- [
- [
- 'extensions' => [
- 'Missing' => '*',
- ],
- ],
- [
- [
- 'missing' => 'Missing',
- 'type' => 'missing-extensions',
- 'msg' => 'FakeExtension requires Missing to be installed.',
- ],
- ],
- ],
- [
- [
- 'extensions' => [
- 'FakeDependency' => '2.0.0',
- ],
- ],
- [
- [
- 'incompatible' => 'FakeExtension',
- 'type' => 'incompatible-extensions',
- // phpcs:ignore Generic.Files.LineLength.TooLong
- 'msg' => 'FakeExtension is not compatible with the current installed version of FakeDependency (1.0.0), it requires: 2.0.0.',
- ],
- ],
- ],
- [
- [
- 'skins' => [
- 'FakeSkin' => '*',
- ],
- ],
- [
- [
- 'missing' => 'FakeSkin',
- 'type' => 'missing-skins',
- 'msg' => 'FakeExtension requires FakeSkin to be installed.',
- ],
- ],
- ],
- [
- [
- 'platform' => [
- 'ext-phpLoadedExtension' => '*',
- ],
- ],
- [],
- ],
- [
- [
- 'platform' => [
- 'ext-phpMissingExtension' => '*',
- ],
- ],
- [
- [
- 'missing' => 'phpMissingExtension',
- 'type' => 'missing-phpExtension',
- // phpcs:ignore Generic.Files.LineLength.TooLong
- 'msg' => 'FakeExtension requires phpMissingExtension PHP extension to be installed.',
- ],
- ],
- ],
- [
- [
- 'platform' => [
- 'ability-presentAbility' => true,
- ],
- ],
- [],
- ],
- [
- [
- 'platform' => [
- 'ability-presentAbilityWithMessage' => true,
- ],
- ],
- [],
- ],
- [
- [
- 'platform' => [
- 'ability-presentAbility' => false,
- ],
- ],
- [],
- ],
- [
- [
- 'platform' => [
- 'ability-presentAbilityWithMessage' => false,
- ],
- ],
- [],
- ],
- [
- [
- 'platform' => [
- 'ability-missingAbility' => true,
- ],
- ],
- [
- [
- 'missing' => 'missingAbility',
- 'type' => 'missing-ability',
- 'msg' => 'FakeExtension requires "missingAbility" ability',
- ],
- ],
- ],
- [
- [
- 'platform' => [
- 'ability-missingAbilityWithMessage' => true,
- ],
- ],
- [
- [
- 'missing' => 'missingAbilityWithMessage',
- 'type' => 'missing-ability',
- // phpcs:ignore Generic.Files.LineLength.TooLong
- 'msg' => 'FakeExtension requires "missingAbilityWithMessage" ability: Missing.',
- ],
- ],
- ],
- [
- [
- 'platform' => [
- 'ability-missingAbility' => false,
- ],
- ],
- [],
- ],
- [
- [
- 'platform' => [
- 'ability-missingAbilityWithMessage' => false,
- ],
- ],
- [],
- ],
- ];
- }
-
- /**
- * Check, if a non-parsable version constraint does not throw an exception or
- * returns any error message.
- */
- public function testInvalidConstraint() {
- $checker = new VersionChecker( '1.0.0', '7.0.0', [] );
- $checker->setLoadedExtensionsAndSkins( [
- 'FakeDependency' => [
- 'version' => 'not really valid',
- ],
- ] );
- $this->assertEquals( [
- [
- 'type' => 'invalid-version',
- 'msg' => "FakeDependency does not have a valid version string.",
- ],
- ], $checker->checkArray( [
- 'FakeExtension' => [
- 'extensions' => [
- 'FakeDependency' => '1.24.3',
- ],
- ],
- ] ) );
-
- $checker = new VersionChecker( '1.0.0', '7.0.0', [] );
- $checker->setLoadedExtensionsAndSkins( [
- 'FakeDependency' => [
- 'version' => '1.24.3',
- ],
- ] );
-
- $this->setExpectedException( UnexpectedValueException::class );
- $checker->checkArray( [
- 'FakeExtension' => [
- 'FakeDependency' => 'not really valid',
- ],
- ] );
- }
-
- public function provideInvalidDependency() {
- return [
- [
- [
- 'FakeExtension' => [
- 'platform' => [
- 'undefinedPlatformDependency' => '*',
- ],
- ],
- ],
- 'undefinedPlatformDependency',
- ],
- [
- [
- 'FakeExtension' => [
- 'platform' => [
- 'phpLoadedExtension' => '*',
- ],
- ],
- ],
- 'phpLoadedExtension',
- ],
- [
- [
- 'FakeExtension' => [
- 'platform' => [
- 'ability-invalidAbility' => true,
- ],
- ],
- ],
- 'ability-invalidAbility',
- ],
- [
- [
- 'FakeExtension' => [
- 'platform' => [
- 'presentAbility' => true,
- ],
- ],
- ],
- 'presentAbility',
- ],
- [
- [
- 'FakeExtension' => [
- 'undefinedDependencyType' => '*',
- ],
- ],
- 'undefinedDependencyType',
- ],
- // T197478
- [
- [
- 'FakeExtension' => [
- 'skin' => [
- 'FakeSkin' => '*',
- ],
- ],
- ],
- 'skin',
- ],
- ];
- }
-
- /**
- * @dataProvider provideInvalidDependency
- */
- public function testInvalidDependency( $depencency, $type ) {
- $checker = new VersionChecker(
- '1.0.0',
- '7.0.0',
- [ 'phpLoadedExtension' ],
- [
- 'presentAbility' => true,
- 'missingAbility' => false,
- ]
- );
- $this->setExpectedException(
- UnexpectedValueException::class,
- "Dependency type $type unknown in FakeExtension"
- );
- $checker->checkArray( $depencency );
- }
-
- public function testInvalidPhpExtensionConstraint() {
- $checker = new VersionChecker( '1.0.0', '7.0.0', [ 'phpLoadedExtension' ] );
- $this->setExpectedException(
- UnexpectedValueException::class,
- 'Version constraints for PHP extensions are not supported in FakeExtension'
- );
- $checker->checkArray( [
- 'FakeExtension' => [
- 'platform' => [
- 'ext-phpLoadedExtension' => '1.0.0',
- ],
- ],
- ] );
- }
-
- /**
- * @dataProvider provideInvalidAbilityType
- */
- public function testInvalidAbilityType( $value ) {
- $checker = new VersionChecker( '1.0.0', '7.0.0', [], [ 'presentAbility' => true ] );
- $this->setExpectedException(
- UnexpectedValueException::class,
- 'Only booleans are allowed to to indicate the presence of abilities in FakeExtension'
- );
- $checker->checkArray( [
- 'FakeExtension' => [
- 'platform' => [
- 'ability-presentAbility' => $value,
- ],
- ],
- ] );
- }
-
- public function provideInvalidAbilityType() {
- return [
- [ null ],
- [ 1 ],
- [ '1' ],
- ];
- }
-
-}
+++ /dev/null
-<?php
-
-/**
- * Test for filter utilities.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class SearchSuggestionSetTest extends \PHPUnit\Framework\TestCase {
- /**
- * Test that adding a new suggestion at the end
- * will keep proper score ordering
- * @covers SearchSuggestionSet::append
- */
- public function testAppend() {
- $set = SearchSuggestionSet::emptySuggestionSet();
- $this->assertEquals( 0, $set->getSize() );
- $set->append( new SearchSuggestion( 3 ) );
- $this->assertEquals( 3, $set->getWorstScore() );
- $this->assertEquals( 3, $set->getBestScore() );
-
- $suggestion = new SearchSuggestion( 4 );
- $set->append( $suggestion );
- $this->assertEquals( 2, $set->getWorstScore() );
- $this->assertEquals( 3, $set->getBestScore() );
- $this->assertEquals( 2, $suggestion->getScore() );
-
- $suggestion = new SearchSuggestion( 2 );
- $set->append( $suggestion );
- $this->assertEquals( 1, $set->getWorstScore() );
- $this->assertEquals( 3, $set->getBestScore() );
- $this->assertEquals( 1, $suggestion->getScore() );
-
- $scores = $set->map( function ( $s ) {
- return $s->getScore();
- } );
- $sorted = $scores;
- asort( $sorted );
- $this->assertEquals( $sorted, $scores );
- }
-
- /**
- * Test that adding a new best suggestion will keep proper score
- * ordering
- * @covers SearchSuggestionSet::getWorstScore
- * @covers SearchSuggestionSet::getBestScore
- * @covers SearchSuggestionSet::prepend
- */
- public function testInsertBest() {
- $set = SearchSuggestionSet::emptySuggestionSet();
- $this->assertEquals( 0, $set->getSize() );
- $set->prepend( new SearchSuggestion( 3 ) );
- $this->assertEquals( 3, $set->getWorstScore() );
- $this->assertEquals( 3, $set->getBestScore() );
-
- $suggestion = new SearchSuggestion( 4 );
- $set->prepend( $suggestion );
- $this->assertEquals( 3, $set->getWorstScore() );
- $this->assertEquals( 4, $set->getBestScore() );
- $this->assertEquals( 4, $suggestion->getScore() );
-
- $suggestion = new SearchSuggestion( 0 );
- $set->prepend( $suggestion );
- $this->assertEquals( 3, $set->getWorstScore() );
- $this->assertEquals( 5, $set->getBestScore() );
- $this->assertEquals( 5, $suggestion->getScore() );
-
- $suggestion = new SearchSuggestion( 2 );
- $set->prepend( $suggestion );
- $this->assertEquals( 3, $set->getWorstScore() );
- $this->assertEquals( 6, $set->getBestScore() );
- $this->assertEquals( 6, $suggestion->getScore() );
-
- $scores = $set->map( function ( $s ) {
- return $s->getScore();
- } );
- $sorted = $scores;
- asort( $sorted );
- $this->assertEquals( $sorted, $scores );
- }
-
- /**
- * @covers SearchSuggestionSet::shrink
- */
- public function testShrink() {
- $set = SearchSuggestionSet::emptySuggestionSet();
- for ( $i = 0; $i < 100; $i++ ) {
- $set->append( new SearchSuggestion( 0 ) );
- }
- $set->shrink( 10 );
- $this->assertEquals( 10, $set->getSize() );
-
- $set->shrink( 0 );
- $this->assertEquals( 0, $set->getSize() );
- }
-
- // TODO: test for fromTitles
-}
+++ /dev/null
-<?php
-
-use MediaWiki\Shell\Command;
-use MediaWiki\Shell\CommandFactory;
-use MediaWiki\Shell\FirejailCommand;
-use Psr\Log\NullLogger;
-use Wikimedia\TestingAccessWrapper;
-
-/**
- * @group Shell
- */
-class CommandFactoryTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- /**
- * @covers MediaWiki\Shell\CommandFactory::create
- */
- public function testCreate() {
- $logger = new NullLogger();
- $cgroup = '/sys/fs/cgroup/memory/mygroup';
- $limits = [
- 'filesize' => 1000,
- 'memory' => 1000,
- 'time' => 30,
- 'walltime' => 40,
- ];
-
- $factory = new CommandFactory( $limits, $cgroup, false );
- $factory->setLogger( $logger );
- $factory->logStderr();
- $command = $factory->create();
- $this->assertInstanceOf( Command::class, $command );
-
- $wrapper = TestingAccessWrapper::newFromObject( $command );
- $this->assertSame( $logger, $wrapper->logger );
- $this->assertSame( $cgroup, $wrapper->cgroup );
- $this->assertSame( $limits, $wrapper->limits );
- $this->assertTrue( $wrapper->doLogStderr );
- }
-
- /**
- * @covers MediaWiki\Shell\CommandFactory::create
- */
- public function testFirejailCreate() {
- $factory = new CommandFactory( [], false, 'firejail' );
- $factory->setLogger( new NullLogger() );
- $this->assertInstanceOf( FirejailCommand::class, $factory->create() );
- }
-}
+++ /dev/null
-<?php
-
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- *
- * @covers SiteExporter
- *
- * @author Daniel Kinzler
- */
-class SiteExporterTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
- use PHPUnit4And6Compat;
-
- public function testConstructor_InvalidArgument() {
- $this->setExpectedException( InvalidArgumentException::class );
-
- new SiteExporter( 'Foo' );
- }
-
- public function testExportSites() {
- $foo = Site::newForType( Site::TYPE_UNKNOWN );
- $foo->setGlobalId( 'Foo' );
-
- $acme = Site::newForType( Site::TYPE_UNKNOWN );
- $acme->setGlobalId( 'acme.com' );
- $acme->setGroup( 'Test' );
- $acme->addLocalId( Site::ID_INTERWIKI, 'acme' );
- $acme->setPath( Site::PATH_LINK, 'http://acme.com/' );
-
- $tmp = tmpfile();
- $exporter = new SiteExporter( $tmp );
-
- $exporter->exportSites( [ $foo, $acme ] );
-
- fseek( $tmp, 0 );
- $xml = fread( $tmp, 16 * 1024 );
-
- $this->assertContains( '<sites ', $xml );
- $this->assertContains( '<site>', $xml );
- $this->assertContains( '<globalid>Foo</globalid>', $xml );
- $this->assertContains( '</site>', $xml );
- $this->assertContains( '<globalid>acme.com</globalid>', $xml );
- $this->assertContains( '<group>Test</group>', $xml );
- $this->assertContains( '<localid type="interwiki">acme</localid>', $xml );
- $this->assertContains( '<path type="link">http://acme.com/</path>', $xml );
- $this->assertContains( '</sites>', $xml );
-
- // NOTE: HHVM (at least on wmf Jenkins) doesn't like file URLs.
- $xsdFile = __DIR__ . '/../../../../docs/sitelist-1.0.xsd';
- $xsdData = file_get_contents( $xsdFile );
-
- $document = new DOMDocument();
- $document->loadXML( $xml, LIBXML_NONET );
- $document->schemaValidateSource( $xsdData );
- }
-
- private function newSiteStore( SiteList $sites ) {
- $store = $this->getMockBuilder( SiteStore::class )->getMock();
-
- $store->expects( $this->once() )
- ->method( 'saveSites' )
- ->will( $this->returnCallback( function ( $moreSites ) use ( $sites ) {
- foreach ( $moreSites as $site ) {
- $sites->setSite( $site );
- }
- } ) );
-
- $store->expects( $this->any() )
- ->method( 'getSites' )
- ->will( $this->returnValue( new SiteList() ) );
-
- return $store;
- }
-
- public function provideRoundTrip() {
- $foo = Site::newForType( Site::TYPE_UNKNOWN );
- $foo->setGlobalId( 'Foo' );
-
- $acme = Site::newForType( Site::TYPE_UNKNOWN );
- $acme->setGlobalId( 'acme.com' );
- $acme->setGroup( 'Test' );
- $acme->addLocalId( Site::ID_INTERWIKI, 'acme' );
- $acme->setPath( Site::PATH_LINK, 'http://acme.com/' );
-
- $dewiki = Site::newForType( Site::TYPE_MEDIAWIKI );
- $dewiki->setGlobalId( 'dewiki' );
- $dewiki->setGroup( 'wikipedia' );
- $dewiki->setForward( true );
- $dewiki->addLocalId( Site::ID_INTERWIKI, 'wikipedia' );
- $dewiki->addLocalId( Site::ID_EQUIVALENT, 'de' );
- $dewiki->setPath( Site::PATH_LINK, 'http://de.wikipedia.org/w/' );
- $dewiki->setPath( MediaWikiSite::PATH_PAGE, 'http://de.wikipedia.org/wiki/' );
- $dewiki->setSource( 'meta.wikimedia.org' );
-
- return [
- 'empty' => [
- new SiteList()
- ],
-
- 'some' => [
- new SiteList( [ $foo, $acme, $dewiki ] ),
- ],
- ];
- }
-
- /**
- * @dataProvider provideRoundTrip()
- */
- public function testRoundTrip( SiteList $sites ) {
- $tmp = tmpfile();
- $exporter = new SiteExporter( $tmp );
-
- $exporter->exportSites( $sites );
-
- fseek( $tmp, 0 );
- $xml = fread( $tmp, 16 * 1024 );
-
- $actualSites = new SiteList();
- $store = $this->newSiteStore( $actualSites );
-
- $importer = new SiteImporter( $store );
- $importer->importFromXML( $xml );
-
- $this->assertEquals( $sites, $actualSites );
- }
-
-}
+++ /dev/null
-<?php
-
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- *
- * @covers SiteImporter
- *
- * @author Daniel Kinzler
- */
-class SiteImporterTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
- use PHPUnit4And6Compat;
-
- private function newSiteImporter( array $expectedSites, $errorCount ) {
- $store = $this->getMockBuilder( SiteStore::class )->getMock();
-
- $store->expects( $this->once() )
- ->method( 'saveSites' )
- ->will( $this->returnCallback( function ( $sites ) use ( $expectedSites ) {
- $this->assertSitesEqual( $expectedSites, $sites );
- } ) );
-
- $store->expects( $this->any() )
- ->method( 'getSites' )
- ->will( $this->returnValue( new SiteList() ) );
-
- $errorHandler = $this->getMockBuilder( Psr\Log\LoggerInterface::class )->getMock();
- $errorHandler->expects( $this->exactly( $errorCount ) )
- ->method( 'error' );
-
- $importer = new SiteImporter( $store );
- $importer->setExceptionCallback( [ $errorHandler, 'error' ] );
-
- return $importer;
- }
-
- public function assertSitesEqual( $expected, $actual, $message = '' ) {
- $this->assertEquals(
- $this->getSerializedSiteList( $expected ),
- $this->getSerializedSiteList( $actual ),
- $message
- );
- }
-
- public function provideImportFromXML() {
- $foo = Site::newForType( Site::TYPE_UNKNOWN );
- $foo->setGlobalId( 'Foo' );
-
- $acme = Site::newForType( Site::TYPE_UNKNOWN );
- $acme->setGlobalId( 'acme.com' );
- $acme->setGroup( 'Test' );
- $acme->addLocalId( Site::ID_INTERWIKI, 'acme' );
- $acme->setPath( Site::PATH_LINK, 'http://acme.com/' );
-
- $dewiki = Site::newForType( Site::TYPE_MEDIAWIKI );
- $dewiki->setGlobalId( 'dewiki' );
- $dewiki->setGroup( 'wikipedia' );
- $dewiki->setForward( true );
- $dewiki->addLocalId( Site::ID_INTERWIKI, 'wikipedia' );
- $dewiki->addLocalId( Site::ID_EQUIVALENT, 'de' );
- $dewiki->setPath( Site::PATH_LINK, 'http://de.wikipedia.org/w/' );
- $dewiki->setPath( MediaWikiSite::PATH_PAGE, 'http://de.wikipedia.org/wiki/' );
- $dewiki->setSource( 'meta.wikimedia.org' );
-
- return [
- 'empty' => [
- '<sites></sites>',
- [],
- ],
- 'no sites' => [
- '<sites><Foo><globalid>Foo</globalid></Foo><Bar><quux>Bla</quux></Bar></sites>',
- [],
- ],
- 'minimal' => [
- '<sites>' .
- '<site><globalid>Foo</globalid></site>' .
- '</sites>',
- [ $foo ],
- ],
- 'full' => [
- '<sites>' .
- '<site><globalid>Foo</globalid></site>' .
- '<site>' .
- '<globalid>acme.com</globalid>' .
- '<localid type="interwiki">acme</localid>' .
- '<group>Test</group>' .
- '<path type="link">http://acme.com/</path>' .
- '</site>' .
- '<site type="mediawiki">' .
- '<source>meta.wikimedia.org</source>' .
- '<globalid>dewiki</globalid>' .
- '<localid type="interwiki">wikipedia</localid>' .
- '<localid type="equivalent">de</localid>' .
- '<group>wikipedia</group>' .
- '<forward/>' .
- '<path type="link">http://de.wikipedia.org/w/</path>' .
- '<path type="page_path">http://de.wikipedia.org/wiki/</path>' .
- '</site>' .
- '</sites>',
- [ $foo, $acme, $dewiki ],
- ],
- 'skip' => [
- '<sites>' .
- '<site><globalid>Foo</globalid></site>' .
- '<site><barf>Foo</barf></site>' .
- '<site>' .
- '<globalid>acme.com</globalid>' .
- '<localid type="interwiki">acme</localid>' .
- '<silly>boop!</silly>' .
- '<group>Test</group>' .
- '<path type="link">http://acme.com/</path>' .
- '</site>' .
- '</sites>',
- [ $foo, $acme ],
- 1
- ],
- ];
- }
-
- /**
- * @dataProvider provideImportFromXML
- */
- public function testImportFromXML( $xml, array $expectedSites, $errorCount = 0 ) {
- $importer = $this->newSiteImporter( $expectedSites, $errorCount );
- $importer->importFromXML( $xml );
- }
-
- public function testImportFromXML_malformed() {
- $this->setExpectedException( Exception::class );
-
- $store = $this->getMockBuilder( SiteStore::class )->getMock();
- $importer = new SiteImporter( $store );
- $importer->importFromXML( 'THIS IS NOT XML' );
- }
-
- public function testImportFromFile() {
- $foo = Site::newForType( Site::TYPE_UNKNOWN );
- $foo->setGlobalId( 'Foo' );
-
- $acme = Site::newForType( Site::TYPE_UNKNOWN );
- $acme->setGlobalId( 'acme.com' );
- $acme->setGroup( 'Test' );
- $acme->addLocalId( Site::ID_INTERWIKI, 'acme' );
- $acme->setPath( Site::PATH_LINK, 'http://acme.com/' );
-
- $dewiki = Site::newForType( Site::TYPE_MEDIAWIKI );
- $dewiki->setGlobalId( 'dewiki' );
- $dewiki->setGroup( 'wikipedia' );
- $dewiki->setForward( true );
- $dewiki->addLocalId( Site::ID_INTERWIKI, 'wikipedia' );
- $dewiki->addLocalId( Site::ID_EQUIVALENT, 'de' );
- $dewiki->setPath( Site::PATH_LINK, 'http://de.wikipedia.org/w/' );
- $dewiki->setPath( MediaWikiSite::PATH_PAGE, 'http://de.wikipedia.org/wiki/' );
- $dewiki->setSource( 'meta.wikimedia.org' );
-
- $importer = $this->newSiteImporter( [ $foo, $acme, $dewiki ], 0 );
-
- $file = __DIR__ . '/SiteImporterTest.xml';
- $importer->importFromFile( $file );
- }
-
- /**
- * @param Site[] $sites
- *
- * @return array[]
- */
- private function getSerializedSiteList( $sites ) {
- $serialized = [];
-
- foreach ( $sites as $site ) {
- $key = $site->getGlobalId();
- $data = unserialize( $site->serialize() );
-
- $serialized[$key] = $data;
- }
-
- return $serialized;
- }
-}
+++ /dev/null
-<sites version="1.0" xmlns="http://www.mediawiki.org/xml/sitelist-1.0/">
- <site><globalid>Foo</globalid></site>
- <site>
- <globalid>acme.com</globalid>
- <localid type="interwiki">acme</localid>
- <group>Test</group>
- <path type="link">http://acme.com/</path>
- </site>
- <site type="mediawiki">
- <source>meta.wikimedia.org</source>
- <globalid>dewiki</globalid>
- <localid type="interwiki">wikipedia</localid>
- <localid type="equivalent">de</localid>
- <group>wikipedia</group>
- <forward/>
- <path type="link">http://de.wikipedia.org/w/</path>
- <path type="page_path">http://de.wikipedia.org/wiki/</path>
- </site>
-</sites>
+++ /dev/null
-<?php
-
-class RemexDriverTest extends MediaWikiTestCase {
- private static $remexTidyTestData = [
- [
- 'Empty string',
- "",
- ""
- ],
- [
- 'Simple p-wrap',
- "x",
- "<p>x</p>"
- ],
- [
- 'No p-wrap of blank node',
- " ",
- " "
- ],
- [
- 'p-wrap terminated by div',
- "x<div></div>",
- "<p>x</p><div></div>"
- ],
- [
- 'p-wrap not terminated by span',
- "x<span></span>",
- "<p>x<span></span></p>"
- ],
- [
- 'An element is non-blank and so gets p-wrapped',
- "<span></span>",
- "<p><span></span></p>"
- ],
- [
- 'The blank flag is set after a block-level element',
- "<div></div> ",
- "<div></div> "
- ],
- [
- 'Blank detection between two block-level elements',
- "<div></div> <div></div>",
- "<div></div> <div></div>"
- ],
- [
- 'But p-wrapping of non-blank content works after an element',
- "<div></div>x",
- "<div></div><p>x</p>"
- ],
- [
- 'p-wrapping between two block-level elements',
- "<div></div>x<div></div>",
- "<div></div><p>x</p><div></div>"
- ],
- [
- 'p-wrap inside blockquote',
- "<blockquote>x</blockquote>",
- "<blockquote><p>x</p></blockquote>"
- ],
- [
- 'A comment is blank for p-wrapping purposes',
- "<!-- x -->",
- "<!-- x -->"
- ],
- [
- 'A comment is blank even when a p-wrap was opened by a text node',
- " <!-- x -->",
- " <!-- x -->"
- ],
- [
- 'A comment does not open a p-wrap',
- "<!-- x -->x",
- "<!-- x --><p>x</p>"
- ],
- [
- 'A comment does not close a p-wrap',
- "x<!-- x -->",
- "<p>x<!-- x --></p>"
- ],
- [
- 'Empty li',
- "<ul><li></li></ul>",
- "<ul><li class=\"mw-empty-elt\"></li></ul>"
- ],
- [
- 'li with element',
- "<ul><li><span></span></li></ul>",
- "<ul><li><span></span></li></ul>"
- ],
- [
- 'li with text',
- "<ul><li>x</li></ul>",
- "<ul><li>x</li></ul>"
- ],
- [
- 'Empty tr',
- "<table><tbody><tr></tr></tbody></table>",
- "<table><tbody><tr class=\"mw-empty-elt\"></tr></tbody></table>"
- ],
- [
- 'Empty p',
- "<p>\n</p>",
- "<p class=\"mw-empty-elt\">\n</p>"
- ],
- [
- 'No p-wrapping of an inline element which contains a block element (T150317)',
- "<small><div>x</div></small>",
- "<small><div>x</div></small>"
- ],
- [
- 'p-wrapping of an inline element which contains an inline element',
- "<small><b>x</b></small>",
- "<p><small><b>x</b></small></p>"
- ],
- [
- 'p-wrapping is enabled in a blockquote in an inline element',
- "<small><blockquote>x</blockquote></small>",
- "<small><blockquote><p>x</p></blockquote></small>"
- ],
- [
- 'All bare text should be p-wrapped even when surrounded by block tags',
- "<small><blockquote>x</blockquote></small>y<div></div>z",
- "<small><blockquote><p>x</p></blockquote></small><p>y</p><div></div><p>z</p>"
- ],
- [
- 'Split tag stack 1',
- "<small>x<div>y</div>z</small>",
- "<p><small>x</small></p><small><div>y</div></small><p><small>z</small></p>"
- ],
- [
- 'Split tag stack 2',
- "<small><div>y</div>z</small>",
- "<small><div>y</div></small><p><small>z</small></p>"
- ],
- [
- 'Split tag stack 3',
- "<small>x<div>y</div></small>",
- "<p><small>x</small></p><small><div>y</div></small>"
- ],
- [
- 'Split tag stack 4 (modified to use splittable tag)',
- "a<code>b<i>c<div>d</div></i>e</code>",
- "<p>a<code>b<i>c</i></code></p><code><i><div>d</div></i></code><p><code>e</code></p>"
- ],
- [
- "Split tag stack regression check 1",
- "x<span><div>y</div></span>",
- "<p>x</p><span><div>y</div></span>"
- ],
- [
- "Split tag stack regression check 2 (modified to use splittable tag)",
- "a<code><i><div>d</div></i>e</code>",
- "<p>a</p><code><i><div>d</div></i></code><p><code>e</code></p>"
- ],
- // Simple tests from pwrap.js
- [
- 'Simple pwrap test 1',
- 'a',
- '<p>a</p>'
- ],
- [
- '<span> is not a splittable tag, but gets p-wrapped in simple wrapping scenarios',
- '<span>a</span>',
- '<p><span>a</span></p>'
- ],
- [
- 'Simple pwrap test 3',
- 'x <div>a</div> <div>b</div> y',
- '<p>x </p><div>a</div> <div>b</div><p> y</p>'
- ],
- [
- 'Simple pwrap test 4',
- 'x<!--c--> <div>a</div> <div>b</div> <!--c-->y',
- '<p>x<!--c--> </p><div>a</div> <div>b</div> <!--c--><p>y</p>'
- ],
- // Complex tests from pwrap.js
- [
- 'Complex pwrap test 1',
- '<i>x<div>a</div>y</i>',
- '<p><i>x</i></p><i><div>a</div></i><p><i>y</i></p>'
- ],
- [
- 'Complex pwrap test 2',
- 'a<small>b</small><i>c<div>d</div>e</i>f',
- '<p>a<small>b</small><i>c</i></p><i><div>d</div></i><p><i>e</i>f</p>'
- ],
- [
- 'Complex pwrap test 3',
- 'a<small>b<i>c<div>d</div></i>e</small>',
- '<p>a<small>b<i>c</i></small></p><small><i><div>d</div></i></small><p><small>e</small></p>'
- ],
- [
- 'Complex pwrap test 4',
- 'x<small><div>y</div></small>',
- '<p>x</p><small><div>y</div></small>'
- ],
- [
- 'Complex pwrap test 5',
- 'a<small><i><div>d</div></i>e</small>',
- '<p>a</p><small><i><div>d</div></i></small><p><small>e</small></p>'
- ],
- // phpcs:disable Generic.Files.LineLength
- [
- 'Complex pwrap test 6',
- '<i>a<div>b</div>c<b>d<div>e</div>f</b>g</i>',
- // PHP 5 does not allow concatenation in initialisation of a class static variable
- '<p><i>a</i></p><i><div>b</div></i><p><i>c<b>d</b></i></p><i><b><div>e</div></b></i><p><i><b>f</b>g</i></p>'
- ],
- // phpcs:enable
- /* FIXME the second <b> causes a stack split which clones the <i> even
- * though no <p> is actually generated
- [
- 'Complex pwrap test 7',
- '<i><b><font><div>x</div></font></b><div>y</div><b><font><div>z</div></font></b></i>',
- '<i><b><font><div>x</div></font></b><div>y</div><b><font><div>z</div></font></b></i>'
- ],
- */
- // New local tests
- [
- 'Blank text node after block end',
- '<small>x<div>y</div> <b>z</b></small>',
- '<p><small>x</small></p><small><div>y</div></small><p><small> <b>z</b></small></p>'
- ],
- [
- 'Text node fostering (FIXME: wrap missing)',
- '<table>x</table>',
- 'x<table></table>'
- ],
- [
- 'Blockquote fostering',
- '<table><blockquote>x</blockquote></table>',
- '<blockquote><p>x</p></blockquote><table></table>'
- ],
- [
- 'Block element fostering',
- '<table><div>x',
- '<div>x</div><table></table>'
- ],
- [
- 'Formatting element fostering (FIXME: wrap missing)',
- '<table><b>x',
- '<b>x</b><table></table>'
- ],
- [
- 'AAA clone of p-wrapped element (FIXME: empty b)',
- '<b>x<p>y</b>z</p>',
- '<p><b>x</b></p><b></b><p><b>y</b>z</p>',
- ],
- [
- 'AAA with fostering (FIXME: wrap missing)',
- '<table><b>1<p>2</b>3</p>',
- '<b>1</b><p><b>2</b>3</p><table></table>'
- ],
- [
- 'AAA causes reparent of p-wrapped text node (T178632)',
- '<i><blockquote>x</i></blockquote>',
- '<i></i><blockquote><p><i>x</i></p></blockquote>',
- ],
- [
- 'p-wrap ended by reparenting (T200827)',
- '<i><blockquote><p></i>',
- '<i></i><blockquote><p><i></i></p><p><i></i></p></blockquote>',
- ],
- [
- 'style tag isn\'t p-wrapped (T186965)',
- '<style>/* ... */</style>',
- '<style>/* ... */</style>',
- ],
- [
- 'link tag isn\'t p-wrapped (T186965)',
- '<link rel="foo" href="bar" />',
- '<link rel="foo" href="bar" />',
- ],
- [
- 'style tag doesn\'t split p-wrapping (T208901)',
- 'foo <style>/* ... */</style> bar',
- '<p>foo <style>/* ... */</style> bar</p>',
- ],
- [
- 'link tag doesn\'t split p-wrapping (T208901)',
- 'foo <link rel="foo" href="bar" /> bar',
- '<p>foo <link rel="foo" href="bar" /> bar</p>',
- ],
- ];
-
- public function provider() {
- return self::$remexTidyTestData;
- }
-
- /**
- * @dataProvider provider
- * @covers MediaWiki\Tidy\RemexCompatFormatter
- * @covers MediaWiki\Tidy\RemexCompatMunger
- * @covers MediaWiki\Tidy\RemexDriver
- * @covers MediaWiki\Tidy\RemexMungerData
- */
- public function testTidy( $desc, $input, $expected ) {
- $r = new MediaWiki\Tidy\RemexDriver( [] );
- $result = $r->tidy( $input );
- $this->assertEquals( $expected, $result, $desc );
- }
-
- public function html5libProvider() {
- $files = json_decode( file_get_contents( __DIR__ . '/html5lib-tests.json' ), true );
- $tests = [];
- foreach ( $files as $file => $fileTests ) {
- foreach ( $fileTests as $i => $test ) {
- $tests[] = [ "$file:$i", $test['data'] ];
- }
- }
- return $tests;
- }
-
- /**
- * This is a quick and dirty test to make sure none of the html5lib tests
- * generate exceptions. We don't really know what the expected output is.
- *
- * @dataProvider html5libProvider
- * @coversNothing
- */
- public function testHtml5Lib( $desc, $input ) {
- $r = new MediaWiki\Tidy\RemexDriver( [] );
- $result = $r->tidy( $input );
- $this->assertTrue( true, $desc );
- }
-}
+++ /dev/null
-{
- "adoption01.dat": [
- {
- "data": "<a><p></a></p>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,10): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a></a><p><a></a></p></body></html>",
- "noQuirksBodyHtml": "<a></a><p><a></a></p>"
- }
- },
- {
- "data": "<a>1<p>2</a>3</p>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,12): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "text": "3"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a>1</a><p><a>2</a>3</p></body></html>",
- "noQuirksBodyHtml": "<a>1</a><p><a>2</a>3</p>"
- }
- },
- {
- "data": "<a>1<button>2</a>3</button>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,17): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "button": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "button",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "text": "3"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a>1</a><button><a>2</a>3</button></body></html>",
- "noQuirksBodyHtml": "<a>1</a><button><a>2</a>3</button>"
- }
- },
- {
- "data": "<a>1<b>2</a>3</b>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,12): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "2"
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "3"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a>1<b>2</b></a><b>3</b></body></html>",
- "noQuirksBodyHtml": "<a>1<b>2</b></a><b>3</b>"
- }
- },
- {
- "data": "<a>1<div>2<div>3</a>4</div>5</div>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,20): adoption-agency-1.3",
- "(1,20): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "3"
- }
- ]
- },
- {
- "text": "4"
- }
- ]
- },
- {
- "text": "5"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a>1</a><div><a>2</a><div><a>3</a>4</div>5</div></body></html>",
- "noQuirksBodyHtml": "<a>1</a><div><a>2</a><div><a>3</a>4</div>5</div>"
- }
- },
- {
- "data": "<table><a>1<p>2</a>3</p>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,10): unexpected-start-tag-implies-table-voodoo",
- "(1,11): unexpected-character-implies-table-voodoo",
- "(1,14): unexpected-start-tag-implies-table-voodoo",
- "(1,15): unexpected-character-implies-table-voodoo",
- "(1,19): unexpected-end-tag-implies-table-voodoo",
- "(1,19): adoption-agency-1.3",
- "(1,20): unexpected-character-implies-table-voodoo",
- "(1,24): unexpected-end-tag-implies-table-voodoo",
- "(1,24): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "p": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "text": "3"
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a>1</a><p><a>2</a>3</p><table></table></body></html>",
- "noQuirksBodyHtml": "<a>1</a><p><a>2</a>3</p><table></table>"
- }
- },
- {
- "data": "<b><b><a><p></a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,16): adoption-agency-1.3",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "a": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><b><a></a><p><a></a></p></b></b></body></html>",
- "noQuirksBodyHtml": "<b><b><a></a><p><a></a></p></b></b>"
- }
- },
- {
- "data": "<b><a><b><p></a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,16): adoption-agency-1.3",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "a": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><a><b></b></a><b><p><a></a></p></b></b></body></html>",
- "noQuirksBodyHtml": "<b><a><b></b></a><b><p><a></a></p></b></b>"
- }
- },
- {
- "data": "<a><b><b><p></a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,16): adoption-agency-1.3",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><b><b></b></b></a><b><b><p><a></a></p></b></b></body></html>",
- "noQuirksBodyHtml": "<a><b><b></b></b></a><b><b><p><a></a></p></b></b>"
- }
- },
- {
- "data": "<p>1<s id=\"A\">2<b id=\"B\">3</p>4</s>5</b>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,30): unexpected-end-tag",
- "(1,35): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "s": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "s",
- "attrs": [
- {
- "name": "id",
- "value": "A"
- }
- ],
- "children": [
- {
- "text": "2"
- },
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "B"
- }
- ],
- "children": [
- {
- "text": "3"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "s",
- "attrs": [
- {
- "name": "id",
- "value": "A"
- }
- ],
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "B"
- }
- ],
- "children": [
- {
- "text": "4"
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "B"
- }
- ],
- "children": [
- {
- "text": "5"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p>1<s id=\"A\">2<b id=\"B\">3</b></s></p><s id=\"A\"><b id=\"B\">4</b></s><b id=\"B\">5</b></body></html>",
- "noQuirksBodyHtml": "<p>1<s id=\"A\">2<b id=\"B\">3</b></s></p><s id=\"A\"><b id=\"B\">4</b></s><b id=\"B\">5</b>"
- }
- },
- {
- "data": "<table><a>1<td>2</td>3</table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,10): unexpected-start-tag-implies-table-voodoo",
- "(1,11): unexpected-character-implies-table-voodoo",
- "(1,15): unexpected-cell-in-table-body",
- "(1,30): unexpected-implied-end-tag-in-table-view"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "3"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "2"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a>1</a><a>3</a><table><tbody><tr><td>2</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<a>1</a><a>3</a><table><tbody><tr><td>2</td></tr></tbody></table>"
- }
- },
- {
- "data": "<table>A<td>B</td>C</table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,8): unexpected-character-implies-table-voodoo",
- "(1,12): unexpected-cell-in-table-body",
- "(1,22): unexpected-character-implies-table-voodoo"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "AC"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>AC<table><tbody><tr><td>B</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "AC<table><tbody><tr><td>B</td></tr></tbody></table>"
- }
- },
- {
- "data": "<a><svg><tr><input></a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,23): unexpected-end-tag",
- "(1,23): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "svg svg": true,
- "svg tr": true,
- "svg input": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "tr",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "input",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><svg><tr><input></input></tr></svg></a></body></html>",
- "noQuirksBodyHtml": "<a><svg><tr><input></input></tr></svg></a>"
- }
- },
- {
- "data": "<div><a><b><div><div><div><div><div><div><div><div><div><div></a>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,65): adoption-agency-1.3",
- "(1,65): adoption-agency-1.3",
- "(1,65): adoption-agency-1.3",
- "(1,65): adoption-agency-1.3",
- "(1,65): adoption-agency-1.3",
- "(1,65): adoption-agency-1.3",
- "(1,65): adoption-agency-1.3",
- "(1,65): adoption-agency-1.3",
- "(1,65): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "a": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><a><b></b></a><b><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a><div><div></div></div></a></div></div></div></div></div></div></div></div></b></div></body></html>",
- "noQuirksBodyHtml": "<div><a><b></b></a><b><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a><div><div></div></div></a></div></div></div></div></div></div></div></div></b></div>"
- }
- },
- {
- "data": "<div><a><b><u><i><code><div></a>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,32): adoption-agency-1.3",
- "(1,32): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "a": true,
- "b": true,
- "u": true,
- "i": true,
- "code": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "u",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "code"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "u",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "code",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><a><b><u><i><code></code></i></u></b></a><u><i><code><div><a></a></div></code></i></u></div></body></html>",
- "noQuirksBodyHtml": "<div><a><b><u><i><code></code></i></u></b></a><u><i><code><div><a></a></div></code></i></u></div>"
- }
- },
- {
- "data": "<b><b><b><b>x</b></b></b></b>y",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "text": "y"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><b><b><b>x</b></b></b></b>y</body></html>",
- "noQuirksBodyHtml": "<b><b><b><b>x</b></b></b></b>y"
- }
- },
- {
- "data": "<p><b><b><b><b><p>x",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,18): unexpected-end-tag",
- "(1,19): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><b><b><b><b></b></b></b></b></p><p><b><b><b>x</b></b></b></p></body></html>",
- "noQuirksBodyHtml": "<p><b><b><b><b></b></b></b></b></p><p><b><b><b>x</b></b></b></p>"
- }
- },
- {
- "data": "<b><em><foo><foob><fooc><aside></b></em>",
- "errors": [
- "(1,35): adoption-agency-1.3",
- "(1,40): adoption-agency-1.3",
- "(1,40): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "div"
- },
- "document": {
- "props": {
- "tags": {
- "b": true,
- "em": true,
- "foo": true,
- "foob": true,
- "fooc": true,
- "aside": true
- }
- },
- "tree": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foob",
- "children": [
- {
- "tag": "fooc"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "aside",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ],
- "html": "<b><em><foo><foob><fooc></fooc></foob></foo></em></b><aside><b></b></aside>",
- "noQuirksBodyHtml": "<b><em><foo><foob><fooc></fooc></foob></foo></em></b><aside><b></b></aside>"
- }
- }
- ],
- "adoption02.dat": [
- {
- "data": "<b>1<i>2<p>3</b>4",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,16): adoption-agency-1.3",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "2"
- }
- ]
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "3"
- }
- ]
- },
- {
- "text": "4"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b>1<i>2</i></b><i><p><b>3</b>4</p></i></body></html>",
- "noQuirksBodyHtml": "<b>1<i>2</i></b><i><p><b>3</b>4</p></i>"
- }
- },
- {
- "data": "<a><div><style></style><address><a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,35): unexpected-start-tag-implies-end-tag",
- "(1,35): adoption-agency-1.3",
- "(1,35): adoption-agency-1.3",
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "div": true,
- "style": true,
- "address": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "style"
- }
- ]
- },
- {
- "tag": "address",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a></a><div><a><style></style></a><address><a></a><a></a></address></div></body></html>",
- "noQuirksBodyHtml": "<a></a><div><a><style></style></a><address><a></a><a></a></address></div>"
- }
- }
- ],
- "comments01.dat": [
- {
- "data": "FOO<!-- BAR -->BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": " BAR "
- },
- {
- "text": "BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!-- BAR -->BAZ</body></html>",
- "noQuirksBodyHtml": "FOO<!-- BAR -->BAZ"
- }
- },
- {
- "data": "FOO<!-- BAR --!>BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,15): unexpected-bang-after-double-dash-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": " BAR "
- },
- {
- "text": "BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!-- BAR -->BAZ</body></html>",
- "noQuirksBodyHtml": "FOO<!-- BAR -->BAZ"
- }
- },
- {
- "data": "FOO<!-- BAR -- >BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,15): unexpected-char-in-comment",
- "(1,21): eof-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": " BAR -- >BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!-- BAR -- >BAZ--></body></html>",
- "noQuirksBodyHtml": "FOO<!-- BAR -- >BAZ-->"
- }
- },
- {
- "data": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,15): unexpected-char-in-comment",
- "(1,24): unexpected-char-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": " BAR -- <QUX> -- MUX "
- },
- {
- "text": "BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -->BAZ</body></html>",
- "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ"
- }
- },
- {
- "data": "FOO<!-- BAR -- <QUX> -- MUX --!>BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,15): unexpected-char-in-comment",
- "(1,24): unexpected-char-in-comment",
- "(1,31): unexpected-bang-after-double-dash-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": " BAR -- <QUX> -- MUX "
- },
- {
- "text": "BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -->BAZ</body></html>",
- "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ"
- }
- },
- {
- "data": "FOO<!-- BAR -- <QUX> -- MUX -- >BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,15): unexpected-char-in-comment",
- "(1,24): unexpected-char-in-comment",
- "(1,31): unexpected-char-in-comment",
- "(1,35): eof-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": " BAR -- <QUX> -- MUX -- >BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -- >BAZ--></body></html>",
- "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -- >BAZ-->"
- }
- },
- {
- "data": "FOO<!---->BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": ""
- },
- {
- "text": "BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
- "noQuirksBodyHtml": "FOO<!---->BAZ"
- }
- },
- {
- "data": "FOO<!--->BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,9): incorrect-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": ""
- },
- {
- "text": "BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
- "noQuirksBodyHtml": "FOO<!---->BAZ"
- }
- },
- {
- "data": "FOO<!-->BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,8): incorrect-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": ""
- },
- {
- "text": "BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
- "noQuirksBodyHtml": "FOO<!---->BAZ"
- }
- },
- {
- "data": "<?xml version=\"1.0\">Hi",
- "errors": [
- "(1,1): expected-tag-name-but-got-question-mark",
- "(1,22): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "?xml version=\"1.0\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hi"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!--?xml version=\"1.0\"--><html><head></head><body>Hi</body></html>",
- "noQuirksBodyHtml": "<!--?xml version=\"1.0\"-->Hi"
- }
- },
- {
- "data": "<?xml version=\"1.0\">",
- "errors": [
- "(1,1): expected-tag-name-but-got-question-mark",
- "(1,20): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "?xml version=\"1.0\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--?xml version=\"1.0\"--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--?xml version=\"1.0\"-->"
- }
- },
- {
- "data": "<?xml version",
- "errors": [
- "(1,1): expected-tag-name-but-got-question-mark",
- "(1,13): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "?xml version"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--?xml version--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--?xml version-->"
- }
- },
- {
- "data": "FOO<!----->BAZ",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,10): unexpected-dash-after-double-dash-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "comment": "-"
- },
- {
- "text": "BAZ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<!----->BAZ</body></html>",
- "noQuirksBodyHtml": "FOO<!----->BAZ"
- }
- },
- {
- "data": "<html><!-- comment --><title>Comment before head</title>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "comment": " comment "
- },
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "Comment before head"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><!-- comment --><head><title>Comment before head</title></head><body></body></html>",
- "noQuirksBodyHtml": "<!-- comment --><title>Comment before head</title>"
- }
- }
- ],
- "doctype01.dat": [
- {
- "data": "<!DOCTYPE html>Hello",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!dOctYpE HtMl>Hello",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPEhtml>Hello",
- "errors": [
- "(1,9): need-space-after-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE>Hello",
- "errors": [
- "(1,9): need-space-after-doctype",
- "(1,10): expected-doctype-name-but-got-right-bracket",
- "(1,10): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": ""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE ><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE >Hello",
- "errors": [
- "(1,11): expected-doctype-name-but-got-right-bracket",
- "(1,11): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": ""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE ><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato>Hello",
- "errors": [
- "(1,17): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato >Hello",
- "errors": [
- "(1,18): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato taco>Hello",
- "errors": [
- "(1,17): expected-space-or-right-bracket-in-doctype",
- "(1,22): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato taco \"ddd>Hello",
- "errors": [
- "(1,17): expected-space-or-right-bracket-in-doctype",
- "(1,27): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato sYstEM>Hello",
- "errors": [
- "(1,24): unexpected-char-in-doctype",
- "(1,24): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato sYstEM >Hello",
- "errors": [
- "(1,28): unexpected-char-in-doctype",
- "(1,28): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato sYstEM ggg>Hello",
- "errors": [
- "(1,34): unexpected-char-in-doctype",
- "(1,37): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato SYSTEM taco >Hello",
- "errors": [
- "(1,25): unexpected-char-in-doctype",
- "(1,31): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato SYSTEM 'taco\"'>Hello",
- "errors": [
- "(1,32): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato \"\" \"taco\"\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato SYSTEM \"taco\">Hello",
- "errors": [
- "(1,31): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato \"\" \"taco\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato SYSTEM \"tai'co\">Hello",
- "errors": [
- "(1,33): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato \"\" \"tai'co\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato SYSTEMtaco \"ddd\">Hello",
- "errors": [
- "(1,24): unexpected-char-in-doctype",
- "(1,34): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato grass SYSTEM taco>Hello",
- "errors": [
- "(1,17): expected-space-or-right-bracket-in-doctype",
- "(1,35): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato pUbLIc>Hello",
- "errors": [
- "(1,24): unexpected-end-of-doctype",
- "(1,24): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato pUbLIc >Hello",
- "errors": [
- "(1,25): unexpected-end-of-doctype",
- "(1,25): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato pUbLIcgoof>Hello",
- "errors": [
- "(1,24): unexpected-char-in-doctype",
- "(1,28): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato PUBLIC goof>Hello",
- "errors": [
- "(1,25): unexpected-char-in-doctype",
- "(1,29): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato PUBLIC \"go'of\">Hello",
- "errors": [
- "(1,32): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato \"go'of\" \"\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato PUBLIC 'go'of'>Hello",
- "errors": [
- "(1,29): unexpected-char-in-doctype",
- "(1,32): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato \"go\" \"\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato PUBLIC 'go:hh of' >Hello",
- "errors": [
- "(1,38): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato \"go:hh of\" \"\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE potato PUBLIC \"W3C-//dfdf\" SYSTEM ggg>Hello",
- "errors": [
- "(1,38): unexpected-char-in-doctype",
- "(1,48): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "potato \"W3C-//dfdf\" \"\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n \"http://www.w3.org/TR/html4/strict.dtd\">Hello",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE ...>Hello",
- "errors": [
- "(1,14): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "..."
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE ...><html><head></head><body>Hello</body></html>",
- "noQuirksBodyHtml": "Hello"
- }
- },
- {
- "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">",
- "errors": [
- "(2,58): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">",
- "errors": [
- "(2,54): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] \"uri\" [ \n<!-- internal declarations -->\n]>",
- "errors": [
- "(1,23): expected-space-or-right-bracket-in-doctype",
- "(2,30): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "root-element"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "]>",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE root-element><html><head></head><body>]></body></html>",
- "noQuirksBodyHtml": "\n]>"
- }
- },
- {
- "data": "<!DOCTYPE html PUBLIC\n \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\"\n \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\">",
- "errors": [
- "(3,53): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\" \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE HTML SYSTEM \"http://www.w3.org/DTD/HTML4-strict.dtd\"><body><b>Mine!</b></body>",
- "errors": [
- "(1,63): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"\" \"http://www.w3.org/DTD/HTML4-strict.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "Mine!"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b>Mine!</b></body></html>",
- "noQuirksBodyHtml": "<b>Mine!</b>"
- }
- },
- {
- "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\"http://www.w3.org/TR/html4/strict.dtd\">",
- "errors": [
- "(1,50): unexpected-char-in-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"'http://www.w3.org/TR/html4/strict.dtd'>",
- "errors": [
- "(1,50): unexpected-char-in-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE HTML PUBLIC\"-//W3C//DTD HTML 4.01//EN\"'http://www.w3.org/TR/html4/strict.dtd'>",
- "errors": [
- "(1,21): unexpected-char-in-doctype",
- "(1,49): unexpected-char-in-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'>",
- "errors": [
- "(1,21): unexpected-char-in-doctype",
- "(1,49): unexpected-char-in-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- }
- ],
- "domjs-unsafe.dat": [
- {
- "data": "<svg><![CDATA[foo\nbar]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(2,6): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo\nbar"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[foo\rbar]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(2,6): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo\nbar"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[foo\r\nbar]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(2,6): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo\nbar"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
- }
- },
- {
- "data": "<script>a='\u0000'</script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,12): invalid-codepoint"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "a='�'",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script>a='�'</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script>a='�'</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--\u0000</script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,25): invalid-codepoint"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--�",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--�</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--�</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--foo\u0000</script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,28): invalid-codepoint"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--foo�",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--foo�</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--foo�</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!-- foo-\u0000</script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,30): invalid-codepoint"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!-- foo-�",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!-- foo-�</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-�</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!-- foo--\u0000</script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,31): invalid-codepoint"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!-- foo--�",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!-- foo--�</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!-- foo--�</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!-- foo-",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,29): expected-script-data-but-got-eof",
- "(1,29): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!-- foo-",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!-- foo-</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!-- foo-<</script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!-- foo-<",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!-- foo-<</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-<</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!-- foo-<S",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,31): expected-script-data-but-got-eof",
- "(1,31): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!-- foo-<S",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!-- foo-<S</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-<S</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!-- foo-</SCRIPT>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!-- foo-",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!-- foo-</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-</script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<p></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<p>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<p></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<p></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<script></script></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<script></script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<script></script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<script></script></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<script>\u0000</script></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,33): invalid-codepoint"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<script>�</script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<script>�</script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<script>�</script></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<script>-\u0000</script></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,34): invalid-codepoint"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<script>-�</script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<script>-�</script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<script>-�</script></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<script>--\u0000</script></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag",
- "(1,35): invalid-codepoint"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<script>--�</script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<script>--�</script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<script>--�</script></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<script>---</script></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<script>---</script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<script>---</script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<script>---</script></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<script></scrip></SCRIPT>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<script></scrip></SCRIPT></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<script></scrip </SCRIPT>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<script></scrip </SCRIPT></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--<script></scrip/</SCRIPT>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--<script></scrip/</SCRIPT></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>"
- }
- },
- {
- "data": "<script type=\"data\"></scrip/></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "</scrip/>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"></scrip/></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"></scrip/></script>"
- }
- },
- {
- "data": "<script type=\"data\"></scrip ></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "</scrip >",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"></scrip ></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"></scrip ></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--</scrip></script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--</scrip>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--</scrip></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip></script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--</scrip </script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--</scrip ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--</scrip </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip </script>"
- }
- },
- {
- "data": "<script type=\"data\"><!--</scrip/</script>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "data"
- }
- ],
- "children": [
- {
- "text": "<!--</scrip/",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script type=\"data\"><!--</scrip/</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip/</script>"
- }
- },
- {
- "data": "<!DOCTYPE html><!DOCTYPE html>",
- "errors": [
- "(1,30): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><!DOCTYPE html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,21): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head><!DOCTYPE html></head>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,27): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head></head><!DOCTYPE html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,34): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<body></body><!DOCTYPE html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,28): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<table><!DOCTYPE html></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,22): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table></table></body></html>",
- "noQuirksBodyHtml": "<table></table>"
- }
- },
- {
- "data": "<select><!DOCTYPE html></select>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,23): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<table><colgroup><!DOCTYPE html></colgroup></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,32): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
- }
- },
- {
- "data": "<table><colgroup><!--test--></colgroup></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "comment": "test"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup><!--test--></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup><!--test--></colgroup></table>"
- }
- },
- {
- "data": "<table><colgroup><html></colgroup></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,23): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
- }
- },
- {
- "data": "<table><colgroup> foo</colgroup></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,32): foster-parenting-character-in-table",
- "(1,32): foster-parenting-character-in-table",
- "(1,32): foster-parenting-character-in-table",
- "(1,32): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "foo"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>foo<table><colgroup> </colgroup></table></body></html>",
- "noQuirksBodyHtml": "foo<table><colgroup> </colgroup></table>"
- }
- },
- {
- "data": "<select><!--test--></select>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "comment": "test"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><!--test--></select></body></html>",
- "noQuirksBodyHtml": "<select><!--test--></select>"
- }
- },
- {
- "data": "<select><html></select>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,14): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<frameset><html></frameset>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,16): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<frameset></frameset><html>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,27): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<frameset></frameset><!DOCTYPE html>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,36): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><body></body></html><!DOCTYPE html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,41): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<svg><!DOCTYPE html></svg>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,20): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<svg><font></font></svg>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "font",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><font></font></svg></body></html>",
- "noQuirksBodyHtml": "<svg><font></font></svg>"
- }
- },
- {
- "data": "<svg><font id=foo></font></svg>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "font",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "id",
- "value": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><font id=\"foo\"></font></svg></body></html>",
- "noQuirksBodyHtml": "<svg><font id=\"foo\"></font></svg>"
- }
- },
- {
- "data": "<svg><font size=4></font></svg>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,18): unexpected-html-element-in-foreign-content",
- "(1,31): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg><font size=\"4\"></font></body></html>",
- "noQuirksBodyHtml": "<svg><font size=\"4\"></font></svg>"
- }
- },
- {
- "data": "<svg><font color=red></font></svg>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,21): unexpected-html-element-in-foreign-content",
- "(1,34): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg><font color=\"red\"></font></body></html>",
- "noQuirksBodyHtml": "<svg><font color=\"red\"></font></svg>"
- }
- },
- {
- "data": "<svg><font font=sans></font></svg>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "font",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "font",
- "value": "sans"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><font font=\"sans\"></font></svg></body></html>",
- "noQuirksBodyHtml": "<svg><font font=\"sans\"></font></svg>"
- }
- }
- ],
- "entities01.dat": [
- {
- "data": "FOO>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO>BAR",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO>BAR</body></html>",
- "noQuirksBodyHtml": "FOO>BAR"
- }
- },
- {
- "data": "FOO>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,6): named-entity-without-semicolon"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO>BAR",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO>BAR</body></html>",
- "noQuirksBodyHtml": "FOO>BAR"
- }
- },
- {
- "data": "FOO> BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,6): named-entity-without-semicolon"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO> BAR",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO> BAR</body></html>",
- "noQuirksBodyHtml": "FOO> BAR"
- }
- },
- {
- "data": "FOO>;;BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO>;;BAR",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO>;;BAR</body></html>",
- "noQuirksBodyHtml": "FOO>;;BAR"
- }
- },
- {
- "data": "I'm ¬it; I tell you",
- "errors": [
- "(1,4): expected-doctype-but-got-chars",
- "(1,9): named-entity-without-semicolon"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "I'm ¬it; I tell you"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>I'm ¬it; I tell you</body></html>",
- "noQuirksBodyHtml": "I'm ¬it; I tell you"
- }
- },
- {
- "data": "I'm ∉ I tell you",
- "errors": [
- "(1,4): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "I'm ∉ I tell you"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>I'm ∉ I tell you</body></html>",
- "noQuirksBodyHtml": "I'm ∉ I tell you"
- }
- },
- {
- "data": "FOO& BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO& BAR",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO& BAR</body></html>",
- "noQuirksBodyHtml": "FOO& BAR"
- }
- },
- {
- "data": "FOO&<BAR>",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,9): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "bar": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO&",
- "escaped": true
- },
- {
- "tag": "bar"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO&<bar></bar></body></html>",
- "noQuirksBodyHtml": "FOO&<bar></bar>"
- }
- },
- {
- "data": "FOO&&&>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO&&&>BAR",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO&&&>BAR</body></html>",
- "noQuirksBodyHtml": "FOO&&&>BAR"
- }
- },
- {
- "data": "FOO)BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO)BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO)BAR</body></html>",
- "noQuirksBodyHtml": "FOO)BAR"
- }
- },
- {
- "data": "FOOABAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOABAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOABAR</body></html>",
- "noQuirksBodyHtml": "FOOABAR"
- }
- },
- {
- "data": "FOOABAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOABAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOABAR</body></html>",
- "noQuirksBodyHtml": "FOOABAR"
- }
- },
- {
- "data": "FOO&#BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,5): expected-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO&#BAR",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO&#BAR</body></html>",
- "noQuirksBodyHtml": "FOO&#BAR"
- }
- },
- {
- "data": "FOO&#ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,5): expected-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO&#ZOO",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO&#ZOO</body></html>",
- "noQuirksBodyHtml": "FOO&#ZOO"
- }
- },
- {
- "data": "FOOºR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,7): expected-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOºR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOºR</body></html>",
- "noQuirksBodyHtml": "FOOºR"
- }
- },
- {
- "data": "FOO&#xZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,6): expected-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO&#xZOO",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO&#xZOO</body></html>",
- "noQuirksBodyHtml": "FOO&#xZOO"
- }
- },
- {
- "data": "FOO&#XZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,6): expected-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO&#XZOO",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO&#XZOO</body></html>",
- "noQuirksBodyHtml": "FOO&#XZOO"
- }
- },
- {
- "data": "FOO)BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,7): numeric-entity-without-semicolon"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO)BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO)BAR</body></html>",
- "noQuirksBodyHtml": "FOO)BAR"
- }
- },
- {
- "data": "FOO䆺R",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,10): numeric-entity-without-semicolon"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO䆺R"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO䆺R</body></html>",
- "noQuirksBodyHtml": "FOO䆺R"
- }
- },
- {
- "data": "FOOAZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,8): numeric-entity-without-semicolon"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOAZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOAZOO</body></html>",
- "noQuirksBodyHtml": "FOOAZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOOxZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOxZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOxZOO</body></html>",
- "noQuirksBodyHtml": "FOOxZOO"
- }
- },
- {
- "data": "FOOyZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOyZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOyZOO</body></html>",
- "noQuirksBodyHtml": "FOOyZOO"
- }
- },
- {
- "data": "FOO€ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO€ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO€ZOO</body></html>",
- "noQuirksBodyHtml": "FOO€ZOO"
- }
- },
- {
- "data": "FOOZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO\81ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO\81ZOO</body></html>",
- "noQuirksBodyHtml": "FOO\81ZOO"
- }
- },
- {
- "data": "FOO‚ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO‚ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO‚ZOO</body></html>",
- "noQuirksBodyHtml": "FOO‚ZOO"
- }
- },
- {
- "data": "FOOƒZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOƒZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOƒZOO</body></html>",
- "noQuirksBodyHtml": "FOOƒZOO"
- }
- },
- {
- "data": "FOO„ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO„ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO„ZOO</body></html>",
- "noQuirksBodyHtml": "FOO„ZOO"
- }
- },
- {
- "data": "FOO…ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO…ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO…ZOO</body></html>",
- "noQuirksBodyHtml": "FOO…ZOO"
- }
- },
- {
- "data": "FOO†ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO†ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO†ZOO</body></html>",
- "noQuirksBodyHtml": "FOO†ZOO"
- }
- },
- {
- "data": "FOO‡ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO‡ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO‡ZOO</body></html>",
- "noQuirksBodyHtml": "FOO‡ZOO"
- }
- },
- {
- "data": "FOOˆZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOˆZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOˆZOO</body></html>",
- "noQuirksBodyHtml": "FOOˆZOO"
- }
- },
- {
- "data": "FOO‰ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO‰ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO‰ZOO</body></html>",
- "noQuirksBodyHtml": "FOO‰ZOO"
- }
- },
- {
- "data": "FOOŠZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOŠZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOŠZOO</body></html>",
- "noQuirksBodyHtml": "FOOŠZOO"
- }
- },
- {
- "data": "FOO‹ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO‹ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO‹ZOO</body></html>",
- "noQuirksBodyHtml": "FOO‹ZOO"
- }
- },
- {
- "data": "FOOŒZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOŒZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOŒZOO</body></html>",
- "noQuirksBodyHtml": "FOOŒZOO"
- }
- },
- {
- "data": "FOOZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO\8dZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO\8dZOO</body></html>",
- "noQuirksBodyHtml": "FOO\8dZOO"
- }
- },
- {
- "data": "FOOŽZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOŽZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOŽZOO</body></html>",
- "noQuirksBodyHtml": "FOOŽZOO"
- }
- },
- {
- "data": "FOOZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO\8fZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO\8fZOO</body></html>",
- "noQuirksBodyHtml": "FOO\8fZOO"
- }
- },
- {
- "data": "FOOZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO\90ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO\90ZOO</body></html>",
- "noQuirksBodyHtml": "FOO\90ZOO"
- }
- },
- {
- "data": "FOO‘ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO‘ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO‘ZOO</body></html>",
- "noQuirksBodyHtml": "FOO‘ZOO"
- }
- },
- {
- "data": "FOO’ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO’ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO’ZOO</body></html>",
- "noQuirksBodyHtml": "FOO’ZOO"
- }
- },
- {
- "data": "FOO“ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO“ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO“ZOO</body></html>",
- "noQuirksBodyHtml": "FOO“ZOO"
- }
- },
- {
- "data": "FOO”ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO”ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO”ZOO</body></html>",
- "noQuirksBodyHtml": "FOO”ZOO"
- }
- },
- {
- "data": "FOO•ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO•ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO•ZOO</body></html>",
- "noQuirksBodyHtml": "FOO•ZOO"
- }
- },
- {
- "data": "FOO–ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO–ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO–ZOO</body></html>",
- "noQuirksBodyHtml": "FOO–ZOO"
- }
- },
- {
- "data": "FOO—ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO—ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO—ZOO</body></html>",
- "noQuirksBodyHtml": "FOO—ZOO"
- }
- },
- {
- "data": "FOO˜ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO˜ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO˜ZOO</body></html>",
- "noQuirksBodyHtml": "FOO˜ZOO"
- }
- },
- {
- "data": "FOO™ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO™ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO™ZOO</body></html>",
- "noQuirksBodyHtml": "FOO™ZOO"
- }
- },
- {
- "data": "FOOšZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOšZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOšZOO</body></html>",
- "noQuirksBodyHtml": "FOOšZOO"
- }
- },
- {
- "data": "FOO›ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO›ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO›ZOO</body></html>",
- "noQuirksBodyHtml": "FOO›ZOO"
- }
- },
- {
- "data": "FOOœZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOœZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOœZOO</body></html>",
- "noQuirksBodyHtml": "FOOœZOO"
- }
- },
- {
- "data": "FOOZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO\9dZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO\9dZOO</body></html>",
- "noQuirksBodyHtml": "FOO\9dZOO"
- }
- },
- {
- "data": "FOOžZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOžZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOžZOO</body></html>",
- "noQuirksBodyHtml": "FOOžZOO"
- }
- },
- {
- "data": "FOOŸZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOŸZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOŸZOO</body></html>",
- "noQuirksBodyHtml": "FOOŸZOO"
- }
- },
- {
- "data": "FOO ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO ZOO",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO ZOO</body></html>",
- "noQuirksBodyHtml": "FOO ZOO"
- }
- },
- {
- "data": "FOO퟿ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOZOO</body></html>",
- "noQuirksBodyHtml": "FOOZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOOZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOZOO</body></html>",
- "noQuirksBodyHtml": "FOOZOO"
- }
- },
- {
- "data": "FOOZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,13): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOZOO</body></html>",
- "noQuirksBodyHtml": "FOOZOO"
- }
- },
- {
- "data": "FOO􈟔ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOZOO</body></html>",
- "noQuirksBodyHtml": "FOOZOO"
- }
- },
- {
- "data": "FOOZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,13): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOOZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOOZOO</body></html>",
- "noQuirksBodyHtml": "FOOZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,13): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,13): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOO�",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,13): illegal-codepoint-for-numeric-entity",
- "(1,13): eof-in-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�</body></html>",
- "noQuirksBodyHtml": "FOO�"
- }
- },
- {
- "data": "FOO�",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,13): illegal-codepoint-for-numeric-entity",
- "(1,13): eof-in-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�</body></html>",
- "noQuirksBodyHtml": "FOO�"
- }
- },
- {
- "data": "FOO�",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,13): illegal-codepoint-for-numeric-entity",
- "(1,13): eof-in-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�</body></html>",
- "noQuirksBodyHtml": "FOO�"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,16): numeric-entity-without-semicolon",
- "(1,16): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,15): numeric-entity-without-semicolon",
- "(1,15): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- },
- {
- "data": "FOO�ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,17): numeric-entity-without-semicolon",
- "(1,17): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO�ZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO�ZOO</body></html>",
- "noQuirksBodyHtml": "FOO�ZOO"
- }
- }
- ],
- "entities02.dat": [
- {
- "data": "<div bar=\"ZZ>YY\"></div>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>YY"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ>YY\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ>YY\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ&\"></div>",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ&",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&\"></div>"
- }
- },
- {
- "data": "<div bar='ZZ&'></div>",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ&",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&\"></div>"
- }
- },
- {
- "data": "<div bar=ZZ&></div>",
- "errors": [
- "(1,13): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ&",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ>=YY\"></div>",
- "errors": [
- "(1,15): named-entity-without-semicolon",
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>=YY",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&gt=YY\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&gt=YY\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ>0YY\"></div>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>0YY",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&gt0YY\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&gt0YY\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ>9YY\"></div>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>9YY",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&gt9YY\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&gt9YY\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ>aYY\"></div>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>aYY",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&gtaYY\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&gtaYY\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ>ZYY\"></div>",
- "errors": [
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>ZYY",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&gtZYY\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&gtZYY\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ> YY\"></div>",
- "errors": [
- "(1,15): named-entity-without-semicolon",
- "(1,20): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ> YY"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ> YY\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ> YY\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ>\"></div>",
- "errors": [
- "(1,15): named-entity-without-semicolon",
- "(1,17): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
- }
- },
- {
- "data": "<div bar='ZZ>'></div>",
- "errors": [
- "(1,15): named-entity-without-semicolon",
- "(1,17): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
- }
- },
- {
- "data": "<div bar=ZZ>></div>",
- "errors": [
- "(1,14): named-entity-without-semicolon",
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ>"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ£_id=23\"></div>",
- "errors": [
- "(1,18): named-entity-without-semicolon",
- "(1,26): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ£_id=23"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ£_id=23\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ£_id=23\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ&prod_id=23\"></div>",
- "errors": [
- "(1,25): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ&prod_id=23",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&prod_id=23\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&prod_id=23\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ£_id=23\"></div>",
- "errors": [
- "(1,27): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ£_id=23"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ£_id=23\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ£_id=23\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ∏_id=23\"></div>",
- "errors": [
- "(1,26): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ∏_id=23"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ∏_id=23\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ∏_id=23\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ£=23\"></div>",
- "errors": [
- "(1,18): named-entity-without-semicolon",
- "(1,23): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ£=23",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&pound=23\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&pound=23\"></div>"
- }
- },
- {
- "data": "<div bar=\"ZZ&prod=23\"></div>",
- "errors": [
- "(1,22): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "bar",
- "value": "ZZ&prod=23",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div bar=\"ZZ&prod=23\"></div></body></html>",
- "noQuirksBodyHtml": "<div bar=\"ZZ&prod=23\"></div>"
- }
- },
- {
- "data": "<div>ZZ£_id=23</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,13): named-entity-without-semicolon"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "ZZ£_id=23"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>ZZ£_id=23</div></body></html>",
- "noQuirksBodyHtml": "<div>ZZ£_id=23</div>"
- }
- },
- {
- "data": "<div>ZZ&prod_id=23</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "ZZ&prod_id=23",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>ZZ&prod_id=23</div></body></html>",
- "noQuirksBodyHtml": "<div>ZZ&prod_id=23</div>"
- }
- },
- {
- "data": "<div>ZZ£_id=23</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "ZZ£_id=23"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>ZZ£_id=23</div></body></html>",
- "noQuirksBodyHtml": "<div>ZZ£_id=23</div>"
- }
- },
- {
- "data": "<div>ZZ∏_id=23</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "ZZ∏_id=23"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>ZZ∏_id=23</div></body></html>",
- "noQuirksBodyHtml": "<div>ZZ∏_id=23</div>"
- }
- },
- {
- "data": "<div>ZZ£=23</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,13): named-entity-without-semicolon"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "ZZ£=23"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>ZZ£=23</div></body></html>",
- "noQuirksBodyHtml": "<div>ZZ£=23</div>"
- }
- },
- {
- "data": "<div>ZZ&prod=23</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "ZZ&prod=23",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>ZZ&prod=23</div></body></html>",
- "noQuirksBodyHtml": "<div>ZZ&prod=23</div>"
- }
- },
- {
- "data": "<div>ZZÆ=</div>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "ZZÆ="
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>ZZÆ=</div></body></html>",
- "noQuirksBodyHtml": "<div>ZZÆ=</div>"
- }
- }
- ],
- "foreign-fragment.dat": [
- {
- "data": "<nobr>X",
- "errors": [
- "6: HTML start tag “nobr” in a foreign namespace context.",
- "7: End of file seen and there were open elements.",
- "6: Unclosed element “nobr”."
- ],
- "fragment": {
- "name": "path",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "svg nobr": true
- }
- },
- "tree": [
- {
- "tag": "nobr",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ],
- "html": "<nobr>X</nobr>",
- "noQuirksBodyHtml": "<nobr>X</nobr>"
- }
- },
- {
- "data": "<font color></font>X",
- "errors": [
- "12: HTML start tag “font” in a foreign namespace context."
- ],
- "fragment": {
- "name": "path",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "svg font": true
- }
- },
- "tree": [
- {
- "tag": "font",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "color",
- "value": ""
- }
- ]
- },
- {
- "text": "X"
- }
- ],
- "html": "<font color=\"\"></font>X",
- "noQuirksBodyHtml": "<font color=\"\"></font>X"
- }
- },
- {
- "data": "<font></font>X",
- "errors": [],
- "fragment": {
- "name": "path",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "svg font": true
- }
- },
- "tree": [
- {
- "tag": "font",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "text": "X"
- }
- ],
- "html": "<font></font>X",
- "noQuirksBodyHtml": "<font></font>X"
- }
- },
- {
- "data": "<g></path>X",
- "errors": [
- "10: End tag “path” did not match the name of the current open element (“g”).",
- "11: End of file seen and there were open elements.",
- "3: Unclosed element “g”."
- ],
- "fragment": {
- "name": "path",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "svg g": true
- }
- },
- "tree": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ],
- "html": "<g>X</g>",
- "noQuirksBodyHtml": "<g>X</g>"
- }
- },
- {
- "data": "</path>X",
- "errors": [
- "5: Stray end tag “path”."
- ],
- "fragment": {
- "name": "path",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</foreignObject>X",
- "errors": [
- "5: Stray end tag “foreignobject”."
- ],
- "fragment": {
- "name": "foreignObject",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</desc>X",
- "errors": [
- "5: Stray end tag “desc”."
- ],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</title>X",
- "errors": [
- "5: Stray end tag “title”."
- ],
- "fragment": {
- "name": "title",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</svg>X",
- "errors": [
- "5: Stray end tag “svg”."
- ],
- "fragment": {
- "name": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</mfenced>X",
- "errors": [
- "5: Stray end tag “mfenced”."
- ],
- "fragment": {
- "name": "mfenced",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</malignmark>X",
- "errors": [
- "5: Stray end tag “malignmark”."
- ],
- "fragment": {
- "name": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</math>X",
- "errors": [
- "5: Stray end tag “math”."
- ],
- "fragment": {
- "name": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</annotation-xml>X",
- "errors": [
- "5: Stray end tag “annotation-xml”."
- ],
- "fragment": {
- "name": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</mtext>X",
- "errors": [
- "5: Stray end tag “mtext”."
- ],
- "fragment": {
- "name": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</mi>X",
- "errors": [
- "5: Stray end tag “mi”."
- ],
- "fragment": {
- "name": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</mo>X",
- "errors": [
- "5: Stray end tag “mo”."
- ],
- "fragment": {
- "name": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</mn>X",
- "errors": [
- "5: Stray end tag “mn”."
- ],
- "fragment": {
- "name": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "</ms>X",
- "errors": [
- "5: Stray end tag “ms”."
- ],
- "fragment": {
- "name": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<b></b><mglyph/><i></i><malignmark/><u></u><ms/>X",
- "errors": [
- "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
- "52: End of file seen and there were open elements.",
- "51: Unclosed element “ms”."
- ],
- "fragment": {
- "name": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "b": true,
- "math mglyph": true,
- "i": true,
- "math malignmark": true,
- "u": true,
- "ms": true
- }
- },
- "tree": [
- {
- "tag": "b"
- },
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "i"
- },
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "u"
- },
- {
- "tag": "ms",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ],
- "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><ms>X</ms>",
- "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><ms>X</ms></malignmark></mglyph>"
- }
- },
- {
- "data": "<malignmark></malignmark>",
- "errors": [],
- "fragment": {
- "name": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<malignmark></malignmark>",
- "noQuirksBodyHtml": "<malignmark></malignmark>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [],
- "fragment": {
- "name": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mn/>X",
- "errors": [
- "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
- "52: End of file seen and there were open elements.",
- "51: Unclosed element “mn”."
- ],
- "fragment": {
- "name": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "b": true,
- "math mglyph": true,
- "i": true,
- "math malignmark": true,
- "u": true,
- "mn": true
- }
- },
- "tree": [
- {
- "tag": "b"
- },
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "i"
- },
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "u"
- },
- {
- "tag": "mn",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ],
- "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mn>X</mn>",
- "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mn>X</mn></malignmark></mglyph>"
- }
- },
- {
- "data": "<malignmark></malignmark>",
- "errors": [],
- "fragment": {
- "name": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<malignmark></malignmark>",
- "noQuirksBodyHtml": "<malignmark></malignmark>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [],
- "fragment": {
- "name": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mo/>X",
- "errors": [
- "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
- "52: End of file seen and there were open elements.",
- "51: Unclosed element “mo”."
- ],
- "fragment": {
- "name": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "b": true,
- "math mglyph": true,
- "i": true,
- "math malignmark": true,
- "u": true,
- "mo": true
- }
- },
- "tree": [
- {
- "tag": "b"
- },
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "i"
- },
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "u"
- },
- {
- "tag": "mo",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ],
- "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mo>X</mo>",
- "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mo>X</mo></malignmark></mglyph>"
- }
- },
- {
- "data": "<malignmark></malignmark>",
- "errors": [],
- "fragment": {
- "name": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<malignmark></malignmark>",
- "noQuirksBodyHtml": "<malignmark></malignmark>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [],
- "fragment": {
- "name": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mi/>X",
- "errors": [
- "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
- "52: End of file seen and there were open elements.",
- "51: Unclosed element “mi”."
- ],
- "fragment": {
- "name": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "b": true,
- "math mglyph": true,
- "i": true,
- "math malignmark": true,
- "u": true,
- "mi": true
- }
- },
- "tree": [
- {
- "tag": "b"
- },
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "i"
- },
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "u"
- },
- {
- "tag": "mi",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ],
- "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mi>X</mi>",
- "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mi>X</mi></malignmark></mglyph>"
- }
- },
- {
- "data": "<malignmark></malignmark>",
- "errors": [],
- "fragment": {
- "name": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<malignmark></malignmark>",
- "noQuirksBodyHtml": "<malignmark></malignmark>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [],
- "fragment": {
- "name": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mtext/>X",
- "errors": [
- "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
- "52: End of file seen and there were open elements.",
- "51: Unclosed element “mtext”."
- ],
- "fragment": {
- "name": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "b": true,
- "math mglyph": true,
- "i": true,
- "math malignmark": true,
- "u": true,
- "mtext": true
- }
- },
- "tree": [
- {
- "tag": "b"
- },
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "i"
- },
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "u"
- },
- {
- "tag": "mtext",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ],
- "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mtext>X</mtext>",
- "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mtext>X</mtext></malignmark></mglyph>"
- }
- },
- {
- "data": "<malignmark></malignmark>",
- "errors": [],
- "fragment": {
- "name": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<malignmark></malignmark>",
- "noQuirksBodyHtml": "<malignmark></malignmark>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [],
- "fragment": {
- "name": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [
- "5: HTML start tag “div” in a foreign namespace context."
- ],
- "fragment": {
- "name": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math div": true
- }
- },
- "tree": [
- {
- "tag": "div",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math figure": true
- }
- },
- "tree": [
- {
- "tag": "figure",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [
- "5: HTML start tag “div” in a foreign namespace context."
- ],
- "fragment": {
- "name": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math div": true
- }
- },
- "tree": [
- {
- "tag": "div",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- "document": {
- "props": {
- "tags": {
- "math figure": true
- }
- },
- "tree": [
- {
- "tag": "figure",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [],
- "fragment": {
- "name": "foreignObject",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "foreignObject",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [],
- "fragment": {
- "name": "title",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "title",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<div><h1>X</h1></div>",
- "errors": [
- "5: HTML start tag “div” in a foreign namespace context.",
- "9: HTML start tag “h1” in a foreign namespace context."
- ],
- "fragment": {
- "name": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "svg div": true,
- "svg h1": true
- }
- },
- "tree": [
- {
- "tag": "div",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "h1",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<div><h1>X</h1></div>",
- "noQuirksBodyHtml": "<div><h1>X</h1></div>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [
- "5: HTML start tag “div” in a foreign namespace context."
- ],
- "fragment": {
- "name": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "svg div": true
- }
- },
- "tree": [
- {
- "tag": "div",
- "ns": "http://www.w3.org/2000/svg"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<figure></figure>",
- "errors": [],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "figure": true
- }
- },
- "tree": [
- {
- "tag": "figure"
- }
- ],
- "html": "<figure></figure>",
- "noQuirksBodyHtml": "<figure></figure>"
- }
- },
- {
- "data": "<plaintext><foo>",
- "errors": [
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {
- "plaintext": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "<foo>",
- "no_escape": true
- }
- ]
- }
- ],
- "html": "<plaintext><foo></plaintext>",
- "noQuirksBodyHtml": "<plaintext><foo></plaintext>"
- }
- },
- {
- "data": "<frameset>X",
- "errors": [
- "6: Stray start tag “frameset”."
- ],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<head>X",
- "errors": [
- "6: Stray start tag “head”."
- ],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<body>X",
- "errors": [
- "6: Stray start tag “body”."
- ],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<html>X",
- "errors": [
- "6: Stray start tag “html”."
- ],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<html class=\"foo\">X",
- "errors": [
- "6: Stray start tag “html”."
- ],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<body class=\"foo\">X",
- "errors": [
- "6: Stray start tag “body”."
- ],
- "fragment": {
- "name": "desc",
- "ns": "http://www.w3.org/2000/svg"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "X"
- }
- ],
- "html": "X",
- "noQuirksBodyHtml": "X"
- }
- }
- ],
- "html5test-com.dat": [
- {
- "data": "<div<div>",
- "errors": [
- "(1,9): expected-doctype-but-got-start-tag",
- "(1,9): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div<div": true
- },
- "tagWithLt": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div<div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div<div></div<div></body></html>",
- "noQuirksBodyHtml": "<div<div></div<div>"
- }
- },
- {
- "data": "<div foo<bar=''>",
- "errors": [
- "(1,9): invalid-character-in-attribute-name",
- "(1,16): expected-doctype-but-got-start-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "attrWithFunnyChar": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "foo<bar",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div foo<bar=\"\"></div></body></html>",
- "noQuirksBodyHtml": "<div foo<bar=\"\"></div>"
- }
- },
- {
- "data": "<div foo=`bar`>",
- "errors": [
- "(1,10): equals-in-unquoted-attribute-value",
- "(1,14): unexpected-character-in-unquoted-attribute-value",
- "(1,15): expected-doctype-but-got-start-tag",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "foo",
- "value": "`bar`"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div foo=\"`bar`\"></div></body></html>",
- "noQuirksBodyHtml": "<div foo=\"`bar`\"></div>"
- }
- },
- {
- "data": "<div \\\"foo=''>",
- "errors": [
- "(1,7): invalid-character-in-attribute-name",
- "(1,14): expected-doctype-but-got-start-tag",
- "(1,14): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "attrWithFunnyChar": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "\\\"foo",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div \\\"foo=\"\"></div></body></html>",
- "noQuirksBodyHtml": "<div \\\"foo=\"\"></div>"
- }
- },
- {
- "data": "<a href='\\nbar'></a>",
- "errors": [
- "(1,16): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "\\nbar"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a href=\"\\nbar\"></a></body></html>",
- "noQuirksBodyHtml": "<a href=\"\\nbar\"></a>"
- }
- },
- {
- "data": "<!DOCTYPE html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "⟨⟩",
- "errors": [
- "(1,6): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "⟨⟩"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>⟨⟩</body></html>",
- "noQuirksBodyHtml": "⟨⟩"
- }
- },
- {
- "data": "'",
- "errors": [
- "(1,6): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "'"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>'</body></html>",
- "noQuirksBodyHtml": "'"
- }
- },
- {
- "data": "ⅈ",
- "errors": [
- "(1,12): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "ⅈ"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>ⅈ</body></html>",
- "noQuirksBodyHtml": "ⅈ"
- }
- },
- {
- "data": "𝕂",
- "errors": [
- "(1,6): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "𝕂"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>𝕂</body></html>",
- "noQuirksBodyHtml": "𝕂"
- }
- },
- {
- "data": "∉",
- "errors": [
- "(1,9): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "∉"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>∉</body></html>",
- "noQuirksBodyHtml": "∉"
- }
- },
- {
- "data": "<?import namespace=\"foo\" implementation=\"#bar\">",
- "errors": [
- "(1,1): expected-tag-name-but-got-question-mark",
- "(1,47): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "?import namespace=\"foo\" implementation=\"#bar\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--?import namespace=\"foo\" implementation=\"#bar\"--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--?import namespace=\"foo\" implementation=\"#bar\"-->"
- }
- },
- {
- "data": "<!--foo--bar-->",
- "errors": [
- "(1,10): unexpected-char-in-comment",
- "(1,15): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "foo--bar"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--foo--bar--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--foo--bar-->"
- }
- },
- {
- "data": "<![CDATA[x]]>",
- "errors": [
- "(1,2): expected-dashes-or-doctype",
- "(1,13): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "[CDATA[x]]"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--[CDATA[x]]--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--[CDATA[x]]-->"
- }
- },
- {
- "data": "<textarea><!--</textarea>--></textarea>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,39): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "<!--",
- "escaped": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><textarea><!--</textarea>--></body></html>",
- "noQuirksBodyHtml": "<textarea><!--</textarea>-->"
- }
- },
- {
- "data": "<textarea><!--</textarea>-->",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "<!--",
- "escaped": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><textarea><!--</textarea>--></body></html>",
- "noQuirksBodyHtml": "<textarea><!--</textarea>-->"
- }
- },
- {
- "data": "<style><!--</style>--></style>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,30): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style><!--</style></head><body>--></body></html>",
- "noQuirksBodyHtml": "<style><!--</style>-->"
- }
- },
- {
- "data": "<style><!--</style>-->",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style><!--</style></head><body>--></body></html>",
- "noQuirksBodyHtml": "<style><!--</style>-->"
- }
- },
- {
- "data": "<ul><li>A </li> <li>B</li></ul>",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ul": true,
- "li": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ul",
- "children": [
- {
- "tag": "li",
- "children": [
- {
- "text": "A "
- }
- ]
- },
- {
- "text": " "
- },
- {
- "tag": "li",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ul><li>A </li> <li>B</li></ul></body></html>",
- "noQuirksBodyHtml": "<ul><li>A </li> <li>B</li></ul>"
- }
- },
- {
- "data": "<table><form><input type=hidden><input></form><div></div></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,13): unexpected-form-in-table",
- "(1,32): unexpected-hidden-input-in-table",
- "(1,39): unexpected-start-tag-implies-table-voodoo",
- "(1,46): unexpected-end-tag-implies-table-voodoo",
- "(1,46): unexpected-end-tag",
- "(1,51): unexpected-start-tag-implies-table-voodoo",
- "(1,57): unexpected-end-tag-implies-table-voodoo"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "input": true,
- "div": true,
- "table": true,
- "form": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "input"
- },
- {
- "tag": "div"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "form"
- },
- {
- "tag": "input",
- "attrs": [
- {
- "name": "type",
- "value": "hidden"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><input><div></div><table><form></form><input type=\"hidden\"></table></body></html>",
- "noQuirksBodyHtml": "<input><div></div><table><form></form><input type=\"hidden\"></table>"
- }
- },
- {
- "data": "<i>A<b>B<p></i>C</b>D",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,15): adoption-agency-1.3",
- "(1,20): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "i": true,
- "b": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "A"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- },
- {
- "tag": "b"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "i"
- },
- {
- "text": "C"
- }
- ]
- },
- {
- "text": "D"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><i>A<b>B</b></i><b></b><p><b><i></i>C</b>D</p></body></html>",
- "noQuirksBodyHtml": "<i>A<b>B</b></i><b></b><p><b><i></i>C</b>D</p>"
- }
- },
- {
- "data": "<div></div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div></div></body></html>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<svg></svg>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<math></math>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math></math></body></html>",
- "noQuirksBodyHtml": "<math></math>"
- }
- }
- ],
- "inbody01.dat": [
- {
- "data": "<button>1</foo>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,15): unexpected-end-tag",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "button": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "text": "1"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><button>1</button></body></html>",
- "noQuirksBodyHtml": "<button>1</button>"
- }
- },
- {
- "data": "<foo>1<p>2</foo>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,16): unexpected-end-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "foo": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "2"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><foo>1<p>2</p></foo></body></html>",
- "noQuirksBodyHtml": "<foo>1<p>2</p></foo>"
- }
- },
- {
- "data": "<dd>1</foo>",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dd": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dd",
- "children": [
- {
- "text": "1"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><dd>1</dd></body></html>",
- "noQuirksBodyHtml": "<dd>1</dd>"
- }
- },
- {
- "data": "<foo>1<dd>2</foo>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,17): unexpected-end-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "foo": true,
- "dd": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "dd",
- "children": [
- {
- "text": "2"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><foo>1<dd>2</dd></foo></body></html>",
- "noQuirksBodyHtml": "<foo>1<dd>2</dd></foo>"
- }
- }
- ],
- "isindex.dat": [
- {
- "data": "<isindex>",
- "errors": [
- "(1,9): expected-doctype-but-got-start-tag",
- "(1,9): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "isindex": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "isindex"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><isindex></isindex></body></html>",
- "noQuirksBodyHtml": "<isindex></isindex>"
- }
- },
- {
- "data": "<isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\">",
- "errors": [
- "(1,48): expected-doctype-but-got-start-tag",
- "(1,48): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "isindex": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "isindex",
- "attrs": [
- {
- "name": "action",
- "value": "B"
- },
- {
- "name": "foo",
- "value": "D"
- },
- {
- "name": "name",
- "value": "A"
- },
- {
- "name": "prompt",
- "value": "C"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\"></isindex></body></html>",
- "noQuirksBodyHtml": "<isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\"></isindex>"
- }
- },
- {
- "data": "<form><isindex>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "form": true,
- "isindex": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "form",
- "children": [
- {
- "tag": "isindex"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><form><isindex></isindex></form></body></html>",
- "noQuirksBodyHtml": "<form><isindex></isindex></form>"
- }
- },
- {
- "data": "<!doctype html><isindex>x</isindex>x",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "isindex": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "isindex",
- "children": [
- {
- "text": "x"
- }
- ]
- },
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><isindex>x</isindex>x</body></html>",
- "noQuirksBodyHtml": "<isindex>x</isindex>x"
- }
- }
- ],
- "main-element.dat": [
- {
- "data": "<!doctype html><p>foo<main>bar<p>baz",
- "errors": [
- "(1,36): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "main": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "main",
- "children": [
- {
- "text": "bar"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p>foo</p><main>bar<p>baz</p></main></body></html>",
- "noQuirksBodyHtml": "<p>foo</p><main>bar<p>baz</p></main>"
- }
- },
- {
- "data": "<!doctype html><main><p>foo</main>bar",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "main": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "main",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- },
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><main><p>foo</p></main>bar</body></html>",
- "noQuirksBodyHtml": "<main><p>foo</p></main>bar"
- }
- },
- {
- "data": "<!DOCTYPE html>xxx<svg><x><g><a><main><b>",
- "errors": [
- " * (1,42) unexpected HTML-like start tag token in foreign content",
- " * (1,42) unexpected end of file"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg x": true,
- "svg g": true,
- "svg a": true,
- "svg main": true,
- "b": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "xxx"
- },
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "x",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "a",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "main",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>xxx<svg><x><g><a><main></main></a></g></x></svg><b></b></body></html>",
- "noQuirksBodyHtml": "xxx<svg><x><g><a><main><b></b></main></a></g></x></svg>"
- }
- }
- ],
- "math.dat": [
- {
- "data": "<math><tr><td><mo><tr>",
- "errors": [],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "math math": true,
- "math tr": true,
- "math td": true,
- "math mo": true
- }
- },
- "tree": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "tr",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "td",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<math><tr><td><mo></mo></td></tr></math>",
- "noQuirksBodyHtml": "<math><tr><td><mo></mo></td></tr></math>"
- }
- },
- {
- "data": "<math><tr><td><mo><tr>",
- "errors": [],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "math math": true,
- "math tr": true,
- "math td": true,
- "math mo": true
- }
- },
- "tree": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "tr",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "td",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<math><tr><td><mo></mo></td></tr></math>",
- "noQuirksBodyHtml": "<math><tr><td><mo></mo></td></tr></math>"
- }
- },
- {
- "data": "<math><thead><mo><tbody>",
- "errors": [],
- "fragment": {
- "name": "thead"
- },
- "document": {
- "props": {
- "tags": {
- "math math": true,
- "math thead": true,
- "math mo": true
- }
- },
- "tree": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "thead",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<math><thead><mo></mo></thead></math>",
- "noQuirksBodyHtml": "<math><thead><mo></mo></thead></math>"
- }
- },
- {
- "data": "<math><tfoot><mo><tbody>",
- "errors": [],
- "fragment": {
- "name": "tfoot"
- },
- "document": {
- "props": {
- "tags": {
- "math math": true,
- "math tfoot": true,
- "math mo": true
- }
- },
- "tree": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "tfoot",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<math><tfoot><mo></mo></tfoot></math>",
- "noQuirksBodyHtml": "<math><tfoot><mo></mo></tfoot></math>"
- }
- },
- {
- "data": "<math><tbody><mo><tfoot>",
- "errors": [],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "math math": true,
- "math tbody": true,
- "math mo": true
- }
- },
- "tree": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "tbody",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<math><tbody><mo></mo></tbody></math>",
- "noQuirksBodyHtml": "<math><tbody><mo></mo></tbody></math>"
- }
- },
- {
- "data": "<math><tbody><mo></table>",
- "errors": [],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "math math": true,
- "math tbody": true,
- "math mo": true
- }
- },
- "tree": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "tbody",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<math><tbody><mo></mo></tbody></math>",
- "noQuirksBodyHtml": "<math><tbody><mo></mo></tbody></math>"
- }
- },
- {
- "data": "<math><thead><mo></table>",
- "errors": [],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "math math": true,
- "math thead": true,
- "math mo": true
- }
- },
- "tree": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "thead",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<math><thead><mo></mo></thead></math>",
- "noQuirksBodyHtml": "<math><thead><mo></mo></thead></math>"
- }
- },
- {
- "data": "<math><tfoot><mo></table>",
- "errors": [],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "math math": true,
- "math tfoot": true,
- "math mo": true
- }
- },
- "tree": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "tfoot",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<math><tfoot><mo></mo></tfoot></math>",
- "noQuirksBodyHtml": "<math><tfoot><mo></mo></tfoot></math>"
- }
- }
- ],
- "menuitem-element.dat": [
- {
- "data": "<menuitem>",
- "errors": [
- "10: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><menuitem></menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem></menuitem>"
- }
- },
- {
- "data": "</menuitem>",
- "errors": [
- "11: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.",
- "11: Stray end tag “menuitem”."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html><body><menuitem>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem>A</menuitem>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><menuitem>A<menuitem>B",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "text": "A"
- }
- ]
- },
- {
- "tag": "menuitem",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><menuitem>B</menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem>A</menuitem><menuitem>B</menuitem>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><menuitem>A<menu>B</menu>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true,
- "menu": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "text": "A"
- }
- ]
- },
- {
- "tag": "menu",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><menu>B</menu></body></html>",
- "noQuirksBodyHtml": "<menuitem>A</menuitem><menu>B</menu>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><menuitem>A<hr>B",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true,
- "hr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "text": "A"
- }
- ]
- },
- {
- "tag": "hr"
- },
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><hr>B</body></html>",
- "noQuirksBodyHtml": "<menuitem>A</menuitem><hr>B"
- }
- },
- {
- "data": "<!DOCTYPE html><li><menuitem><li>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "li": true,
- "menuitem": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "li",
- "children": [
- {
- "tag": "menuitem"
- }
- ]
- },
- {
- "tag": "li"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><li><menuitem></menuitem></li><li></li></body></html>",
- "noQuirksBodyHtml": "<li><menuitem></menuitem></li><li></li>"
- }
- },
- {
- "data": "<!DOCTYPE html><menuitem><p></menuitem>x",
- "errors": [
- "39: Stray end tag “menuitem”."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem><p>x</p></menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem><p>x</p></menuitem>"
- }
- },
- {
- "data": "<!DOCTYPE html><p><b></p><menuitem>",
- "errors": [
- "25: End tag “p” seen, but there were open elements.",
- "21: Unclosed element “b”.",
- "35: End of file seen and there were open elements."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "b": true,
- "menuitem": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "menuitem"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><b></b></p><b><menuitem></menuitem></b></body></html>",
- "noQuirksBodyHtml": "<p><b></b></p><b><menuitem></menuitem></b>"
- }
- },
- {
- "data": "<!DOCTYPE html><menuitem><asdf></menuitem>x",
- "errors": [
- "40: End tag “menuitem” seen, but there were open elements.",
- "31: Unclosed element “asdf”."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true,
- "asdf": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "tag": "asdf"
- }
- ]
- },
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem><asdf></asdf></menuitem>x</body></html>",
- "noQuirksBodyHtml": "<menuitem><asdf></asdf></menuitem>x"
- }
- },
- {
- "data": "<!DOCTYPE html></menuitem>",
- "errors": [
- "26: Stray end tag “menuitem”."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html><html></menuitem>",
- "errors": [
- "26: Stray end tag “menuitem”."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html><head></menuitem>",
- "errors": [
- "26: Stray end tag “menuitem”."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html><select><menuitem></select>",
- "errors": [
- "33: Stray start tag “menuitem”."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!DOCTYPE html><option><menuitem>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "option": true,
- "menuitem": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "tag": "menuitem"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><option><menuitem></menuitem></option></body></html>",
- "noQuirksBodyHtml": "<option><menuitem></menuitem></option>"
- }
- },
- {
- "data": "<!DOCTYPE html><menuitem><option>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem><option></option></menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem><option></option></menuitem>"
- }
- },
- {
- "data": "<!DOCTYPE html><menuitem></body>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem></menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem></menuitem>"
- }
- },
- {
- "data": "<!DOCTYPE html><menuitem></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem></menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem></menuitem>"
- }
- },
- {
- "data": "<!DOCTYPE html><menuitem><p>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem><p></p></menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem><p></p></menuitem>"
- }
- },
- {
- "data": "<!DOCTYPE html><menuitem><li>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "menuitem": true,
- "li": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "menuitem",
- "children": [
- {
- "tag": "li"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><menuitem><li></li></menuitem></body></html>",
- "noQuirksBodyHtml": "<menuitem><li></li></menuitem>"
- }
- }
- ],
- "namespace-sensitivity.dat": [
- {
- "data": "<body><table><tr><td><svg><td><foreignObject><span></td>Foo",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true,
- "svg td": true,
- "svg foreignObject": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Foo"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "td",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>Foo<table><tbody><tr><td><svg><td><foreignObject><span></span></foreignObject></td></svg></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "Foo<table><tbody><tr><td><svg><td><foreignObject><span></span></foreignObject></td></svg></td></tr></tbody></table>"
- }
- }
- ],
- "noscript01.dat": [
- {
- "data": "<head><noscript><!doctype html><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
- "Line: 1 Col: 31 Unexpected DOCTYPE. Ignored."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><html class=\"foo\"><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
- "Line: 1 Col: 34 html needs to be the first start tag."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "attrs": [
- {
- "name": "class",
- "value": "foo"
- }
- ],
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html class=\"foo\"><head><noscript><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript></noscript>",
- "errors": [
- "(1,6): expected-doctype-but-got-tag"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript></noscript>"
- }
- },
- {
- "data": "<head><noscript> </noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": " ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript> </noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript> </noscript>"
- }
- },
- {
- "data": "<head><noscript><!--foo--></noscript>",
- "errors": [
- "(1,6): expected-doctype-but-got-tag"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><basefont><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "basefont": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "tag": "basefont"
- },
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><basefont><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><basefont><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><bgsound><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "bgsound": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "tag": "bgsound"
- },
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><bgsound><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><bgsound><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><link><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "link": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "tag": "link"
- },
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><link><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><link><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><meta><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "meta": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "tag": "meta"
- },
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><meta><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><meta><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><noframes>XXX</noscript></noframes></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "noframes": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "tag": "noframes",
- "children": [
- {
- "text": "XXX</noscript>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><noframes>XXX</noscript></noframes></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><noframes>XXX</noscript></noframes></noscript>"
- }
- },
- {
- "data": "<head><noscript><style>XXX</style></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "style": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "XXX",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><style>XXX</style></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><style>XXX</style></noscript>"
- }
- },
- {
- "data": "<head><noscript></br><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
- "Line: 1 Col: 21 Element br not allowed in a inhead-noscript context",
- "Line: 1 Col: 21 Unexpected end tag (br). Treated as br element.",
- "Line: 1 Col: 42 Unexpected end tag (noscript). Ignored."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true,
- "br": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript"
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "br"
- },
- {
- "comment": "foo"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noscript></noscript></head><body><br><!--foo--></body></html>",
- "noQuirksBodyHtml": "<noscript><br><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><head class=\"foo\"><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
- "Line: 1 Col: 34 Unexpected start tag (head)."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><noscript class=\"foo\"><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
- "Line: 1 Col: 34 Unexpected start tag (noscript)."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><noscript class=\"foo\"><!--foo--></noscript></noscript>"
- }
- },
- {
- "data": "<head><noscript></p><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
- "Line: 1 Col: 20 Unexpected end tag (p). Ignored."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><p></p><!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript><p><!--foo--></noscript>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
- "Line: 1 Col: 19 Element p not allowed in a inhead-noscript context",
- "Line: 1 Col: 40 Unexpected end tag (noscript). Ignored."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true,
- "p": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript"
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noscript></noscript></head><body><p><!--foo--></p></body></html>",
- "noQuirksBodyHtml": "<noscript><p><!--foo--></p></noscript>"
- }
- },
- {
- "data": "<head><noscript>XXX<!--foo--></noscript></head>",
- "errors": [
- "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
- "Line: 1 Col: 19 Unexpected non-space character. Expected inhead-noscript content",
- "Line: 1 Col: 30 Unexpected end tag (noscript). Ignored.",
- "Line: 1 Col: 37 Unexpected end tag (head). Ignored."
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript"
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "XXX"
- },
- {
- "comment": "foo"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noscript></noscript></head><body>XXX<!--foo--></body></html>",
- "noQuirksBodyHtml": "<noscript>XXX<!--foo--></noscript>"
- }
- },
- {
- "data": "<head><noscript>",
- "errors": [
- "(1,6): expected-doctype-but-got-tag",
- "(1,6): eof-in-head-noscript"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript></noscript>"
- }
- }
- ],
- "pending-spec-changes-plain-text-unsafe.dat": [
- {
- "data": "<body><table>\u0000filler\u0000text\u0000",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,14): invalid-codepoint",
- "(1,14): invalid-codepoint-in-table-text",
- "(1,21): invalid-codepoint",
- "(1,21): invalid-codepoint-in-table-text",
- "(1,26): invalid-codepoint",
- "(1,26): invalid-codepoint-in-table-text",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): foster-parenting-character-in-table",
- "(1,26): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "fillertext"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>fillertext<table></table></body></html>",
- "noQuirksBodyHtml": "fillertext<table></table>"
- }
- }
- ],
- "pending-spec-changes.dat": [
- {
- "data": "<input type=\"hidden\"><frameset>",
- "errors": [
- "(1,21): expected-doctype-but-got-start-tag",
- "(1,31): unexpected-start-tag",
- "(1,31): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<input type=\"hidden\">"
- }
- },
- {
- "data": "<!DOCTYPE html><table><caption><svg>foo</table>bar",
- "errors": [
- "(1,47): unexpected-end-tag",
- "(1,47): end-table-tag-in-caption"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg>foo</svg></caption></table>bar</body></html>",
- "noQuirksBodyHtml": "<table><caption><svg>foo</svg></caption></table>bar"
- }
- },
- {
- "data": "<table><tr><td><svg><desc><td></desc><circle>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,30): unexpected-cell-end-tag",
- "(1,37): unexpected-end-tag",
- "(1,45): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true,
- "svg desc": true,
- "circle": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "desc",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- },
- {
- "tag": "td",
- "children": [
- {
- "tag": "circle"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table>"
- }
- }
- ],
- "plain-text-unsafe.dat": [
- {
- "data": "FOO
ZOO",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,11): illegal-codepoint-for-numeric-entity"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO\rZOO"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO\rZOO</body></html>",
- "noQuirksBodyHtml": "FOO\rZOO"
- }
- },
- {
- "data": "<html>\u0000<frameset></frameset>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,7): invalid-codepoint",
- "(1,7): invalid-codepoint-in-body",
- "(1,17): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html> \u0000 <frameset></frameset>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,8): invalid-codepoint",
- "(1,8): invalid-codepoint-in-body",
- "(1,19): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<html>a\u0000a<frameset></frameset>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,8): invalid-codepoint",
- "(1,8): invalid-codepoint-in-body",
- "(1,19): unexpected-start-tag",
- "(1,30): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "aa"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>aa</body></html>",
- "noQuirksBodyHtml": "aa"
- }
- },
- {
- "data": "<html>\u0000\u0000<frameset></frameset>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,7): invalid-codepoint",
- "(1,7): invalid-codepoint-in-body",
- "(1,8): invalid-codepoint",
- "(1,8): invalid-codepoint-in-body",
- "(1,18): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html>\u0000\n <frameset></frameset>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,7): invalid-codepoint",
- "(1,7): invalid-codepoint-in-body",
- "(2,11): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "\n "
- }
- },
- {
- "data": "<html><select>\u0000",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,15): invalid-codepoint",
- "(1,15): invalid-codepoint-in-select",
- "(1,15): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "\u0000",
- "errors": [
- "(1,1): invalid-codepoint",
- "(1,1): expected-doctype-but-got-chars",
- "(1,1): invalid-codepoint-in-body"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<body>\u0000",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,7): invalid-codepoint",
- "(1,7): invalid-codepoint-in-body"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<plaintext>\u0000filler\u0000text\u0000",
- "errors": [
- "(1,11): expected-doctype-but-got-start-tag",
- "(1,12): invalid-codepoint",
- "(1,19): invalid-codepoint",
- "(1,24): invalid-codepoint",
- "(1,24): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "plaintext": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "�filler�text�",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><plaintext>�filler�text�</plaintext></body></html>",
- "noQuirksBodyHtml": "<plaintext>�filler�text�</plaintext>"
- }
- },
- {
- "data": "<svg><![CDATA[\u0000filler\u0000text\u0000]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,30): invalid-codepoint",
- "(1,30): invalid-codepoint",
- "(1,30): invalid-codepoint",
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "�filler�text�"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>�filler�text�</svg></body></html>",
- "noQuirksBodyHtml": "<svg>�filler�text�</svg>"
- }
- },
- {
- "data": "<body><!\u0000>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,8): expected-dashes-or-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "comment": "�"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><!--�--></body></html>",
- "noQuirksBodyHtml": "<!--�-->"
- }
- },
- {
- "data": "<body><!\u0000filler\u0000text>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,8): expected-dashes-or-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "comment": "�filler�text"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><!--�filler�text--></body></html>",
- "noQuirksBodyHtml": "<!--�filler�text-->"
- }
- },
- {
- "data": "<body><svg><foreignObject>\u0000filler\u0000text",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,27): invalid-codepoint",
- "(1,27): invalid-codepoint-in-body",
- "(1,34): invalid-codepoint",
- "(1,34): invalid-codepoint-in-body",
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg foreignObject": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "fillertext"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><foreignObject>fillertext</foreignObject></svg></body></html>",
- "noQuirksBodyHtml": "<svg><foreignObject>fillertext</foreignObject></svg>"
- }
- },
- {
- "data": "<svg>\u0000filler\u0000text",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,6): invalid-codepoint",
- "(1,6): invalid-codepoint-in-foreign-content",
- "(1,13): invalid-codepoint",
- "(1,13): invalid-codepoint-in-foreign-content",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "�filler�text"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>�filler�text</svg></body></html>",
- "noQuirksBodyHtml": "<svg>�filler�text</svg>"
- }
- },
- {
- "data": "<svg>\u0000<frameset>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,6): invalid-codepoint",
- "(1,6): invalid-codepoint-in-foreign-content",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "�"
- },
- {
- "tag": "frameset",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>�<frameset></frameset></svg></body></html>",
- "noQuirksBodyHtml": "<svg>�<frameset></frameset></svg>"
- }
- },
- {
- "data": "<svg>\u0000 <frameset>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,6): invalid-codepoint",
- "(1,6): invalid-codepoint-in-foreign-content",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "� "
- },
- {
- "tag": "frameset",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>� <frameset></frameset></svg></body></html>",
- "noQuirksBodyHtml": "<svg>� <frameset></frameset></svg>"
- }
- },
- {
- "data": "<svg>\u0000a<frameset>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,6): invalid-codepoint",
- "(1,6): invalid-codepoint-in-foreign-content",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "�a"
- },
- {
- "tag": "frameset",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>�a<frameset></frameset></svg></body></html>",
- "noQuirksBodyHtml": "<svg>�a<frameset></frameset></svg>"
- }
- },
- {
- "data": "<svg>\u0000</svg><frameset>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,6): invalid-codepoint",
- "(1,6): invalid-codepoint-in-foreign-content",
- "(1,22): unexpected-start-tag",
- "(1,22): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<svg>�</svg>"
- }
- },
- {
- "data": "<svg>\u0000 </svg><frameset>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,6): invalid-codepoint",
- "(1,6): invalid-codepoint-in-foreign-content",
- "(1,23): unexpected-start-tag",
- "(1,23): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<svg>� </svg>"
- }
- },
- {
- "data": "<svg>\u0000a</svg><frameset>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,6): invalid-codepoint",
- "(1,6): invalid-codepoint-in-foreign-content",
- "(1,23): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "�a"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>�a</svg></body></html>",
- "noQuirksBodyHtml": "<svg>�a</svg>"
- }
- },
- {
- "data": "<svg><path></path></svg><frameset>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,34): unexpected-start-tag",
- "(1,34): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<svg><path></path></svg>"
- }
- },
- {
- "data": "<svg><p><frameset>",
- "errors": [
- "(1, 5) expected-doctype-but-got-start-tag",
- "(1, 8) unexpected-html-element-in-foreign-content",
- "(1, 18) unexpected-start-tag",
- "(1, 18) eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<svg><p><frameset></frameset></p></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><pre>\r\n\r\nA</pre>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "\nA"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
- "noQuirksBodyHtml": "<pre>\nA</pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><pre>\r\rA</pre>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "\nA"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
- "noQuirksBodyHtml": "<pre>\nA</pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><pre>\rA</pre>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>A</pre></body></html>",
- "noQuirksBodyHtml": "<pre>A</pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><table><tr><td><math><mtext>\u0000a",
- "errors": [
- "(1,44): invalid-codepoint",
- "(1,44): invalid-codepoint-in-body",
- "(1,45): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "math math": true,
- "math mtext": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mtext>a</mtext></math></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><math><mtext>a</mtext></math></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><table><tr><td><svg><foreignObject>\u0000a",
- "errors": [
- "(1,51): invalid-codepoint",
- "(1,51): invalid-codepoint-in-body",
- "(1,52): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true,
- "svg foreignObject": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><foreignObject>a</foreignObject></svg></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><svg><foreignObject>a</foreignObject></svg></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><math><mi>a\u0000b",
- "errors": [
- "(1,27): invalid-codepoint",
- "(1,27): invalid-codepoint-in-body",
- "(1,28): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "ab"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi>ab</mi></math></body></html>",
- "noQuirksBodyHtml": "<math><mi>ab</mi></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><math><mo>a\u0000b",
- "errors": [
- "(1,27): invalid-codepoint",
- "(1,27): invalid-codepoint-in-body",
- "(1,28): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mo": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "ab"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mo>ab</mo></math></body></html>",
- "noQuirksBodyHtml": "<math><mo>ab</mo></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><math><mn>a\u0000b",
- "errors": [
- "(1,27): invalid-codepoint",
- "(1,27): invalid-codepoint-in-body",
- "(1,28): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mn": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "ab"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mn>ab</mn></math></body></html>",
- "noQuirksBodyHtml": "<math><mn>ab</mn></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><math><ms>a\u0000b",
- "errors": [
- "(1,27): invalid-codepoint",
- "(1,27): invalid-codepoint-in-body",
- "(1,28): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math ms": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "ab"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><ms>ab</ms></math></body></html>",
- "noQuirksBodyHtml": "<math><ms>ab</ms></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><math><mtext>a\u0000b",
- "errors": [
- "(1,30): invalid-codepoint",
- "(1,30): invalid-codepoint-in-body",
- "(1,31): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mtext": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "ab"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mtext>ab</mtext></math></body></html>",
- "noQuirksBodyHtml": "<math><mtext>ab</mtext></math>"
- }
- }
- ],
- "ruby.dat": [
- {
- "data": "<html><ruby>a<rb>b<rb></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rb": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rb",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rb"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rb>b</rb><rb></rb></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rb></rb></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rb>b<rt></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rb": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rb",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rb>b</rb><rt></rt></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rt></rt></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rb>b<rtc></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rb": true,
- "rtc": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rb",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rtc"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rb>b</rb><rtc></rtc></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rtc></rtc></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rb>b<rp></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rb": true,
- "rp": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rb",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rp"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rb>b</rb><rp></rp></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rp></rp></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rb>b<span></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,31): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rb": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rb",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rb>b<span></span></rb></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rb>b<span></span></rb></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rt>b<rb></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rt": true,
- "rb": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rb"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rt>b</rt><rb></rb></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rb></rb></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rt>b<rt></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rt>b</rt><rt></rt></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rt></rt></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rt>b<rtc></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rt": true,
- "rtc": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rtc"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rt>b</rt><rtc></rtc></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rtc></rtc></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rt>b<rp></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rt": true,
- "rp": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rp"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rt>b</rt><rp></rp></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rp></rp></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rt>b<span></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,31): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rt": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rt>b<span></span></rt></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rt>b<span></span></rt></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rtc>b<rb></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rtc": true,
- "rb": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rtc",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rb"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rtc>b</rtc><rb></rb></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rtc>b</rtc><rb></rb></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rtc>b<rt>c<rt>d</ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rtc": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rtc",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "c"
- }
- ]
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "d"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rtc>b<rt>c</rt><rt>d</rt></rtc></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rtc>b<rt>c</rt><rt>d</rt></rtc></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rtc>b<rtc></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rtc": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rtc",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rtc"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rtc>b</rtc><rtc></rtc></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rtc>b</rtc><rtc></rtc></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rtc>b<rp></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rtc": true,
- "rp": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rtc",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "rp"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rtc>b<rp></rp></rtc></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rtc>b<rp></rp></rtc></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rtc>b<span></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rtc": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rtc",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rtc>b<span></span></rtc></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rtc>b<span></span></rtc></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rp>b<rb></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rp": true,
- "rb": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rp",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rb"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rp>b</rp><rb></rb></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rb></rb></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rp>b<rt></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rp": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rp",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rp>b</rp><rt></rt></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rt></rt></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rp>b<rtc></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rp": true,
- "rtc": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rp",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rtc"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rp>b</rp><rtc></rtc></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rtc></rtc></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rp>b<rp></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rp": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rp",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rp"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rp>b</rp><rp></rp></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rp></rp></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rp>b<span></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,31): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rp": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rp",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rp>b<span></span></rp></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rp>b<span></span></rp></ruby>"
- }
- },
- {
- "data": "<html><ruby><rtc><ruby>a<rb>b<rt></ruby></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rtc": true,
- "rb": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "rtc",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rb",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby><rtc><ruby>a<rb>b</rb><rt></rt></ruby></rtc></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><rtc><ruby>a<rb>b</rb><rt></rt></ruby></rtc></ruby>"
- }
- }
- ],
- "scriptdata01.dat": [
- {
- "data": "FOO<script>'Hello'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'Hello'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'Hello'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'Hello'</script>BAR"
- }
- },
- {
- "data": "FOO<script></script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script"
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script></script>BAR"
- }
- },
- {
- "data": "FOO<script></script >BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script"
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script></script>BAR"
- }
- },
- {
- "data": "FOO<script></script/>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,21): self-closing-flag-on-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script"
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script></script>BAR"
- }
- },
- {
- "data": "FOO<script></script/ >BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,20): unexpected-character-after-solidus-in-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script"
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script></script>BAR"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\"></scriptx>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,42): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "</scriptx>BAR",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\"></scriptx>BAR</script></body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\"></scriptx>BAR</script>"
- }
- },
- {
- "data": "FOO<script></script foo=\">\" dd>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,31): attributes-in-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script"
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script></script>BAR"
- }
- },
- {
- "data": "FOO<script>'<'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<'</script>BAR"
- }
- },
- {
- "data": "FOO<script>'<!'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!'</script>BAR"
- }
- },
- {
- "data": "FOO<script>'<!-'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!-'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!-'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!-'</script>BAR"
- }
- },
- {
- "data": "FOO<script>'<!--'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!--'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!--'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!--'</script>BAR"
- }
- },
- {
- "data": "FOO<script>'<!---'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!---'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!---'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!---'</script>BAR"
- }
- },
- {
- "data": "FOO<script>'<!-->'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!-->'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!-->'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!-->'</script>BAR"
- }
- },
- {
- "data": "FOO<script>'<!-->'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!-->'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!-->'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!-->'</script>BAR"
- }
- },
- {
- "data": "FOO<script>'<!-- potato'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!-- potato'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!-- potato'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!-- potato'</script>BAR"
- }
- },
- {
- "data": "FOO<script>'<!-- <sCrIpt'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!-- <sCrIpt'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!-- <sCrIpt'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!-- <sCrIpt'</script>BAR"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,56): expected-script-data-but-got-eof",
- "(1,56): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt>'</script>BAR",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR</script></body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR</script>"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,58): expected-script-data-but-got-eof",
- "(1,58): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt> -'</script>BAR",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR</script></body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR</script>"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,59): expected-script-data-but-got-eof",
- "(1,59): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt> --'</script>BAR",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR</script></body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR</script>"
- }
- },
- {
- "data": "FOO<script>'<!-- <sCrIpt> -->'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "'<!-- <sCrIpt> -->'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script>'<!-- <sCrIpt> -->'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script>'<!-- <sCrIpt> -->'</script>BAR"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,61): expected-script-data-but-got-eof",
- "(1,61): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt> --!>'</script>BAR",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR</script></body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR</script>"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,61): expected-script-data-but-got-eof",
- "(1,61): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt> -- >'</script>BAR",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR</script></body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR</script>"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,56): expected-script-data-but-got-eof",
- "(1,56): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt '</script>BAR",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR</script></body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR</script>"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars",
- "(1,56): expected-script-data-but-got-eof",
- "(1,56): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt/'</script>BAR",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script></body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt\\'",
- "no_escape": true
- }
- ]
- },
- {
- "text": "BAR"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR</body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR"
- }
- },
- {
- "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/plain"
- }
- ],
- "children": [
- {
- "text": "'<!-- <sCrIpt/'</script>BAR",
- "no_escape": true
- }
- ]
- },
- {
- "text": "QUX"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX</body></html>",
- "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX"
- }
- },
- {
- "data": "FOO<script><!--<script>-></script>--></script>QUX",
- "errors": [
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "FOO"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script>-></script>-->",
- "no_escape": true
- }
- ]
- },
- {
- "text": "QUX"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>FOO<script><!--<script>-></script>--></script>QUX</body></html>",
- "noQuirksBodyHtml": "FOO<script><!--<script>-></script>--></script>QUX"
- }
- }
- ],
- "tables01.dat": [
- {
- "data": "<table><th>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,11): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "th": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "th"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><th></th></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><th></th></tr></tbody></table>"
- }
- },
- {
- "data": "<table><td>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,11): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><col foo='bar'>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,22): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true,
- "col": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col",
- "attrs": [
- {
- "name": "foo",
- "value": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup><col foo=\"bar\"></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup><col foo=\"bar\"></colgroup></table>"
- }
- },
- {
- "data": "<table><colgroup></html>foo",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,24): unexpected-end-tag",
- "(1,27): foster-parenting-character-in-table",
- "(1,27): foster-parenting-character-in-table",
- "(1,27): foster-parenting-character-in-table",
- "(1,27): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "foo"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>foo<table><colgroup></colgroup></table></body></html>",
- "noQuirksBodyHtml": "foo<table><colgroup></colgroup></table>"
- }
- },
- {
- "data": "<table></table><p>foo",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table></table><p>foo</p></body></html>",
- "noQuirksBodyHtml": "<table></table><p>foo</p>"
- }
- },
- {
- "data": "<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-end-tag",
- "(1,24): unexpected-end-tag",
- "(1,30): unexpected-end-tag",
- "(1,41): unexpected-end-tag",
- "(1,48): unexpected-end-tag",
- "(1,56): unexpected-end-tag",
- "(1,61): unexpected-end-tag",
- "(1,69): unexpected-end-tag",
- "(1,74): unexpected-end-tag",
- "(1,82): unexpected-end-tag",
- "(1,87): unexpected-end-tag",
- "(1,91): unexpected-cell-in-table-body",
- "(1,91): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><select><option>3</select></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,15): unexpected-start-tag-implies-table-voodoo"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "text": "3"
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><option>3</option></select><table></table></body></html>",
- "noQuirksBodyHtml": "<select><option>3</option></select><table></table>"
- }
- },
- {
- "data": "<table><select><table></table></select></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,15): unexpected-start-tag-implies-table-voodoo",
- "(1,22): unexpected-table-element-start-tag-in-select-in-table",
- "(1,22): unexpected-start-tag-implies-end-tag",
- "(1,39): unexpected-end-tag",
- "(1,47): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- },
- {
- "tag": "table"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select></select><table></table><table></table></body></html>",
- "noQuirksBodyHtml": "<select></select><table></table><table></table>"
- }
- },
- {
- "data": "<table><select></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,15): unexpected-start-tag-implies-table-voodoo",
- "(1,23): unexpected-table-element-end-tag-in-select-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select></select><table></table></body></html>",
- "noQuirksBodyHtml": "<select></select><table></table>"
- }
- },
- {
- "data": "<table><select><option>A<tr><td>B</td></tr></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,15): unexpected-start-tag-implies-table-voodoo",
- "(1,28): unexpected-table-element-start-tag-in-select-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><option>A</option></select><table><tbody><tr><td>B</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<select><option>A</option></select><table><tbody><tr><td>B</td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><td></body></caption></col></colgroup></html>foo",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,18): unexpected-end-tag",
- "(1,28): unexpected-end-tag",
- "(1,34): unexpected-end-tag",
- "(1,45): unexpected-end-tag",
- "(1,52): unexpected-end-tag",
- "(1,55): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td>foo</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td>foo</td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><td>A</table>B",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table>B</body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>B"
- }
- },
- {
- "data": "<table><tr><caption>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "caption": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- },
- {
- "tag": "caption"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr></tr></tbody><caption></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody><caption></caption></table>"
- }
- },
- {
- "data": "<table><tr></body></caption></col></colgroup></html></td></th><td>foo",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,18): unexpected-end-tag-in-table-row",
- "(1,28): unexpected-end-tag-in-table-row",
- "(1,34): unexpected-end-tag-in-table-row",
- "(1,45): unexpected-end-tag-in-table-row",
- "(1,52): unexpected-end-tag-in-table-row",
- "(1,57): unexpected-end-tag-in-table-row",
- "(1,62): unexpected-end-tag-in-table-row",
- "(1,69): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td>foo</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td>foo</td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><td><tr>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,15): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- },
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td></td></tr><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<table><td><button><td>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,23): unexpected-cell-end-tag",
- "(1,23): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "button": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "button"
- }
- ]
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td><button></button></td><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><button></button></td><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><tr><td><svg><desc><td>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,30): unexpected-cell-end-tag",
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true,
- "svg desc": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "desc",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td></td></tr></tbody></table>"
- }
- }
- ],
- "template.dat": [
- {
- "data": "<body><template>Hello</template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template>Hello</template></body></html>",
- "noQuirksBodyHtml": "<template>Hello</template>"
- }
- },
- {
- "data": "<template>Hello</template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template>Hello</template></head><body></body></html>",
- "noQuirksBodyHtml": "<template>Hello</template>"
- }
- },
- {
- "data": "<template></template><div></div>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true,
- "div": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><template></template></head><body><div></div></body></html>",
- "noQuirksBodyHtml": "<template></template><div></div>"
- }
- },
- {
- "data": "<html><template>Hello</template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template>Hello</template></head><body></body></html>",
- "noQuirksBodyHtml": "<template>Hello</template>"
- }
- },
- {
- "data": "<head><template><div></div></template></head>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "div": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><div></div></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><div></div></template>"
- }
- },
- {
- "data": "<div><template><div><span></template><b>",
- "errors": [
- " * (1,6) missing DOCTYPE",
- " * (1,38) mismatched template end tag",
- " * (1,41) unexpected end of file"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "template": true,
- "span": true,
- "b": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><template><div><span></span></div></template><b></b></div></body></html>",
- "noQuirksBodyHtml": "<div><template><div><span></span></div></template><b></b></div>"
- }
- },
- {
- "data": "<div><template></div>Hello",
- "errors": [
- " * (1,6) missing DOCTYPE",
- " * (1,22) unexpected token in template",
- " * (1,27) unexpected end of file in template",
- " * (1,27) unexpected end of file"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><template>Hello</template></div></body></html>",
- "noQuirksBodyHtml": "<div><template>Hello</template></div>"
- }
- },
- {
- "data": "<div></template></div>",
- "errors": [
- " * (1,6) missing DOCTYPE",
- " * (1,17) unexpected template end tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div></div></body></html>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<table><template></template></table>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template></template></table>"
- }
- },
- {
- "data": "<table><template></template></div>",
- "errors": [
- " * (1,8) missing DOCTYPE",
- " * (1,35) unexpected token in table - foster parenting",
- " * (1,35) unexpected end tag",
- " * (1,35) unexpected end of file"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template></template></table>"
- }
- },
- {
- "data": "<table><div><template></template></div>",
- "errors": [
- " * (1,8) missing DOCTYPE",
- " * (1,13) unexpected token in table - foster parenting",
- " * (1,40) unexpected token in table - foster parenting",
- " * (1,40) unexpected end of file"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "template": true,
- "table": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><template></template></div><table></table></body></html>",
- "noQuirksBodyHtml": "<div><template></template></div><table></table>"
- }
- },
- {
- "data": "<table><template></template><div></div>",
- "errors": [
- "no doctype",
- "bad div in table",
- "bad /div in table",
- "eof in table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "table": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div></div><table><template></template></table></body></html>",
- "noQuirksBodyHtml": "<div></div><table><template></template></table>"
- }
- },
- {
- "data": "<table> <template></template></table>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "text": " "
- },
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table> <template></template></table></body></html>",
- "noQuirksBodyHtml": "<table> <template></template></table>"
- }
- },
- {
- "data": "<table><tbody><template></template></tbody>",
- "errors": [
- "no doctype",
- "eof in table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
- }
- },
- {
- "data": "<table><tbody><template></tbody></template>",
- "errors": [
- "no doctype",
- "bad /tbody",
- "eof in table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
- }
- },
- {
- "data": "<table><tbody><template></template></tbody></table>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
- }
- },
- {
- "data": "<table><thead><template></template></thead>",
- "errors": [
- "no doctype",
- "eof in table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "thead": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "thead",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><thead><template></template></thead></table></body></html>",
- "noQuirksBodyHtml": "<table><thead><template></template></thead></table>"
- }
- },
- {
- "data": "<table><tfoot><template></template></tfoot>",
- "errors": [
- "no doctype",
- "eof in table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tfoot": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tfoot",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tfoot><template></template></tfoot></table></body></html>",
- "noQuirksBodyHtml": "<table><tfoot><template></template></tfoot></table>"
- }
- },
- {
- "data": "<select><template></template></select>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><template></template></select></body></html>",
- "noQuirksBodyHtml": "<select><template></template></select>"
- }
- },
- {
- "data": "<select><template><option></option></template></select>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "template": true,
- "option": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><template><option></option></template></select></body></html>",
- "noQuirksBodyHtml": "<select><template><option></option></template></select>"
- }
- },
- {
- "data": "<template><option></option></select><option></option></template>",
- "errors": [
- "no doctype",
- "bad /select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "option": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "option"
- },
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><option></option><option></option></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><option></option><option></option></template>"
- }
- },
- {
- "data": "<select><template></template><option></select>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "template": true,
- "option": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- },
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><template></template><option></option></select></body></html>",
- "noQuirksBodyHtml": "<select><template></template><option></option></select>"
- }
- },
- {
- "data": "<select><option><template></template></select>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><option><template></template></option></select></body></html>",
- "noQuirksBodyHtml": "<select><option><template></template></option></select>"
- }
- },
- {
- "data": "<select><template>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><template></template></select></body></html>",
- "noQuirksBodyHtml": "<select><template></template></select>"
- }
- },
- {
- "data": "<select><option></option><template>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- },
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><option></option><template></template></select></body></html>",
- "noQuirksBodyHtml": "<select><option></option><template></template></select>"
- }
- },
- {
- "data": "<select><option></option><template><option>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- },
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><option></option><template><option></option></template></select></body></html>",
- "noQuirksBodyHtml": "<select><option></option><template><option></option></template></select>"
- }
- },
- {
- "data": "<table><thead><template><td></template></table>",
- "errors": [
- " * (1,8) missing DOCTYPE"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "thead": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "thead",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><thead><template><td></td></template></thead></table></body></html>",
- "noQuirksBodyHtml": "<table><thead><template><td></td></template></thead></table>"
- }
- },
- {
- "data": "<table><template><thead></template></table>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true,
- "thead": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "thead"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template><thead></thead></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template><thead></thead></template></table>"
- }
- },
- {
- "data": "<body><table><template><td></tr><div></template></table>",
- "errors": [
- "no doctype",
- "bad </tr>",
- "missing </div>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true,
- "td": true,
- "div": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template><td><div></div></td></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template><td><div></div></td></template></table>"
- }
- },
- {
- "data": "<table><template><thead></template></thead></table>",
- "errors": [
- "no doctype",
- "bad /thead after /template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true,
- "thead": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "thead"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template><thead></thead></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template><thead></thead></template></table>"
- }
- },
- {
- "data": "<table><thead><template><tr></template></table>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "thead": true,
- "template": true,
- "tr": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "thead",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><thead><template><tr></tr></template></thead></table></body></html>",
- "noQuirksBodyHtml": "<table><thead><template><tr></tr></template></thead></table>"
- }
- },
- {
- "data": "<table><template><tr></template></table>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true,
- "tr": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template><tr></tr></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template><tr></tr></template></table>"
- }
- },
- {
- "data": "<table><tr><template><td>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><template><td></td></template></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><template><td></td></template></tr></tbody></table>"
- }
- },
- {
- "data": "<table><template><tr><template><td></template></tr></template></table>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true,
- "tr": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template><tr><template><td></td></template></tr></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template><tr><template><td></td></template></tr></template></table>"
- }
- },
- {
- "data": "<table><template><tr><template><td></td></template></tr></template></table>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true,
- "tr": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template><tr><template><td></td></template></tr></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template><tr><template><td></td></template></tr></template></table>"
- }
- },
- {
- "data": "<table><template><td></template>",
- "errors": [
- "no doctype",
- "eof in table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><template><td></td></template></table></body></html>",
- "noQuirksBodyHtml": "<table><template><td></td></template></table>"
- }
- },
- {
- "data": "<body><template><td></td></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><td></td></template>"
- }
- },
- {
- "data": "<body><template><template><tr></tr></template><td></td></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "tr": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><template><tr></tr></template><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><template><tr></tr></template><td></td></template>"
- }
- },
- {
- "data": "<table><colgroup><template><col>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true,
- "template": true,
- "col": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup><template><col></template></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup><template><col></template></colgroup></table>"
- }
- },
- {
- "data": "<frameset><template><frame></frame></template></frameset>",
- "errors": [
- " * (1,11) missing DOCTYPE",
- " * (1,21) unexpected start tag token",
- " * (1,36) unexpected end tag token",
- " * (1,47) unexpected end tag token"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset><frame></frameset></html>",
- "noQuirksBodyHtml": "<template></template>"
- }
- },
- {
- "data": "<template><frame></frame></frameset><frame></frame></template>",
- "errors": [
- " * (1,11) missing DOCTYPE",
- " * (1,18) unexpected start tag",
- " * (1,26) unexpected end tag",
- " * (1,37) unexpected end tag",
- " * (1,44) unexpected start tag",
- " * (1,52) unexpected end tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template></template>"
- }
- },
- {
- "data": "<template><div><frameset><span></span></div><span></span></template>",
- "errors": [
- "no doctype",
- "bad frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "div": true,
- "span": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "span"
- }
- ]
- },
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><div><span></span></div><span></span></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><div><span></span></div><span></span></template>"
- }
- },
- {
- "data": "<body><template><div><frameset><span></span></div><span></span></template></body>",
- "errors": [
- "no doctype",
- "bad frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "div": true,
- "span": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "span"
- }
- ]
- },
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><div><span></span></div><span></span></template></body></html>",
- "noQuirksBodyHtml": "<template><div><span></span></div><span></span></template>"
- }
- },
- {
- "data": "<body><template><script>var i = 1;</script><td></td></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "script": true,
- "td": true
- },
- "template": true,
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "var i = 1;",
- "no_escape": true
- }
- ]
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><script>var i = 1;</script><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><script>var i = 1;</script><td></td></template>"
- }
- },
- {
- "data": "<body><template><tr><div></div></tr></template>",
- "errors": [
- "no doctype",
- "foster-parented div",
- "foster-parented /div"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "tr": true,
- "div": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- },
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><tr></tr><div></div></template></body></html>",
- "noQuirksBodyHtml": "<template><tr></tr><div></div></template>"
- }
- },
- {
- "data": "<body><template><tr></tr><td></td></template>",
- "errors": [
- "no doctype",
- "unexpected <td>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "tr": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- },
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><tr></tr><tr><td></td></tr></template></body></html>",
- "noQuirksBodyHtml": "<template><tr></tr><tr><td></td></tr></template>"
- }
- },
- {
- "data": "<body><template><td></td></tr><td></td></template>",
- "errors": [
- "no doctype",
- "bad </tr>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><td></td><td></td></template>"
- }
- },
- {
- "data": "<body><template><td></td><tbody><td></td></template>",
- "errors": [
- "no doctype",
- "bad <tbody>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><td></td><td></td></template>"
- }
- },
- {
- "data": "<body><template><td></td><caption></caption><td></td></template>",
- "errors": [
- " * (1,7) missing DOCTYPE",
- " * (1,35) unexpected start tag in table row",
- " * (1,45) unexpected end tag in table row"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><td></td><td></td></template>"
- }
- },
- {
- "data": "<body><template><td></td><colgroup></caption><td></td></template>",
- "errors": [
- " * (1,7) missing DOCTYPE",
- " * (1,36) unexpected start tag in table row",
- " * (1,46) unexpected end tag in table row"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><td></td><td></td></template>"
- }
- },
- {
- "data": "<body><template><td></td></table><td></td></template>",
- "errors": [
- "no doctype",
- "bad </table>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><td></td><td></td></template>"
- }
- },
- {
- "data": "<body><template><tr></tr><tbody><tr></tr></template>",
- "errors": [
- "no doctype",
- "bad <tbody>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "tr": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- },
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
- "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
- }
- },
- {
- "data": "<body><template><tr></tr><caption><tr></tr></template>",
- "errors": [
- "no doctype",
- "bad <caption>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "tr": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- },
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
- "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
- }
- },
- {
- "data": "<body><template><tr></tr></table><tr></tr></template>",
- "errors": [
- "no doctype",
- "bad </table>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "tr": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- },
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
- "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
- }
- },
- {
- "data": "<body><template><thead></thead><caption></caption><tbody></tbody></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "thead": true,
- "caption": true,
- "tbody": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "thead"
- },
- {
- "tag": "caption"
- },
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><thead></thead><caption></caption><tbody></tbody></template></body></html>",
- "noQuirksBodyHtml": "<template><thead></thead><caption></caption><tbody></tbody></template>"
- }
- },
- {
- "data": "<body><template><thead></thead></table><tbody></tbody></template></body>",
- "errors": [
- "no doctype",
- "bad </table>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "thead": true,
- "tbody": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "thead"
- },
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><thead></thead><tbody></tbody></template></body></html>",
- "noQuirksBodyHtml": "<template><thead></thead><tbody></tbody></template>"
- }
- },
- {
- "data": "<body><template><div><tr></tr></div></template>",
- "errors": [
- "no doctype",
- "bad tr",
- "bad /tr"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "div": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><div></div></template></body></html>",
- "noQuirksBodyHtml": "<template><div></div></template>"
- }
- },
- {
- "data": "<body><template><em>Hello</em></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "em": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><em>Hello</em></template></body></html>",
- "noQuirksBodyHtml": "<template><em>Hello</em></template>"
- }
- },
- {
- "data": "<body><template><!--comment--></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true
- },
- "template": true,
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "comment": "comment"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><!--comment--></template></body></html>",
- "noQuirksBodyHtml": "<template><!--comment--></template>"
- }
- },
- {
- "data": "<body><template><style></style><td></td></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "style": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "style"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><style></style><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><style></style><td></td></template>"
- }
- },
- {
- "data": "<body><template><meta><td></td></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "meta": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "meta"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><meta><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><meta><td></td></template>"
- }
- },
- {
- "data": "<body><template><link><td></td></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "link": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "link"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><link><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><link><td></td></template>"
- }
- },
- {
- "data": "<body><template><template><tr></tr></template><td></td></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "tr": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><template><tr></tr></template><td></td></template></body></html>",
- "noQuirksBodyHtml": "<template><template><tr></tr></template><td></td></template>"
- }
- },
- {
- "data": "<body><table><colgroup><template><col></col></template></colgroup></table></body>",
- "errors": [
- "no doctype",
- "bad /col"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true,
- "template": true,
- "col": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup><template><col></template></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup><template><col></template></colgroup></table>"
- }
- },
- {
- "data": "<body a=b><template><div></div><body c=d><div></div></body></template></body>",
- "errors": [
- "no doctype",
- "bad <body>",
- "bad </body>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "div": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "a",
- "value": "b"
- }
- ],
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div"
- },
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body a=\"b\"><template><div></div><div></div></template></body></html>",
- "noQuirksBodyHtml": "<template><div></div><div></div></template>"
- }
- },
- {
- "data": "<html a=b><template><div><html b=c><span></template>",
- "errors": [
- "no doctype",
- "bad <html>",
- "missing end tags in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "div": true,
- "span": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "attrs": [
- {
- "name": "a",
- "value": "b"
- }
- ],
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html a=\"b\"><head><template><div><span></span></div></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><div><span></span></div></template>"
- }
- },
- {
- "data": "<html a=b><template><col></col><html b=c><col></col></template>",
- "errors": [
- "no doctype",
- "bad /col",
- "bad html",
- "bad /col"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "col": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "attrs": [
- {
- "name": "a",
- "value": "b"
- }
- ],
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- },
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html a=\"b\"><head><template><col><col></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><col><col></template>"
- }
- },
- {
- "data": "<html a=b><template><frame></frame><html b=c><frame></frame></template>",
- "errors": [
- "no doctype",
- "bad frame",
- "bad /frame",
- "bad html",
- "bad frame",
- "bad /frame"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "attrs": [
- {
- "name": "a",
- "value": "b"
- }
- ],
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html a=\"b\"><head><template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template></template>"
- }
- },
- {
- "data": "<body><template><tr></tr><template></template><td></td></template>",
- "errors": [
- "no doctype",
- "unexpected <td>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "tr": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- },
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- },
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><tr></tr><template></template><tr><td></td></tr></template></body></html>",
- "noQuirksBodyHtml": "<template><tr></tr><template></template><tr><td></td></tr></template>"
- }
- },
- {
- "data": "<body><template><thead></thead><template><tr></tr></template><tr></tr><tfoot></tfoot></template>",
- "errors": [
- "no doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "thead": true,
- "tr": true,
- "tbody": true,
- "tfoot": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "thead"
- },
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- },
- {
- "tag": "tfoot"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><thead></thead><template><tr></tr></template><tbody><tr></tr></tbody><tfoot></tfoot></template></body></html>",
- "noQuirksBodyHtml": "<template><thead></thead><template><tr></tr></template><tbody><tr></tr></tbody><tfoot></tfoot></template>"
- }
- },
- {
- "data": "<body><template><template><b><template></template></template>text</template>",
- "errors": [
- "no doctype",
- "missing </b>"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "b": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "text": "text"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><template><b><template></template></b></template>text</template></body></html>",
- "noQuirksBodyHtml": "<template><template><b><template></template></b></template>text</template>"
- }
- },
- {
- "data": "<body><template><col><colgroup>",
- "errors": [
- "no doctype",
- "bad colgroup",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "col": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><col></template></body></html>",
- "noQuirksBodyHtml": "<template><col></template>"
- }
- },
- {
- "data": "<body><template><col></colgroup>",
- "errors": [
- "no doctype",
- "bogus /colgroup",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "col": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><col></template></body></html>",
- "noQuirksBodyHtml": "<template><col></template>"
- }
- },
- {
- "data": "<body><template><col><colgroup></template></body>",
- "errors": [
- "no doctype",
- "bad colgroup"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "col": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><col></template></body></html>",
- "noQuirksBodyHtml": "<template><col></template>"
- }
- },
- {
- "data": "<body><template><col><div>",
- "errors": [
- " * (1,7) missing DOCTYPE",
- " * (1,27) unexpected token",
- " * (1,27) unexpected end of file in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "col": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><col></template></body></html>",
- "noQuirksBodyHtml": "<template><col></template>"
- }
- },
- {
- "data": "<body><template><col></div>",
- "errors": [
- "no doctype",
- "bad /div",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "col": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><col></template></body></html>",
- "noQuirksBodyHtml": "<template><col></template>"
- }
- },
- {
- "data": "<body><template><col>Hello",
- "errors": [
- "no doctype",
- "unexpected text",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "col": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><col></template></body></html>",
- "noQuirksBodyHtml": "<template><col></template>"
- }
- },
- {
- "data": "<body><template><i><menu>Foo</i>",
- "errors": [
- "no doctype",
- "mising /menu",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "i": true,
- "menu": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "i"
- },
- {
- "tag": "menu",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "Foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><i></i><menu><i>Foo</i></menu></template></body></html>",
- "noQuirksBodyHtml": "<template><i></i><menu><i>Foo</i></menu></template>"
- }
- },
- {
- "data": "<body><template></div><div>Foo</div><template></template><tr></tr>",
- "errors": [
- "no doctype",
- "bogus /div",
- "bogus tr",
- "bogus /tr",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true,
- "div": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "Foo"
- }
- ]
- },
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template><div>Foo</div><template></template></template></body></html>",
- "noQuirksBodyHtml": "<template><div>Foo</div><template></template></template>"
- }
- },
- {
- "data": "<body><div><template></div><tr><td>Foo</td></tr></template>",
- "errors": [
- " * (1,7) missing DOCTYPE",
- " * (1,28) unexpected token in template",
- " * (1,60) unexpected end of file"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "template": true,
- "tr": true,
- "td": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "Foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><template><tr><td>Foo</td></tr></template></div></body></html>",
- "noQuirksBodyHtml": "<div><template><tr><td>Foo</td></tr></template></div>"
- }
- },
- {
- "data": "<template></figcaption><sub><table></table>",
- "errors": [
- "no doctype",
- "bad /figcaption",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "sub": true,
- "table": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "sub",
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><sub><table></table></sub></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><sub><table></table></sub></template>"
- }
- },
- {
- "data": "<template><template>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template></template></template>"
- }
- },
- {
- "data": "<template><div>",
- "errors": [
- "no doctype",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "div": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><div></div></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><div></div></template>"
- }
- },
- {
- "data": "<template><template><div>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "div": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><div></div></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><div></div></template></template>"
- }
- },
- {
- "data": "<template><template><table>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "table": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><table></table></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><table></table></template></template>"
- }
- },
- {
- "data": "<template><template><tbody>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "tbody": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><tbody></tbody></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><tbody></tbody></template></template>"
- }
- },
- {
- "data": "<template><template><tr>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "tr": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><tr></tr></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><tr></tr></template></template>"
- }
- },
- {
- "data": "<template><template><td>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "td": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><td></td></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><td></td></template></template>"
- }
- },
- {
- "data": "<template><template><caption>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "caption": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "caption"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><caption></caption></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><caption></caption></template></template>"
- }
- },
- {
- "data": "<template><template><colgroup>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "colgroup": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "colgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><colgroup></colgroup></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><colgroup></colgroup></template></template>"
- }
- },
- {
- "data": "<template><template><col>",
- "errors": [
- "no doctype",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "col": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><col></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><col></template></template>"
- }
- },
- {
- "data": "<template><template><tbody><select>",
- "errors": [
- " * (1,11) missing DOCTYPE",
- " * (1,36) unexpected token in table - foster parenting",
- " * (1,36) unexpected end of file in template",
- " * (1,36) unexpected end of file in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "tbody": true,
- "select": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "tbody"
- },
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><tbody></tbody><select></select></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><tbody></tbody><select></select></template></template>"
- }
- },
- {
- "data": "<template><template><table>Foo",
- "errors": [
- "no doctype",
- "foster-parenting text F",
- "foster-parenting text o",
- "foster-parenting text o",
- "eof",
- "eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "table": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "text": "Foo"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template>Foo<table></table></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template>Foo<table></table></template></template>"
- }
- },
- {
- "data": "<template><template><frame>",
- "errors": [
- "no doctype",
- "bad tag",
- "eof",
- "eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template></template></template>"
- }
- },
- {
- "data": "<template><template><script>var i",
- "errors": [
- "no doctype",
- "eof in script",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "script": true,
- "body": true
- },
- "template": true,
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "var i",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><script>var i</script></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><script>var i</script></template></template>"
- }
- },
- {
- "data": "<template><template><style>var i",
- "errors": [
- "no doctype",
- "eof in style",
- "eof in template",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "style": true,
- "body": true
- },
- "template": true,
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "var i",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><template><style>var i</style></template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><template><style>var i</style></template></template>"
- }
- },
- {
- "data": "<template><table></template><body><span>Foo",
- "errors": [
- "no doctype",
- "missing /table",
- "bad eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "table": true,
- "body": true,
- "span": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "text": "Foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><template><table></table></template></head><body><span>Foo</span></body></html>",
- "noQuirksBodyHtml": "<template><table></table></template><span>Foo</span>"
- }
- },
- {
- "data": "<template><td></template><body><span>Foo",
- "errors": [
- "no doctype",
- "bad eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "td": true,
- "body": true,
- "span": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "text": "Foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><template><td></td></template></head><body><span>Foo</span></body></html>",
- "noQuirksBodyHtml": "<template><td></td></template><span>Foo</span>"
- }
- },
- {
- "data": "<template><object></template><body><span>Foo",
- "errors": [
- "no doctype",
- "missing /object",
- "bad eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "object": true,
- "body": true,
- "span": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "object"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "text": "Foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><template><object></object></template></head><body><span>Foo</span></body></html>",
- "noQuirksBodyHtml": "<template><object></object></template><span>Foo</span>"
- }
- },
- {
- "data": "<template><svg><template>",
- "errors": [
- "no doctype",
- "eof in template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "svg svg": true,
- "svg template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "template",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><svg><template></template></svg></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><svg><template></template></svg></template>"
- }
- },
- {
- "data": "<template><svg><foo><template><foreignObject><div></template><div>",
- "errors": [
- "no doctype",
- "ugly template closure",
- "bad eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "svg svg": true,
- "svg foo": true,
- "svg template": true,
- "svg foreignObject": true,
- "div": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foo",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "template",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><template><svg><foo><template><foreignObject><div></div></foreignObject></template></foo></svg></template></head><body><div></div></body></html>",
- "noQuirksBodyHtml": "<template><svg><foo><template><foreignObject><div></div></foreignObject></template></foo></svg></template><div></div>"
- }
- },
- {
- "data": "<dummy><template><span></dummy>",
- "errors": [
- "no doctype",
- "bad end tag </dummy>",
- "eof in template",
- "eof in dummy"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dummy": true,
- "template": true,
- "span": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dummy",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><dummy><template><span></span></template></dummy></body></html>",
- "noQuirksBodyHtml": "<dummy><template><span></span></template></dummy>"
- }
- },
- {
- "data": "<body><table><tr><td><select><template>Foo</template><caption>A</table>",
- "errors": [
- "no doctype",
- "(1,62): unexpected-caption-in-select-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "select": true,
- "template": true,
- "caption": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "text": "Foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "caption",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td><select><template>Foo</template></select></td></tr></tbody><caption>A</caption></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><select><template>Foo</template></select></td></tr></tbody><caption>A</caption></table>"
- }
- },
- {
- "data": "<body></body><template>",
- "errors": [
- "no doctype",
- "(1,23): template-after-body",
- "(1,24): eof-in-template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "template": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><template></template></body></html>",
- "noQuirksBodyHtml": "<template></template>"
- }
- },
- {
- "data": "<head></head><template>",
- "errors": [
- "no doctype",
- "(1,23): template-after-head",
- "(1,24): eof-in-template"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template></template>"
- }
- },
- {
- "data": "<head></head><template>Foo</template>",
- "errors": [
- "no doctype",
- "(1,23): template-after-head"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "text": "Foo"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template>Foo</template></head><body></body></html>",
- "noQuirksBodyHtml": "<template>Foo</template>"
- }
- },
- {
- "data": "<!DOCTYPE HTML><dummy><table><template><table><template><table><script>",
- "errors": [
- "eof script",
- "eof template",
- "eof template",
- "eof table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dummy": true,
- "table": true,
- "template": true,
- "script": true
- },
- "doctype": true,
- "template": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dummy",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "script"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><dummy><table><template><table><template><table><script></script></table></template></table></template></table></dummy></body></html>",
- "noQuirksBodyHtml": "<dummy><table><template><table><template><table><script></script></table></template></table></template></table></dummy>"
- }
- },
- {
- "data": "<template><a><table><a>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "template": true,
- "a": true,
- "table": true,
- "body": true
- },
- "template": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "template",
- "children": [
- {
- "content": true,
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><template><a><a></a><table></table></a></template></head><body></body></html>",
- "noQuirksBodyHtml": "<template><a><a></a><table></table></a></template>"
- }
- }
- ],
- "tests1.dat": [
- {
- "data": "Test",
- "errors": [
- "(1,0): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Test"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>Test</body></html>",
- "noQuirksBodyHtml": "Test"
- }
- },
- {
- "data": "<p>One<p>Two",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "One"
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "Two"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p>One</p><p>Two</p></body></html>",
- "noQuirksBodyHtml": "<p>One</p><p>Two</p>"
- }
- },
- {
- "data": "Line1<br>Line2<br>Line3<br>Line4",
- "errors": [
- "(1,0): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "br": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Line1"
- },
- {
- "tag": "br"
- },
- {
- "text": "Line2"
- },
- {
- "tag": "br"
- },
- {
- "text": "Line3"
- },
- {
- "tag": "br"
- },
- {
- "text": "Line4"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>Line1<br>Line2<br>Line3<br>Line4</body></html>",
- "noQuirksBodyHtml": "Line1<br>Line2<br>Line3<br>Line4"
- }
- },
- {
- "data": "<html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<head>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<body>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head></head>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head></head><body>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head></head><body></body>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head><body></body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head></body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><head><body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<head></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "</head>",
- "errors": [
- "(1,7): expected-doctype-but-got-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "</body>",
- "errors": [
- "(1,7): expected-doctype-but-got-end-tag element."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "</html>",
- "errors": [
- "(1,7): expected-doctype-but-got-end-tag element."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<b><table><td><i></table>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-cell-in-table-body",
- "(1,25): unexpected-cell-end-tag",
- "(1,25): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "i": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "i"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
- "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
- }
- },
- {
- "data": "<b><table><td></b><i></table>X",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-cell-in-table-body",
- "(1,18): unexpected-end-tag",
- "(1,29): unexpected-cell-end-tag",
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "i": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "i"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table>X</b></body></html>",
- "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table>X</b>"
- }
- },
- {
- "data": "<h1>Hello<h2>World",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag",
- "(1,13): unexpected-start-tag",
- "(1,18): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "h1": true,
- "h2": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "h1",
- "children": [
- {
- "text": "Hello"
- }
- ]
- },
- {
- "tag": "h2",
- "children": [
- {
- "text": "World"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><h1>Hello</h1><h2>World</h2></body></html>",
- "noQuirksBodyHtml": "<h1>Hello</h1><h2>World</h2>"
- }
- },
- {
- "data": "<a><p>X<a>Y</a>Z</p></a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,10): unexpected-start-tag-implies-end-tag",
- "(1,10): adoption-agency-1.3",
- "(1,24): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "X"
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "Y"
- }
- ]
- },
- {
- "text": "Z"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a></a><p><a>X</a><a>Y</a>Z</p></body></html>",
- "noQuirksBodyHtml": "<a></a><p><a>X</a><a>Y</a>Z</p>"
- }
- },
- {
- "data": "<b><button>foo</b>bar",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,18): adoption-agency-1.3",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "button": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b"
- },
- {
- "tag": "button",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b></b><button><b>foo</b>bar</button></body></html>",
- "noQuirksBodyHtml": "<b></b><button><b>foo</b>bar</button>"
- }
- },
- {
- "data": "<!DOCTYPE html><span><button>foo</span>bar",
- "errors": [
- "(1,39): unexpected-end-tag",
- "(1,42): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "span": true,
- "button": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "text": "foobar"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><span><button>foobar</button></span></body></html>",
- "noQuirksBodyHtml": "<span><button>foobar</button></span>"
- }
- },
- {
- "data": "<p><b><div><marquee></p></b></div>X",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-end-tag",
- "(1,24): unexpected-end-tag",
- "(1,28): unexpected-end-tag",
- "(1,34): end-tag-too-early",
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "b": true,
- "div": true,
- "marquee": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "marquee",
- "children": [
- {
- "tag": "p"
- },
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><b></b></p><div><b><marquee><p></p>X</marquee></b></div></body></html>",
- "noQuirksBodyHtml": "<p><b></b></p><div><b><marquee><p></p>X</marquee></b></div>"
- }
- },
- {
- "data": "<script><div></script></div><title><p></title><p><p>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,28): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "title": true,
- "body": true,
- "p": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<div>",
- "no_escape": true
- }
- ]
- },
- {
- "tag": "title",
- "children": [
- {
- "text": "<p>",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><script><div></script><title><p></title></head><body><p></p><p></p></body></html>",
- "noQuirksBodyHtml": "<script><div></script><title><p></title><p></p><p></p>"
- }
- },
- {
- "data": "<!--><div>--<!-->",
- "errors": [
- "(1,5): incorrect-comment",
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,17): incorrect-comment",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": ""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "--"
- },
- {
- "comment": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!----><html><head></head><body><div>--<!----></div></body></html>",
- "noQuirksBodyHtml": "<!----><div>--<!----></div>"
- }
- },
- {
- "data": "<p><hr></p>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "hr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "hr"
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p></p><hr><p></p></body></html>",
- "noQuirksBodyHtml": "<p></p><hr><p></p>"
- }
- },
- {
- "data": "<select><b><option><select><option></b></select>X",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-start-tag-in-select",
- "(1,27): unexpected-select-in-select",
- "(1,39): unexpected-end-tag",
- "(1,48): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- }
- ]
- },
- {
- "tag": "option",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><option></option></select><option>X</option></body></html>",
- "noQuirksBodyHtml": "<select><option></option></select><option>X</option>"
- }
- },
- {
- "data": "<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-cell-in-table-body",
- "(1,35): unexpected-start-tag-implies-end-tag",
- "(1,40): unexpected-cell-end-tag",
- "(1,43): unexpected-start-tag-implies-table-voodoo",
- "(1,43): unexpected-start-tag-implies-end-tag",
- "(1,43): unexpected-end-tag",
- "(1,63): unexpected-start-tag-implies-end-tag",
- "(1,64): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "table"
- }
- ]
- },
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "X"
- }
- ]
- },
- {
- "text": "C"
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "Y"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a><b>X</b>C</a><a>Y</a></body></html>",
- "noQuirksBodyHtml": "<a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a><b>X</b>C</a><a>Y</a>"
- }
- },
- {
- "data": "<a X>0<b>1<a Y>2",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,15): unexpected-start-tag-implies-end-tag",
- "(1,15): adoption-agency-1.3",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "x",
- "value": ""
- }
- ],
- "children": [
- {
- "text": "0"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "1"
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "y",
- "value": ""
- }
- ],
- "children": [
- {
- "text": "2"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a x=\"\">0<b>1</b></a><b><a y=\"\">2</a></b></body></html>",
- "noQuirksBodyHtml": "<a x=\"\">0<b>1</b></a><b><a y=\"\">2</a></b>"
- }
- },
- {
- "data": "<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X-->",
- "errors": [
- "(1,7): unexpected-dash-after-double-dash-in-comment",
- "(1,14): expected-doctype-but-got-start-tag",
- "(1,41): unexpected-start-tag-implies-table-voodoo",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): foster-parenting-character-in-table",
- "(1,48): unexpected-cell-in-table-body",
- "(1,63): unexpected-cell-end-tag",
- "(1,71): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "font": true,
- "div": true,
- "b": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "th": true,
- "i": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "-"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "font",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "helloexcite!"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "me!"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "th",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "please!"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "comment": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!-----><html><head></head><body><font><div>helloexcite!<b>me!</b><table><tbody><tr><th><i>please!</i></th></tr><!--X--></tbody></table></div></font></body></html>",
- "noQuirksBodyHtml": "<!-----><font><div>helloexcite!<b>me!</b><table><tbody><tr><th><i>please!</i></th></tr><!--X--></tbody></table></div></font>"
- }
- },
- {
- "data": "<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do-->",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "li": true,
- "ul": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "li",
- "children": [
- {
- "text": "hello"
- }
- ]
- },
- {
- "tag": "li",
- "children": [
- {
- "text": "world"
- },
- {
- "tag": "ul",
- "children": [
- {
- "text": "how"
- },
- {
- "tag": "li",
- "children": [
- {
- "text": "do"
- }
- ]
- }
- ]
- },
- {
- "text": "you"
- }
- ]
- }
- ]
- },
- {
- "comment": "do"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><li>hello</li><li>world<ul>how<li>do</li></ul>you</li></body><!--do--></html>",
- "noQuirksBodyHtml": "<li>hello</li><li>world<ul>how<li>do</li></ul>you<!--do--></li>"
- }
- },
- {
- "data": "<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E",
- "errors": [
- "(1,54): unexpected-end-tag-in-select",
- "(1,55): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "option": true,
- "optgroup": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "A"
- },
- {
- "tag": "option",
- "children": [
- {
- "text": "B"
- }
- ]
- },
- {
- "tag": "optgroup",
- "children": [
- {
- "text": "C"
- },
- {
- "tag": "select",
- "children": [
- {
- "text": "DE"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>A<option>B</option><optgroup>C<select>DE</select></optgroup></body></html>",
- "noQuirksBodyHtml": "A<option>B</option><optgroup>C<select>DE</select></optgroup>"
- }
- },
- {
- "data": "<",
- "errors": [
- "(1,1): expected-tag-name",
- "(1,1): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "<",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><</body></html>",
- "noQuirksBodyHtml": "<"
- }
- },
- {
- "data": "<#",
- "errors": [
- "(1,1): expected-tag-name",
- "(1,1): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "<#",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><#</body></html>",
- "noQuirksBodyHtml": "<#"
- }
- },
- {
- "data": "</",
- "errors": [
- "(1,2): expected-closing-tag-but-got-eof",
- "(1,2): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "</",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body></</body></html>",
- "noQuirksBodyHtml": "</"
- }
- },
- {
- "data": "</#",
- "errors": [
- "(1,2): expected-closing-tag-but-got-char",
- "(1,3): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "#"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--#--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--#-->"
- }
- },
- {
- "data": "<?",
- "errors": [
- "(1,1): expected-tag-name-but-got-question-mark",
- "(1,2): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "?"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--?--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--?-->"
- }
- },
- {
- "data": "<?#",
- "errors": [
- "(1,1): expected-tag-name-but-got-question-mark",
- "(1,3): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "?#"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--?#--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--?#-->"
- }
- },
- {
- "data": "<!",
- "errors": [
- "(1,2): expected-dashes-or-doctype",
- "(1,2): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": ""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!----><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!---->"
- }
- },
- {
- "data": "<!#",
- "errors": [
- "(1,2): expected-dashes-or-doctype",
- "(1,3): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "#"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--#--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--#-->"
- }
- },
- {
- "data": "<?COMMENT?>",
- "errors": [
- "(1,1): expected-tag-name-but-got-question-mark",
- "(1,11): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "?COMMENT?"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--?COMMENT?--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--?COMMENT?-->"
- }
- },
- {
- "data": "<!COMMENT>",
- "errors": [
- "(1,2): expected-dashes-or-doctype",
- "(1,10): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "COMMENT"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--COMMENT--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--COMMENT-->"
- }
- },
- {
- "data": "</ COMMENT >",
- "errors": [
- "(1,2): expected-closing-tag-but-got-char",
- "(1,12): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": " COMMENT "
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!-- COMMENT --><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!-- COMMENT -->"
- }
- },
- {
- "data": "<?COM--MENT?>",
- "errors": [
- "(1,1): expected-tag-name-but-got-question-mark",
- "(1,13): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "?COM--MENT?"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--?COM--MENT?--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--?COM--MENT?-->"
- }
- },
- {
- "data": "<!COM--MENT>",
- "errors": [
- "(1,2): expected-dashes-or-doctype",
- "(1,12): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "COM--MENT"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!--COM--MENT--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--COM--MENT-->"
- }
- },
- {
- "data": "</ COM--MENT >",
- "errors": [
- "(1,2): expected-closing-tag-but-got-char",
- "(1,14): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": " COM--MENT "
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!-- COM--MENT --><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!-- COM--MENT -->"
- }
- },
- {
- "data": "<!DOCTYPE html><style> EOF",
- "errors": [
- "(1,26): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": " EOF",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style> EOF</style></head><body></body></html>",
- "noQuirksBodyHtml": "<style> EOF</style>"
- }
- },
- {
- "data": "<!DOCTYPE html><script> <!-- </script> --> </script> EOF",
- "errors": [
- "(1,52): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": " <!-- ",
- "no_escape": true
- }
- ]
- },
- {
- "text": " "
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "--> EOF",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script> <!-- </script> </head><body>--> EOF</body></html>",
- "noQuirksBodyHtml": "<script> <!-- </script> --> EOF"
- }
- },
- {
- "data": "<b><p></b>TEST",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,10): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "b"
- },
- {
- "text": "TEST"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b></b><p><b></b>TEST</p></body></html>",
- "noQuirksBodyHtml": "<b></b><p><b></b>TEST</p>"
- }
- },
- {
- "data": "<p id=a><b><p id=b></b>TEST",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,19): unexpected-end-tag",
- "(1,23): adoption-agency-1.2"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "p",
- "attrs": [
- {
- "name": "id",
- "value": "b"
- }
- ],
- "children": [
- {
- "text": "TEST"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p id=\"a\"><b></b></p><p id=\"b\">TEST</p></body></html>",
- "noQuirksBodyHtml": "<p id=\"a\"><b></b></p><p id=\"b\">TEST</p>"
- }
- },
- {
- "data": "<b id=a><p><b id=b></p></b>TEST",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,23): unexpected-end-tag",
- "(1,27): adoption-agency-1.2",
- "(1,31): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "b"
- }
- ]
- }
- ]
- },
- {
- "text": "TEST"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b id=\"a\"><p><b id=\"b\"></b></p>TEST</b></body></html>",
- "noQuirksBodyHtml": "<b id=\"a\"><p><b id=\"b\"></b></p>TEST</b>"
- }
- },
- {
- "data": "<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body>",
- "errors": [
- "(1,61): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true,
- "div": true,
- "p": true,
- "u": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "U-test"
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "Test"
- },
- {
- "tag": "u"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><title>U-test</title></head><body><div><p>Test<u></u></p></div></body></html>",
- "noQuirksBodyHtml": "<title>U-test</title><div><p>Test<u></u></p></div>"
- }
- },
- {
- "data": "<!DOCTYPE html><font><table></font></table></font>",
- "errors": [
- "(1,35): unexpected-end-tag-implies-table-voodoo",
- "(1,35): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "font": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "font",
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><font><table></table></font></body></html>",
- "noQuirksBodyHtml": "<font><table></table></font>"
- }
- },
- {
- "data": "<font><p>hello<b>cruel</font>world",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,29): adoption-agency-1.3",
- "(1,29): adoption-agency-1.3",
- "(1,34): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "font": true,
- "p": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "font"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "children": [
- {
- "text": "hello"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "cruel"
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "world"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><font></font><p><font>hello<b>cruel</b></font><b>world</b></p></body></html>",
- "noQuirksBodyHtml": "<font></font><p><font>hello<b>cruel</b></font><b>world</b></p>"
- }
- },
- {
- "data": "<b>Test</i>Test",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-end-tag",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "TestTest"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b>TestTest</b></body></html>",
- "noQuirksBodyHtml": "<b>TestTest</b>"
- }
- },
- {
- "data": "<b>A<cite>B<div>C",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "cite": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "A"
- },
- {
- "tag": "cite",
- "children": [
- {
- "text": "B"
- },
- {
- "tag": "div",
- "children": [
- {
- "text": "C"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b>A<cite>B<div>C</div></cite></b></body></html>",
- "noQuirksBodyHtml": "<b>A<cite>B<div>C</div></cite></b>"
- }
- },
- {
- "data": "<b>A<cite>B<div>C</cite>D",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,24): unexpected-end-tag",
- "(1,25): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "cite": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "A"
- },
- {
- "tag": "cite",
- "children": [
- {
- "text": "B"
- },
- {
- "tag": "div",
- "children": [
- {
- "text": "CD"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b>A<cite>B<div>CD</div></cite></b></body></html>",
- "noQuirksBodyHtml": "<b>A<cite>B<div>CD</div></cite></b>"
- }
- },
- {
- "data": "<b>A<cite>B<div>C</b>D",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,21): adoption-agency-1.3",
- "(1,22): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "cite": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "A"
- },
- {
- "tag": "cite",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "C"
- }
- ]
- },
- {
- "text": "D"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b>A<cite>B</cite></b><div><b>C</b>D</div></body></html>",
- "noQuirksBodyHtml": "<b>A<cite>B</cite></b><div><b>C</b>D</div>"
- }
- },
- {
- "data": "",
- "errors": [
- "(1,0): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<DIV>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,5): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div></div></body></html>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<DIV> abc",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,9): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc</div></body></html>",
- "noQuirksBodyHtml": "<div> abc</div>"
- }
- },
- {
- "data": "<DIV> abc <B>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,13): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b></b></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b></b></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def</b></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def</b></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i></i></b></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i></i></b></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,25): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi</i></b></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi</i></b></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi <P>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,29): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi "
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi <p></p></i></b></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi <p></p></i></b></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi <P> jkl",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi "
- },
- {
- "tag": "p",
- "children": [
- {
- "text": " jkl"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi <p> jkl</p></i></b></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi <p> jkl</p></i></b></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi <P> jkl </B>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,38): adoption-agency-1.3",
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi "
- }
- ]
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": " jkl "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b></p></i></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b></p></i></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,38): adoption-agency-1.3",
- "(1,42): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi "
- }
- ]
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": " jkl "
- }
- ]
- },
- {
- "text": " mno"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b> mno</p></i></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b> mno</p></i></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,38): adoption-agency-1.3",
- "(1,47): adoption-agency-1.3",
- "(1,47): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi "
- }
- ]
- }
- ]
- },
- {
- "tag": "i"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": " jkl "
- }
- ]
- },
- {
- "text": " mno "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i></p></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i></p></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,38): adoption-agency-1.3",
- "(1,47): adoption-agency-1.3",
- "(1,51): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi "
- }
- ]
- }
- ]
- },
- {
- "tag": "i"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": " jkl "
- }
- ]
- },
- {
- "text": " mno "
- }
- ]
- },
- {
- "text": " pqr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr</p></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr</p></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,38): adoption-agency-1.3",
- "(1,47): adoption-agency-1.3",
- "(1,56): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi "
- }
- ]
- }
- ]
- },
- {
- "tag": "i"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": " jkl "
- }
- ]
- },
- {
- "text": " mno "
- }
- ]
- },
- {
- "text": " pqr "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p></div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p></div>"
- }
- },
- {
- "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,38): adoption-agency-1.3",
- "(1,47): adoption-agency-1.3",
- "(1,60): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "i": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": " abc "
- },
- {
- "tag": "b",
- "children": [
- {
- "text": " def "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " ghi "
- }
- ]
- }
- ]
- },
- {
- "tag": "i"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": " jkl "
- }
- ]
- },
- {
- "text": " mno "
- }
- ]
- },
- {
- "text": " pqr "
- }
- ]
- },
- {
- "text": " stu"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p> stu</div></body></html>",
- "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p> stu</div>"
- }
- },
- {
- "data": "<test attribute---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->",
- "errors": [
- "(1,1040): expected-doctype-but-got-start-tag",
- "(1,1040): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "test": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "test",
- "attrs": [
- {
- "name": "attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=\"\"></test></body></html>",
- "noQuirksBodyHtml": "<test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=\"\"></test>"
- }
- },
- {
- "data": "<a href=\"blah\">aba<table><a href=\"foo\">br<tr><td></td></tr>x</table>aoe",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag",
- "(1,39): unexpected-start-tag-implies-table-voodoo",
- "(1,39): unexpected-start-tag-implies-end-tag",
- "(1,39): unexpected-end-tag",
- "(1,45): foster-parenting-character-in-table",
- "(1,45): foster-parenting-character-in-table",
- "(1,68): foster-parenting-character-in-table",
- "(1,71): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "blah"
- }
- ],
- "children": [
- {
- "text": "aba"
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "foo"
- }
- ],
- "children": [
- {
- "text": "br"
- }
- ]
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "foo"
- }
- ],
- "children": [
- {
- "text": "x"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "foo"
- }
- ],
- "children": [
- {
- "text": "aoe"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a href=\"blah\">aba<a href=\"foo\">br</a><a href=\"foo\">x</a><table><tbody><tr><td></td></tr></tbody></table></a><a href=\"foo\">aoe</a></body></html>",
- "noQuirksBodyHtml": "<a href=\"blah\">aba<a href=\"foo\">br</a><a href=\"foo\">x</a><table><tbody><tr><td></td></tr></tbody></table></a><a href=\"foo\">aoe</a>"
- }
- },
- {
- "data": "<a href=\"blah\">aba<table><tr><td><a href=\"foo\">br</td></tr>x</table>aoe",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag",
- "(1,54): unexpected-cell-end-tag",
- "(1,68): unexpected text in table",
- "(1,71): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "blah"
- }
- ],
- "children": [
- {
- "text": "abax"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "foo"
- }
- ],
- "children": [
- {
- "text": "br"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "text": "aoe"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a href=\"blah\">abax<table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table>aoe</a></body></html>",
- "noQuirksBodyHtml": "<a href=\"blah\">abax<table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table>aoe</a>"
- }
- },
- {
- "data": "<table><a href=\"blah\">aba<tr><td><a href=\"foo\">br</td></tr>x</table>aoe",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,22): unexpected-start-tag-implies-table-voodoo",
- "(1,29): foster-parenting-character-in-table",
- "(1,29): foster-parenting-character-in-table",
- "(1,29): foster-parenting-character-in-table",
- "(1,54): unexpected-cell-end-tag",
- "(1,68): foster-parenting-character-in-table",
- "(1,71): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "blah"
- }
- ],
- "children": [
- {
- "text": "aba"
- }
- ]
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "blah"
- }
- ],
- "children": [
- {
- "text": "x"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "foo"
- }
- ],
- "children": [
- {
- "text": "br"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "blah"
- }
- ],
- "children": [
- {
- "text": "aoe"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a href=\"blah\">aba</a><a href=\"blah\">x</a><table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table><a href=\"blah\">aoe</a></body></html>",
- "noQuirksBodyHtml": "<a href=\"blah\">aba</a><a href=\"blah\">x</a><table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table><a href=\"blah\">aoe</a>"
- }
- },
- {
- "data": "<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,45): end-tag-too-early",
- "(1,47): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "marquee": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "a"
- }
- ],
- "children": [
- {
- "text": "aa"
- },
- {
- "tag": "marquee",
- "children": [
- {
- "text": "aa"
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "b"
- }
- ],
- "children": [
- {
- "text": "bb"
- }
- ]
- }
- ]
- },
- {
- "text": "aa"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a href=\"a\">aa<marquee>aa<a href=\"b\">bb</a></marquee>aa</a></body></html>",
- "noQuirksBodyHtml": "<a href=\"a\">aa<marquee>aa<a href=\"b\">bb</a></marquee>aa</a>"
- }
- },
- {
- "data": "<wbr><strike><code></strike><code><strike></code>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,28): adoption-agency-1.3",
- "(1,49): adoption-agency-1.3",
- "(1,49): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "wbr": true,
- "strike": true,
- "code": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "wbr"
- },
- {
- "tag": "strike",
- "children": [
- {
- "tag": "code"
- }
- ]
- },
- {
- "tag": "code",
- "children": [
- {
- "tag": "code",
- "children": [
- {
- "tag": "strike"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><wbr><strike><code></code></strike><code><code><strike></strike></code></code></body></html>",
- "noQuirksBodyHtml": "<wbr><strike><code></code></strike><code><code><strike></strike></code></code>"
- }
- },
- {
- "data": "<!DOCTYPE html><spacer>foo",
- "errors": [
- "(1,26): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "spacer": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "spacer",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><spacer>foo</spacer></body></html>",
- "noQuirksBodyHtml": "<spacer>foo</spacer>"
- }
- },
- {
- "data": "<title><meta></title><link><title><meta></title>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "link": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "<meta>",
- "escaped": true
- }
- ]
- },
- {
- "tag": "link"
- },
- {
- "tag": "title",
- "children": [
- {
- "text": "<meta>",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><title><meta></title><link><title><meta></title></head><body></body></html>",
- "noQuirksBodyHtml": "<title><meta></title><link><title><meta></title>"
- }
- },
- {
- "data": "<style><!--</style><meta><script>--><link></script>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "meta": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- },
- {
- "tag": "meta"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "--><link>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><style><!--</style><meta><script>--><link></script></head><body></body></html>",
- "noQuirksBodyHtml": "<style><!--</style><meta><script>--><link></script>"
- }
- },
- {
- "data": "<head><meta></head><link>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,25): unexpected-start-tag-out-of-my-head"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "meta": true,
- "link": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "meta"
- },
- {
- "tag": "link"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><meta><link></head><body></body></html>",
- "noQuirksBodyHtml": "<meta><link>"
- }
- },
- {
- "data": "<table><tr><tr><td><td><span><th><span>X</table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,33): unexpected-cell-end-tag",
- "(1,48): unexpected-cell-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "span": true,
- "th": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- },
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- },
- {
- "tag": "td",
- "children": [
- {
- "tag": "span"
- }
- ]
- },
- {
- "tag": "th",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr></tr><tr><td></td><td><span></span></td><th><span>X</span></th></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr></tr><tr><td></td><td><span></span></td><th><span>X</span></th></tr></tbody></table>"
- }
- },
- {
- "data": "<body><body><base><link><meta><title><p></title><body><p></body>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,12): unexpected-start-tag",
- "(1,54): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "base": true,
- "link": true,
- "meta": true,
- "title": true,
- "p": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "base"
- },
- {
- "tag": "link"
- },
- {
- "tag": "meta"
- },
- {
- "tag": "title",
- "children": [
- {
- "text": "<p>",
- "escaped": true
- }
- ]
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><base><link><meta><title><p></title><p></p></body></html>",
- "noQuirksBodyHtml": "<base><link><meta><title><p></title><p></p>"
- }
- },
- {
- "data": "<textarea><p></textarea>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "<p>",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><textarea><p></textarea></body></html>",
- "noQuirksBodyHtml": "<textarea><p></textarea>"
- }
- },
- {
- "data": "<p><image></p>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,10): unexpected-start-tag-treated-as"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "img": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "img"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><img></p></body></html>",
- "noQuirksBodyHtml": "<p><img></p>"
- }
- },
- {
- "data": "<a><table><a></table><p><a><div><a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,13): unexpected-start-tag-implies-table-voodoo",
- "(1,13): unexpected-start-tag-implies-end-tag",
- "(1,13): adoption-agency-1.3",
- "(1,27): unexpected-start-tag-implies-end-tag",
- "(1,27): adoption-agency-1.2",
- "(1,32): unexpected-end-tag",
- "(1,35): unexpected-start-tag-implies-end-tag",
- "(1,35): adoption-agency-1.2",
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "table": true,
- "p": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "table"
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><a></a><table></table></a><p><a></a></p><div><a></a></div></body></html>",
- "noQuirksBodyHtml": "<a><a></a><table></table></a><p><a></a></p><div><a></a></div>"
- }
- },
- {
- "data": "<head></p><meta><p>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,10): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "meta": true,
- "body": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "meta"
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><meta></head><body><p></p></body></html>",
- "noQuirksBodyHtml": "<p></p><meta><p></p>"
- }
- },
- {
- "data": "<head></html><meta><p>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,19): expected-eof-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "meta": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "meta"
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><meta><p></p></body></html>",
- "noQuirksBodyHtml": "<meta><p></p>"
- }
- },
- {
- "data": "<b><table><td><i></table>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-cell-in-table-body",
- "(1,25): unexpected-cell-end-tag",
- "(1,25): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "i": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "i"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
- "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
- }
- },
- {
- "data": "<b><table><td></b><i></table>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-cell-in-table-body",
- "(1,18): unexpected-end-tag",
- "(1,29): unexpected-cell-end-tag",
- "(1,29): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "i": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "i"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
- "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
- }
- },
- {
- "data": "<h1><h2>",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag",
- "(1,8): unexpected-start-tag",
- "(1,8): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "h1": true,
- "h2": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "h1"
- },
- {
- "tag": "h2"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><h1></h1><h2></h2></body></html>",
- "noQuirksBodyHtml": "<h1></h1><h2></h2>"
- }
- },
- {
- "data": "<a><p><a></a></p></a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,9): unexpected-start-tag-implies-end-tag",
- "(1,9): adoption-agency-1.3",
- "(1,21): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a></a><p><a></a><a></a></p></body></html>",
- "noQuirksBodyHtml": "<a></a><p><a></a><a></a></p>"
- }
- },
- {
- "data": "<b><button></b></button></b>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,15): adoption-agency-1.3",
- "(1,28): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "button": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b"
- },
- {
- "tag": "button",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b></b><button><b></b></button></body></html>",
- "noQuirksBodyHtml": "<b></b><button><b></b></button>"
- }
- },
- {
- "data": "<p><b><div><marquee></p></b></div>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-end-tag",
- "(1,24): unexpected-end-tag",
- "(1,28): unexpected-end-tag",
- "(1,34): end-tag-too-early",
- "(1,34): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "b": true,
- "div": true,
- "marquee": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "marquee",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><b></b></p><div><b><marquee><p></p></marquee></b></div></body></html>",
- "noQuirksBodyHtml": "<p><b></b></p><div><b><marquee><p></p></marquee></b></div>"
- }
- },
- {
- "data": "<script></script></div><title></title><p><p>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,23): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "title": true,
- "body": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script"
- },
- {
- "tag": "title"
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><script></script><title></title></head><body><p></p><p></p></body></html>",
- "noQuirksBodyHtml": "<script></script><title></title><p></p><p></p>"
- }
- },
- {
- "data": "<p><hr></p>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "hr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "hr"
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p></p><hr><p></p></body></html>",
- "noQuirksBodyHtml": "<p></p><hr><p></p>"
- }
- },
- {
- "data": "<select><b><option><select><option></b></select>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-start-tag-in-select",
- "(1,27): unexpected-select-in-select",
- "(1,39): unexpected-end-tag",
- "(1,48): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- }
- ]
- },
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><option></option></select><option></option></body></html>",
- "noQuirksBodyHtml": "<select><option></option></select><option></option>"
- }
- },
- {
- "data": "<html><head><title></title><body></body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><title></title></head><body></body></html>",
- "noQuirksBodyHtml": "<title></title>"
- }
- },
- {
- "data": "<a><table><td><a><table></table><a></tr><a></table><a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-cell-in-table-body",
- "(1,35): unexpected-start-tag-implies-end-tag",
- "(1,40): unexpected-cell-end-tag",
- "(1,43): unexpected-start-tag-implies-table-voodoo",
- "(1,43): unexpected-start-tag-implies-end-tag",
- "(1,43): unexpected-end-tag",
- "(1,54): unexpected-start-tag-implies-end-tag",
- "(1,54): adoption-agency-1.2",
- "(1,54): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "table"
- }
- ]
- },
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a></a></body></html>",
- "noQuirksBodyHtml": "<a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a></a>"
- }
- },
- {
- "data": "<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul>",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag",
- "(1,45): end-tag-too-early",
- "(1,58): end-tag-too-early",
- "(1,69): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ul": true,
- "li": true,
- "div": true,
- "address": true,
- "b": true,
- "em": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ul",
- "children": [
- {
- "tag": "li"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "li"
- }
- ]
- },
- {
- "tag": "li"
- },
- {
- "tag": "li",
- "children": [
- {
- "tag": "div"
- }
- ]
- },
- {
- "tag": "li",
- "children": [
- {
- "tag": "address"
- }
- ]
- },
- {
- "tag": "li",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "em"
- }
- ]
- }
- ]
- },
- {
- "tag": "li"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ul><li></li><div><li></li></div><li></li><li><div></div></li><li><address></address></li><li><b><em></em></b></li><li></li></ul></body></html>",
- "noQuirksBodyHtml": "<ul><li></li><div><li></li></div><li></li><li><div></div></li><li><address></address></li><li><b><em></em></b></li><li></li></ul>"
- }
- },
- {
- "data": "<ul><li><ul></li><li>a</li></ul></li></ul>",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag",
- "(1,17): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ul": true,
- "li": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ul",
- "children": [
- {
- "tag": "li",
- "children": [
- {
- "tag": "ul",
- "children": [
- {
- "tag": "li",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ul><li><ul><li>a</li></ul></li></ul></body></html>",
- "noQuirksBodyHtml": "<ul><li><ul><li>a</li></ul></li></ul>"
- }
- },
- {
- "data": "<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true,
- "noframes": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- },
- {
- "tag": "noframes"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset><frame><frameset><frame></frameset><noframes></noframes></frameset></html>",
- "noQuirksBodyHtml": "<noframes></noframes>"
- }
- },
- {
- "data": "<h1><table><td><h3></table><h3></h1>",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag",
- "(1,15): unexpected-cell-in-table-body",
- "(1,27): unexpected-cell-end-tag",
- "(1,31): unexpected-start-tag",
- "(1,36): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "h1": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "h3": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "h1",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "h3"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "h3"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><h1><table><tbody><tr><td><h3></h3></td></tr></tbody></table></h1><h3></h3></body></html>",
- "noQuirksBodyHtml": "<h1><table><tbody><tr><td><h3></h3></td></tr></tbody></table></h1><h3></h3>"
- }
- },
- {
- "data": "<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true,
- "col": true,
- "thead": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- }
- ]
- },
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- },
- {
- "tag": "col"
- },
- {
- "tag": "col"
- }
- ]
- },
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- },
- {
- "tag": "col"
- }
- ]
- },
- {
- "tag": "thead",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup><col></colgroup><colgroup><col><col><col></colgroup><colgroup><col><col></colgroup><thead><tr><td></td></tr></thead></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup><col></colgroup><colgroup><col><col><col></colgroup><colgroup><col><col></colgroup><thead><tr><td></td></tr></thead></table>"
- }
- },
- {
- "data": "<table><col><tbody><col><tr><col><td><col></table><col>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,37): unexpected-cell-in-table-body",
- "(1,55): unexpected-start-tag-ignored"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true,
- "col": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- }
- ]
- },
- {
- "tag": "tbody"
- },
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- }
- ]
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- },
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- }
- ]
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- },
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup><col></colgroup><tbody></tbody><colgroup><col></colgroup><tbody><tr></tr></tbody><colgroup><col></colgroup><tbody><tr><td></td></tr></tbody><colgroup><col></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup><col></colgroup><tbody></tbody><colgroup><col></colgroup><tbody><tr></tr></tbody><colgroup><col></colgroup><tbody><tr><td></td></tr></tbody><colgroup><col></colgroup></table>"
- }
- },
- {
- "data": "<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,52): unexpected-cell-in-table-body",
- "(1,80): unexpected-start-tag-ignored"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup"
- },
- {
- "tag": "tbody"
- },
- {
- "tag": "colgroup"
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- },
- {
- "tag": "colgroup"
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- },
- {
- "tag": "colgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup></colgroup><tbody></tbody><colgroup></colgroup><tbody><tr></tr></tbody><colgroup></colgroup><tbody><tr><td></td></tr></tbody><colgroup></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup></colgroup><tbody></tbody><colgroup></colgroup><tbody><tr></tr></tbody><colgroup></colgroup><tbody><tr><td></td></tr></tbody><colgroup></colgroup></table>"
- }
- },
- {
- "data": "</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>",
- "errors": [
- "(1,9): expected-doctype-but-got-end-tag",
- "(1,9): unexpected-end-tag-before-html",
- "(1,13): unexpected-end-tag-before-html",
- "(1,18): unexpected-end-tag-before-html",
- "(1,22): unexpected-end-tag-before-html",
- "(1,26): unexpected-end-tag-before-html",
- "(1,35): unexpected-end-tag-before-html",
- "(1,39): unexpected-end-tag-before-html",
- "(1,47): unexpected-end-tag-before-html",
- "(1,52): unexpected-end-tag-before-html",
- "(1,58): unexpected-end-tag-before-html",
- "(1,64): unexpected-end-tag-before-html",
- "(1,72): unexpected-end-tag-before-html",
- "(1,79): unexpected-end-tag-before-html",
- "(1,88): unexpected-end-tag-before-html",
- "(1,93): unexpected-end-tag-before-html",
- "(1,98): unexpected-end-tag-before-html",
- "(1,103): unexpected-end-tag-before-html",
- "(1,108): unexpected-end-tag-before-html",
- "(1,113): unexpected-end-tag-before-html",
- "(1,118): unexpected-end-tag-before-html",
- "(1,130): unexpected-end-tag-after-body",
- "(1,130): unexpected-end-tag-treated-as",
- "(1,134): unexpected-end-tag",
- "(1,140): unexpected-end-tag",
- "(1,148): unexpected-end-tag",
- "(1,155): unexpected-end-tag",
- "(1,163): unexpected-end-tag",
- "(1,172): unexpected-end-tag",
- "(1,180): unexpected-end-tag",
- "(1,185): unexpected-end-tag",
- "(1,190): unexpected-end-tag",
- "(1,195): unexpected-end-tag",
- "(1,203): unexpected-end-tag",
- "(1,210): unexpected-end-tag",
- "(1,217): unexpected-end-tag",
- "(1,225): unexpected-end-tag",
- "(1,230): unexpected-end-tag",
- "(1,238): unexpected-end-tag",
- "(1,244): unexpected-end-tag",
- "(1,251): unexpected-end-tag",
- "(1,258): unexpected-end-tag",
- "(1,269): unexpected-end-tag",
- "(1,279): unexpected-end-tag",
- "(1,287): unexpected-end-tag",
- "(1,296): unexpected-end-tag",
- "(1,300): unexpected-end-tag",
- "(1,305): unexpected-end-tag",
- "(1,310): unexpected-end-tag",
- "(1,320): unexpected-end-tag",
- "(1,331): unexpected-end-tag",
- "(1,339): unexpected-end-tag",
- "(1,347): unexpected-end-tag",
- "(1,355): unexpected-end-tag",
- "(1,365): end-tag-too-early",
- "(1,378): end-tag-too-early",
- "(1,387): end-tag-too-early",
- "(1,393): end-tag-too-early",
- "(1,399): end-tag-too-early",
- "(1,404): end-tag-too-early",
- "(1,415): end-tag-too-early",
- "(1,425): end-tag-too-early",
- "(1,432): end-tag-too-early",
- "(1,437): end-tag-too-early",
- "(1,442): end-tag-too-early",
- "(1,447): unexpected-end-tag",
- "(1,454): unexpected-end-tag",
- "(1,460): unexpected-end-tag",
- "(1,467): unexpected-end-tag",
- "(1,476): end-tag-too-early",
- "(1,486): end-tag-too-early",
- "(1,495): end-tag-too-early",
- "(1,513): expected-eof-but-got-end-tag",
- "(1,513): unexpected-end-tag",
- "(1,520): unexpected-end-tag",
- "(1,529): unexpected-end-tag",
- "(1,537): unexpected-end-tag",
- "(1,547): unexpected-end-tag",
- "(1,557): unexpected-end-tag",
- "(1,568): unexpected-end-tag",
- "(1,579): unexpected-end-tag",
- "(1,590): unexpected-end-tag",
- "(1,599): unexpected-end-tag",
- "(1,611): unexpected-end-tag",
- "(1,622): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "br": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "br"
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><br><p></p></body></html>",
- "noQuirksBodyHtml": "<br><p></p>"
- }
- },
- {
- "data": "<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,20): unexpected-end-tag-implies-table-voodoo",
- "(1,20): unexpected-end-tag",
- "(1,24): unexpected-end-tag-implies-table-voodoo",
- "(1,24): unexpected-end-tag",
- "(1,29): unexpected-end-tag-implies-table-voodoo",
- "(1,29): unexpected-end-tag",
- "(1,33): unexpected-end-tag-implies-table-voodoo",
- "(1,33): unexpected-end-tag",
- "(1,37): unexpected-end-tag-implies-table-voodoo",
- "(1,37): unexpected-end-tag",
- "(1,46): unexpected-end-tag-implies-table-voodoo",
- "(1,46): unexpected-end-tag",
- "(1,50): unexpected-end-tag-implies-table-voodoo",
- "(1,50): unexpected-end-tag",
- "(1,58): unexpected-end-tag-implies-table-voodoo",
- "(1,58): unexpected-end-tag",
- "(1,63): unexpected-end-tag-implies-table-voodoo",
- "(1,63): unexpected-end-tag",
- "(1,69): unexpected-end-tag-implies-table-voodoo",
- "(1,69): end-tag-too-early",
- "(1,75): unexpected-end-tag-implies-table-voodoo",
- "(1,75): unexpected-end-tag",
- "(1,83): unexpected-end-tag-implies-table-voodoo",
- "(1,83): unexpected-end-tag",
- "(1,90): unexpected-end-tag-implies-table-voodoo",
- "(1,90): unexpected-end-tag",
- "(1,99): unexpected-end-tag-implies-table-voodoo",
- "(1,99): unexpected-end-tag",
- "(1,104): unexpected-end-tag-implies-table-voodoo",
- "(1,104): end-tag-too-early",
- "(1,109): unexpected-end-tag-implies-table-voodoo",
- "(1,109): end-tag-too-early",
- "(1,114): unexpected-end-tag-implies-table-voodoo",
- "(1,114): end-tag-too-early",
- "(1,119): unexpected-end-tag-implies-table-voodoo",
- "(1,119): end-tag-too-early",
- "(1,124): unexpected-end-tag-implies-table-voodoo",
- "(1,124): end-tag-too-early",
- "(1,129): unexpected-end-tag-implies-table-voodoo",
- "(1,129): end-tag-too-early",
- "(1,136): unexpected-end-tag-in-table-row",
- "(1,141): unexpected-end-tag-implies-table-voodoo",
- "(1,141): unexpected-end-tag-treated-as",
- "(1,145): unexpected-end-tag-implies-table-voodoo",
- "(1,145): unexpected-end-tag",
- "(1,151): unexpected-end-tag-implies-table-voodoo",
- "(1,151): unexpected-end-tag",
- "(1,159): unexpected-end-tag-implies-table-voodoo",
- "(1,159): unexpected-end-tag",
- "(1,166): unexpected-end-tag-implies-table-voodoo",
- "(1,166): unexpected-end-tag",
- "(1,174): unexpected-end-tag-implies-table-voodoo",
- "(1,174): unexpected-end-tag",
- "(1,183): unexpected-end-tag-implies-table-voodoo",
- "(1,183): unexpected-end-tag",
- "(1,196): unexpected-end-tag",
- "(1,201): unexpected-end-tag",
- "(1,206): unexpected-end-tag",
- "(1,214): unexpected-end-tag",
- "(1,221): unexpected-end-tag",
- "(1,228): unexpected-end-tag",
- "(1,236): unexpected-end-tag",
- "(1,241): unexpected-end-tag",
- "(1,249): unexpected-end-tag",
- "(1,255): unexpected-end-tag",
- "(1,262): unexpected-end-tag",
- "(1,269): unexpected-end-tag",
- "(1,280): unexpected-end-tag",
- "(1,290): unexpected-end-tag",
- "(1,298): unexpected-end-tag",
- "(1,307): unexpected-end-tag",
- "(1,311): unexpected-end-tag",
- "(1,316): unexpected-end-tag",
- "(1,321): unexpected-end-tag",
- "(1,331): unexpected-end-tag",
- "(1,342): unexpected-end-tag",
- "(1,350): unexpected-end-tag",
- "(1,358): unexpected-end-tag",
- "(1,366): unexpected-end-tag",
- "(1,376): end-tag-too-early",
- "(1,389): end-tag-too-early",
- "(1,398): end-tag-too-early",
- "(1,404): end-tag-too-early",
- "(1,410): end-tag-too-early",
- "(1,415): end-tag-too-early",
- "(1,426): end-tag-too-early",
- "(1,436): end-tag-too-early",
- "(1,443): end-tag-too-early",
- "(1,448): end-tag-too-early",
- "(1,453): end-tag-too-early",
- "(1,458): unexpected-end-tag",
- "(1,465): unexpected-end-tag",
- "(1,471): unexpected-end-tag",
- "(1,478): unexpected-end-tag",
- "(1,487): end-tag-too-early",
- "(1,497): end-tag-too-early",
- "(1,506): end-tag-too-early",
- "(1,524): expected-eof-but-got-end-tag",
- "(1,524): unexpected-end-tag",
- "(1,531): unexpected-end-tag",
- "(1,540): unexpected-end-tag",
- "(1,548): unexpected-end-tag",
- "(1,558): unexpected-end-tag",
- "(1,568): unexpected-end-tag",
- "(1,579): unexpected-end-tag",
- "(1,590): unexpected-end-tag",
- "(1,601): unexpected-end-tag",
- "(1,610): unexpected-end-tag",
- "(1,622): unexpected-end-tag",
- "(1,633): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "br": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "br"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><br><table><tbody><tr></tr></tbody></table><p></p></body></html>",
- "noQuirksBodyHtml": "<br><table><tbody><tr></tr></tbody></table><p></p>"
- }
- },
- {
- "data": "<frameset>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,10): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- }
- ],
- "tests10.dat": [
- {
- "data": "<!DOCTYPE html><svg></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><svg></svg><![CDATA[a]]>",
- "errors": [
- "(1,28) expected-dashes-or-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "comment": "[CDATA[a]]"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg></svg><!--[CDATA[a]]--></body></html>",
- "noQuirksBodyHtml": "<svg></svg><!--[CDATA[a]]-->"
- }
- },
- {
- "data": "<!DOCTYPE html><body><svg></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><select><svg></svg></select>",
- "errors": [
- "(1,34) unexpected-start-tag-in-select",
- "(1,40) unexpected-end-tag-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><select><option><svg></svg></option></select>",
- "errors": [
- "(1,42) unexpected-start-tag-in-select",
- "(1,48) unexpected-end-tag-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
- "noQuirksBodyHtml": "<select><option></option></select>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><svg></svg></table>",
- "errors": [
- "(1,33) foster-parenting-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg></svg><table></table></body></html>",
- "noQuirksBodyHtml": "<svg></svg><table></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><svg><g>foo</g></svg></table>",
- "errors": [
- "(1,33) foster-parenting-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g></svg><table></table></body></html>",
- "noQuirksBodyHtml": "<svg><g>foo</g></svg><table></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table>",
- "errors": [
- "(1,33) foster-parenting-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table></table></body></html>",
- "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table>",
- "errors": [
- "(1,40) foster-parenting-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true,
- "table": true,
- "tbody": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table><tbody></tbody></table></body></html>",
- "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table><tbody></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table>",
- "errors": [
- "(1,44) foster-parenting-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true,
- "svg g": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true,
- "svg g": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</p></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</p></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "svg svg": true,
- "svg g": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
- "errors": [
- "(1,65) unexpected-html-element-in-foreign-content"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "svg svg": true,
- "svg g": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g><p>baz</p></svg></caption></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux",
- "errors": [
- "(1,73) unexpected-end-tag",
- "(1,73) expected-one-end-tag-but-got-another"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "svg svg": true,
- "svg g": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- },
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g>baz</svg></caption></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g>baz</svg></caption></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
- "errors": [
- "(1,43) foster-parenting-start-tag svg",
- "(1,66) unexpected HTML-like start tag token in foreign content",
- "(1,66) foster-parenting-start-tag",
- "(1,67) foster-parenting-character",
- "(1,68) foster-parenting-character",
- "(1,69) foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true,
- "p": true,
- "table": true,
- "colgroup": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup"
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p><table><colgroup></colgroup></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg><table><colgroup></colgroup></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
- "errors": [
- "(1,49) unexpected-start-tag-in-select",
- "(1,52) unexpected-start-tag-in-select",
- "(1,59) unexpected-end-tag-in-select",
- "(1,62) unexpected-start-tag-in-select",
- "(1,69) unexpected-end-tag-in-select",
- "(1,72) unexpected-start-tag-in-select",
- "(1,83) unexpected-table-element-end-tag-in-select-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "select": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "text": "foobarbaz"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
- "errors": [
- "(1,36) unexpected-start-tag-implies-table-voodoo",
- "(1,41) unexpected-start-tag-in-select",
- "(1,44) unexpected-start-tag-in-select",
- "(1,51) unexpected-end-tag-in-select",
- "(1,54) unexpected-start-tag-in-select",
- "(1,61) unexpected-end-tag-in-select",
- "(1,64) unexpected-start-tag-in-select",
- "(1,75) unexpected-table-element-end-tag-in-select-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "table": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "text": "foobarbaz"
- }
- ]
- },
- {
- "tag": "table"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select>foobarbaz</select><table></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<select>foobarbaz</select><table></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz",
- "errors": [
- "(1,40) expected-eof-but-got-start-tag",
- "(1,63) unexpected-html-element-in-foreign-content"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p></body></html>",
- "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz",
- "errors": [
- "(1,33) unexpected-start-tag-after-body",
- "(1,56) unexpected-html-element-in-foreign-content"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p></body></html>",
- "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><frameset><svg><g></g><g></g><p><span>",
- "errors": [
- "(1,30) unexpected-start-tag-in-frameset",
- "(1,33) unexpected-start-tag-in-frameset",
- "(1,37) unexpected-end-tag-in-frameset",
- "(1,40) unexpected-start-tag-in-frameset",
- "(1,44) unexpected-end-tag-in-frameset",
- "(1,47) unexpected-start-tag-in-frameset",
- "(1,53) unexpected-start-tag-in-frameset",
- "(1,53) eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<svg><g></g><g></g><p><span></span></p></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span>",
- "errors": [
- "(1,41) unexpected-start-tag-after-frameset",
- "(1,44) unexpected-start-tag-after-frameset",
- "(1,48) unexpected-end-tag-after-frameset",
- "(1,51) unexpected-start-tag-after-frameset",
- "(1,55) unexpected-end-tag-after-frameset",
- "(1,58) unexpected-start-tag-after-frameset",
- "(1,64) unexpected-start-tag-after-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<svg><g></g><g></g><p><span></span></p></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "xlink:href",
- "value": "foo"
- }
- ],
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "href",
- "ns": "http://www.w3.org/1999/xlink",
- "value": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\"><svg xlink:href=\"foo\"></svg></body></html>",
- "noQuirksBodyHtml": "<svg xlink:href=\"foo\"></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "xlink:href",
- "value": "foo"
- },
- {
- "name": "xml:lang",
- "value": "en"
- }
- ],
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "href",
- "ns": "http://www.w3.org/1999/xlink",
- "value": "foo"
- },
- {
- "name": "lang",
- "ns": "http://www.w3.org/XML/1998/namespace",
- "value": "en"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg></body></html>",
- "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "xlink:href",
- "value": "foo"
- },
- {
- "name": "xml:lang",
- "value": "en"
- }
- ],
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "href",
- "ns": "http://www.w3.org/1999/xlink",
- "value": "foo"
- },
- {
- "name": "lang",
- "ns": "http://www.w3.org/XML/1998/namespace",
- "value": "en"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg></body></html>",
- "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg g": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "xlink:href",
- "value": "foo"
- },
- {
- "name": "xml:lang",
- "value": "en"
- }
- ],
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "href",
- "ns": "http://www.w3.org/1999/xlink",
- "value": "foo"
- },
- {
- "name": "lang",
- "ns": "http://www.w3.org/XML/1998/namespace",
- "value": "en"
- }
- ]
- },
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g>bar</svg></body></html>",
- "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g>bar</svg>"
- }
- },
- {
- "data": "<svg></path>",
- "errors": [
- "(1,5) expected-doctype-but-got-start-tag",
- "(1,12) unexpected-end-tag",
- "(1,12) unexpected-end-tag",
- "(1,12) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<div><svg></div>a",
- "errors": [
- "(1,5) expected-doctype-but-got-start-tag",
- "(1,16) unexpected-end-tag",
- "(1,16) end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><svg></svg></div>a</body></html>",
- "noQuirksBodyHtml": "<div><svg></svg></div>a"
- }
- },
- {
- "data": "<div><svg><path></div>a",
- "errors": [
- "(1,5) expected-doctype-but-got-start-tag",
- "(1,22) unexpected-end-tag",
- "(1,22) end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "svg svg": true,
- "svg path": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><svg><path></path></svg></div>a</body></html>",
- "noQuirksBodyHtml": "<div><svg><path></path></svg></div>a"
- }
- },
- {
- "data": "<div><svg><path></svg><path>",
- "errors": [
- "(1,5) expected-doctype-but-got-start-tag",
- "(1,22) unexpected-end-tag",
- "(1,28) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "svg svg": true,
- "svg path": true,
- "path": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- },
- {
- "tag": "path"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><svg><path></path></svg><path></path></div></body></html>",
- "noQuirksBodyHtml": "<div><svg><path></path></svg><path></path></div>"
- }
- },
- {
- "data": "<div><svg><path><foreignObject><math></div>a",
- "errors": [
- "(1,5) expected-doctype-but-got-start-tag",
- "(1,43) unexpected-end-tag",
- "(1,43) end-tag-too-early",
- "(1,44) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "svg svg": true,
- "svg path": true,
- "svg foreignObject": true,
- "math math": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><svg><path><foreignObject><math>a</math></foreignObject></path></svg></div></body></html>",
- "noQuirksBodyHtml": "<div><svg><path><foreignObject><math>a</math></foreignObject></path></svg></div>"
- }
- },
- {
- "data": "<div><svg><path><foreignObject><p></div>a",
- "errors": [
- "(1,5) expected-doctype-but-got-start-tag",
- "(1,40) end-tag-too-early",
- "(1,41) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "svg svg": true,
- "svg path": true,
- "svg foreignObject": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><svg><path><foreignObject><p>a</p></foreignObject></path></svg></div></body></html>",
- "noQuirksBodyHtml": "<div><svg><path><foreignObject><p>a</p></foreignObject></path></svg></div>"
- }
- },
- {
- "data": "<!DOCTYPE html><svg><desc><div><svg><ul>a",
- "errors": [
- "(1,40) unexpected-html-element-in-foreign-content",
- "(1,41) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg desc": true,
- "div": true,
- "ul": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "desc",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "ul",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><desc><div><svg></svg><ul>a</ul></div></desc></svg></body></html>",
- "noQuirksBodyHtml": "<svg><desc><div><svg><ul>a</ul></svg></div></desc></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><svg><desc><svg><ul>a",
- "errors": [
- "(1,35) unexpected-html-element-in-foreign-content",
- "(1,36) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg desc": true,
- "ul": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "desc",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "ul",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><desc><svg></svg><ul>a</ul></desc></svg></body></html>",
- "noQuirksBodyHtml": "<svg><desc><svg><ul>a</ul></svg></desc></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><p><svg><desc><p>",
- "errors": [
- "(1,32) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "svg svg": true,
- "svg desc": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "desc",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><svg><desc><p></p></desc></svg></p></body></html>",
- "noQuirksBodyHtml": "<p><svg><desc><p></p></desc></svg></p>"
- }
- },
- {
- "data": "<!DOCTYPE html><p><svg><title><p>",
- "errors": [
- "(1,33) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "svg svg": true,
- "svg title": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "title",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><svg><title><p></p></title></svg></p></body></html>",
- "noQuirksBodyHtml": "<p><svg><title><p></p></title></svg></p>"
- }
- },
- {
- "data": "<div><svg><path><foreignObject><p></foreignObject><p>",
- "errors": [
- "(1,5) expected-doctype-but-got-start-tag",
- "(1,50) unexpected-end-tag",
- "(1,53) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "svg svg": true,
- "svg path": true,
- "svg foreignObject": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><svg><path><foreignObject><p></p><p></p></foreignObject></path></svg></div></body></html>",
- "noQuirksBodyHtml": "<div><svg><path><foreignObject><p></p><p></p></foreignObject></path></svg></div>"
- }
- },
- {
- "data": "<math><mi><div><object><div><span></span></div></object></div></mi><mi>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,71) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "div": true,
- "object": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "object",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mi><div><object><div><span></span></div></object></div></mi><mi></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><mi><div><object><div><span></span></div></object></div></mi><mi></mi></math>"
- }
- },
- {
- "data": "<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,83) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "svg svg": true,
- "svg foreignObject": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi></mi></math>"
- }
- },
- {
- "data": "<svg><script></script><path>",
- "errors": [
- "(1,5) expected-doctype-but-got-start-tag",
- "(1,28) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg script": true,
- "svg path": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "script",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><script></script><path></path></svg></body></html>",
- "noQuirksBodyHtml": "<svg><script></script><path></path></svg>"
- }
- },
- {
- "data": "<table><svg></svg><tr>",
- "errors": [
- "(1,7) expected-doctype-but-got-start-tag",
- "(1,12) unexpected-start-tag-implies-table-voodoo",
- "(1,22) eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "table": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<svg></svg><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<math><mi><mglyph>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,18) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "math mglyph": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mi><mglyph></mglyph></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><mi><mglyph></mglyph></mi></math>"
- }
- },
- {
- "data": "<math><mi><malignmark>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,22) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mi><malignmark></malignmark></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><mi><malignmark></malignmark></mi></math>"
- }
- },
- {
- "data": "<math><mo><mglyph>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,18) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mo": true,
- "math mglyph": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mo><mglyph></mglyph></mo></math></body></html>",
- "noQuirksBodyHtml": "<math><mo><mglyph></mglyph></mo></math>"
- }
- },
- {
- "data": "<math><mo><malignmark>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,22) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mo": true,
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mo><malignmark></malignmark></mo></math></body></html>",
- "noQuirksBodyHtml": "<math><mo><malignmark></malignmark></mo></math>"
- }
- },
- {
- "data": "<math><mn><mglyph>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,18) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mn": true,
- "math mglyph": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mn><mglyph></mglyph></mn></math></body></html>",
- "noQuirksBodyHtml": "<math><mn><mglyph></mglyph></mn></math>"
- }
- },
- {
- "data": "<math><mn><malignmark>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,22) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mn": true,
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mn><malignmark></malignmark></mn></math></body></html>",
- "noQuirksBodyHtml": "<math><mn><malignmark></malignmark></mn></math>"
- }
- },
- {
- "data": "<math><ms><mglyph>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,18) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math ms": true,
- "math mglyph": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><ms><mglyph></mglyph></ms></math></body></html>",
- "noQuirksBodyHtml": "<math><ms><mglyph></mglyph></ms></math>"
- }
- },
- {
- "data": "<math><ms><malignmark>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,22) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math ms": true,
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><ms><malignmark></malignmark></ms></math></body></html>",
- "noQuirksBodyHtml": "<math><ms><malignmark></malignmark></ms></math>"
- }
- },
- {
- "data": "<math><mtext><mglyph>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,21) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mtext": true,
- "math mglyph": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mtext><mglyph></mglyph></mtext></math></body></html>",
- "noQuirksBodyHtml": "<math><mtext><mglyph></mglyph></mtext></math>"
- }
- },
- {
- "data": "<math><mtext><malignmark>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,25) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mtext": true,
- "math malignmark": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "malignmark",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mtext><malignmark></malignmark></mtext></math></body></html>",
- "noQuirksBodyHtml": "<math><mtext><malignmark></malignmark></mtext></math>"
- }
- },
- {
- "data": "<math><annotation-xml><svg></svg></annotation-xml><mi>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,54) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "svg svg": true,
- "math mi": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml><svg></svg></annotation-xml><mi></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml><svg></svg></annotation-xml><mi></mi></math>"
- }
- },
- {
- "data": "<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,144) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "svg svg": true,
- "svg foreignObject": true,
- "div": true,
- "math mi": true,
- "span": true,
- "svg path": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- },
- {
- "tag": "span"
- }
- ]
- }
- ]
- },
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi></mi></math>"
- }
- },
- {
- "data": "<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi>",
- "errors": [
- "(1,6) expected-doctype-but-got-start-tag",
- "(1,153) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "svg svg": true,
- "svg foreignObject": true,
- "math mi": true,
- "math mo": true,
- "span": true,
- "svg path": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- },
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- },
- {
- "tag": "span"
- }
- ]
- },
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi></mi></math>"
- }
- }
- ],
- "tests11.dat": [
- {
- "data": "<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "attributeName",
- "value": ""
- },
- {
- "name": "attributeType",
- "value": ""
- },
- {
- "name": "baseFrequency",
- "value": ""
- },
- {
- "name": "baseProfile",
- "value": ""
- },
- {
- "name": "calcMode",
- "value": ""
- },
- {
- "name": "clipPathUnits",
- "value": ""
- },
- {
- "name": "diffuseConstant",
- "value": ""
- },
- {
- "name": "edgeMode",
- "value": ""
- },
- {
- "name": "filterUnits",
- "value": ""
- },
- {
- "name": "glyphRef",
- "value": ""
- },
- {
- "name": "gradientTransform",
- "value": ""
- },
- {
- "name": "gradientUnits",
- "value": ""
- },
- {
- "name": "kernelMatrix",
- "value": ""
- },
- {
- "name": "kernelUnitLength",
- "value": ""
- },
- {
- "name": "keyPoints",
- "value": ""
- },
- {
- "name": "keySplines",
- "value": ""
- },
- {
- "name": "keyTimes",
- "value": ""
- },
- {
- "name": "lengthAdjust",
- "value": ""
- },
- {
- "name": "limitingConeAngle",
- "value": ""
- },
- {
- "name": "markerHeight",
- "value": ""
- },
- {
- "name": "markerUnits",
- "value": ""
- },
- {
- "name": "markerWidth",
- "value": ""
- },
- {
- "name": "maskContentUnits",
- "value": ""
- },
- {
- "name": "maskUnits",
- "value": ""
- },
- {
- "name": "numOctaves",
- "value": ""
- },
- {
- "name": "pathLength",
- "value": ""
- },
- {
- "name": "patternContentUnits",
- "value": ""
- },
- {
- "name": "patternTransform",
- "value": ""
- },
- {
- "name": "patternUnits",
- "value": ""
- },
- {
- "name": "pointsAtX",
- "value": ""
- },
- {
- "name": "pointsAtY",
- "value": ""
- },
- {
- "name": "pointsAtZ",
- "value": ""
- },
- {
- "name": "preserveAlpha",
- "value": ""
- },
- {
- "name": "preserveAspectRatio",
- "value": ""
- },
- {
- "name": "primitiveUnits",
- "value": ""
- },
- {
- "name": "refX",
- "value": ""
- },
- {
- "name": "refY",
- "value": ""
- },
- {
- "name": "repeatCount",
- "value": ""
- },
- {
- "name": "repeatDur",
- "value": ""
- },
- {
- "name": "requiredExtensions",
- "value": ""
- },
- {
- "name": "requiredFeatures",
- "value": ""
- },
- {
- "name": "specularConstant",
- "value": ""
- },
- {
- "name": "specularExponent",
- "value": ""
- },
- {
- "name": "spreadMethod",
- "value": ""
- },
- {
- "name": "startOffset",
- "value": ""
- },
- {
- "name": "stdDeviation",
- "value": ""
- },
- {
- "name": "stitchTiles",
- "value": ""
- },
- {
- "name": "surfaceScale",
- "value": ""
- },
- {
- "name": "systemLanguage",
- "value": ""
- },
- {
- "name": "tableValues",
- "value": ""
- },
- {
- "name": "targetX",
- "value": ""
- },
- {
- "name": "targetY",
- "value": ""
- },
- {
- "name": "textLength",
- "value": ""
- },
- {
- "name": "viewBox",
- "value": ""
- },
- {
- "name": "viewTarget",
- "value": ""
- },
- {
- "name": "xChannelSelector",
- "value": ""
- },
- {
- "name": "yChannelSelector",
- "value": ""
- },
- {
- "name": "zoomAndPan",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
- "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' DIFFUSECONSTANT='' EDGEMODE='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "attributeName",
- "value": ""
- },
- {
- "name": "attributeType",
- "value": ""
- },
- {
- "name": "baseFrequency",
- "value": ""
- },
- {
- "name": "baseProfile",
- "value": ""
- },
- {
- "name": "calcMode",
- "value": ""
- },
- {
- "name": "clipPathUnits",
- "value": ""
- },
- {
- "name": "diffuseConstant",
- "value": ""
- },
- {
- "name": "edgeMode",
- "value": ""
- },
- {
- "name": "filterUnits",
- "value": ""
- },
- {
- "name": "glyphRef",
- "value": ""
- },
- {
- "name": "gradientTransform",
- "value": ""
- },
- {
- "name": "gradientUnits",
- "value": ""
- },
- {
- "name": "kernelMatrix",
- "value": ""
- },
- {
- "name": "kernelUnitLength",
- "value": ""
- },
- {
- "name": "keyPoints",
- "value": ""
- },
- {
- "name": "keySplines",
- "value": ""
- },
- {
- "name": "keyTimes",
- "value": ""
- },
- {
- "name": "lengthAdjust",
- "value": ""
- },
- {
- "name": "limitingConeAngle",
- "value": ""
- },
- {
- "name": "markerHeight",
- "value": ""
- },
- {
- "name": "markerUnits",
- "value": ""
- },
- {
- "name": "markerWidth",
- "value": ""
- },
- {
- "name": "maskContentUnits",
- "value": ""
- },
- {
- "name": "maskUnits",
- "value": ""
- },
- {
- "name": "numOctaves",
- "value": ""
- },
- {
- "name": "pathLength",
- "value": ""
- },
- {
- "name": "patternContentUnits",
- "value": ""
- },
- {
- "name": "patternTransform",
- "value": ""
- },
- {
- "name": "patternUnits",
- "value": ""
- },
- {
- "name": "pointsAtX",
- "value": ""
- },
- {
- "name": "pointsAtY",
- "value": ""
- },
- {
- "name": "pointsAtZ",
- "value": ""
- },
- {
- "name": "preserveAlpha",
- "value": ""
- },
- {
- "name": "preserveAspectRatio",
- "value": ""
- },
- {
- "name": "primitiveUnits",
- "value": ""
- },
- {
- "name": "refX",
- "value": ""
- },
- {
- "name": "refY",
- "value": ""
- },
- {
- "name": "repeatCount",
- "value": ""
- },
- {
- "name": "repeatDur",
- "value": ""
- },
- {
- "name": "requiredExtensions",
- "value": ""
- },
- {
- "name": "requiredFeatures",
- "value": ""
- },
- {
- "name": "specularConstant",
- "value": ""
- },
- {
- "name": "specularExponent",
- "value": ""
- },
- {
- "name": "spreadMethod",
- "value": ""
- },
- {
- "name": "startOffset",
- "value": ""
- },
- {
- "name": "stdDeviation",
- "value": ""
- },
- {
- "name": "stitchTiles",
- "value": ""
- },
- {
- "name": "surfaceScale",
- "value": ""
- },
- {
- "name": "systemLanguage",
- "value": ""
- },
- {
- "name": "tableValues",
- "value": ""
- },
- {
- "name": "targetX",
- "value": ""
- },
- {
- "name": "targetY",
- "value": ""
- },
- {
- "name": "textLength",
- "value": ""
- },
- {
- "name": "viewBox",
- "value": ""
- },
- {
- "name": "viewTarget",
- "value": ""
- },
- {
- "name": "xChannelSelector",
- "value": ""
- },
- {
- "name": "yChannelSelector",
- "value": ""
- },
- {
- "name": "zoomAndPan",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
- "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' diffuseconstant='' edgemode='' filterunits='' filterres='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "attributeName",
- "value": ""
- },
- {
- "name": "attributeType",
- "value": ""
- },
- {
- "name": "baseFrequency",
- "value": ""
- },
- {
- "name": "baseProfile",
- "value": ""
- },
- {
- "name": "calcMode",
- "value": ""
- },
- {
- "name": "clipPathUnits",
- "value": ""
- },
- {
- "name": "diffuseConstant",
- "value": ""
- },
- {
- "name": "edgeMode",
- "value": ""
- },
- {
- "name": "filterUnits",
- "value": ""
- },
- {
- "name": "filterres",
- "value": ""
- },
- {
- "name": "glyphRef",
- "value": ""
- },
- {
- "name": "gradientTransform",
- "value": ""
- },
- {
- "name": "gradientUnits",
- "value": ""
- },
- {
- "name": "kernelMatrix",
- "value": ""
- },
- {
- "name": "kernelUnitLength",
- "value": ""
- },
- {
- "name": "keyPoints",
- "value": ""
- },
- {
- "name": "keySplines",
- "value": ""
- },
- {
- "name": "keyTimes",
- "value": ""
- },
- {
- "name": "lengthAdjust",
- "value": ""
- },
- {
- "name": "limitingConeAngle",
- "value": ""
- },
- {
- "name": "markerHeight",
- "value": ""
- },
- {
- "name": "markerUnits",
- "value": ""
- },
- {
- "name": "markerWidth",
- "value": ""
- },
- {
- "name": "maskContentUnits",
- "value": ""
- },
- {
- "name": "maskUnits",
- "value": ""
- },
- {
- "name": "numOctaves",
- "value": ""
- },
- {
- "name": "pathLength",
- "value": ""
- },
- {
- "name": "patternContentUnits",
- "value": ""
- },
- {
- "name": "patternTransform",
- "value": ""
- },
- {
- "name": "patternUnits",
- "value": ""
- },
- {
- "name": "pointsAtX",
- "value": ""
- },
- {
- "name": "pointsAtY",
- "value": ""
- },
- {
- "name": "pointsAtZ",
- "value": ""
- },
- {
- "name": "preserveAlpha",
- "value": ""
- },
- {
- "name": "preserveAspectRatio",
- "value": ""
- },
- {
- "name": "primitiveUnits",
- "value": ""
- },
- {
- "name": "refX",
- "value": ""
- },
- {
- "name": "refY",
- "value": ""
- },
- {
- "name": "repeatCount",
- "value": ""
- },
- {
- "name": "repeatDur",
- "value": ""
- },
- {
- "name": "requiredExtensions",
- "value": ""
- },
- {
- "name": "requiredFeatures",
- "value": ""
- },
- {
- "name": "specularConstant",
- "value": ""
- },
- {
- "name": "specularExponent",
- "value": ""
- },
- {
- "name": "spreadMethod",
- "value": ""
- },
- {
- "name": "startOffset",
- "value": ""
- },
- {
- "name": "stdDeviation",
- "value": ""
- },
- {
- "name": "stitchTiles",
- "value": ""
- },
- {
- "name": "surfaceScale",
- "value": ""
- },
- {
- "name": "systemLanguage",
- "value": ""
- },
- {
- "name": "tableValues",
- "value": ""
- },
- {
- "name": "targetX",
- "value": ""
- },
- {
- "name": "targetY",
- "value": ""
- },
- {
- "name": "textLength",
- "value": ""
- },
- {
- "name": "viewBox",
- "value": ""
- },
- {
- "name": "viewTarget",
- "value": ""
- },
- {
- "name": "xChannelSelector",
- "value": ""
- },
- {
- "name": "yChannelSelector",
- "value": ""
- },
- {
- "name": "zoomAndPan",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" filterres=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
- "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" filterres=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "attributename",
- "value": ""
- },
- {
- "name": "attributetype",
- "value": ""
- },
- {
- "name": "basefrequency",
- "value": ""
- },
- {
- "name": "baseprofile",
- "value": ""
- },
- {
- "name": "calcmode",
- "value": ""
- },
- {
- "name": "clippathunits",
- "value": ""
- },
- {
- "name": "diffuseconstant",
- "value": ""
- },
- {
- "name": "edgemode",
- "value": ""
- },
- {
- "name": "filterunits",
- "value": ""
- },
- {
- "name": "glyphref",
- "value": ""
- },
- {
- "name": "gradienttransform",
- "value": ""
- },
- {
- "name": "gradientunits",
- "value": ""
- },
- {
- "name": "kernelmatrix",
- "value": ""
- },
- {
- "name": "kernelunitlength",
- "value": ""
- },
- {
- "name": "keypoints",
- "value": ""
- },
- {
- "name": "keysplines",
- "value": ""
- },
- {
- "name": "keytimes",
- "value": ""
- },
- {
- "name": "lengthadjust",
- "value": ""
- },
- {
- "name": "limitingconeangle",
- "value": ""
- },
- {
- "name": "markerheight",
- "value": ""
- },
- {
- "name": "markerunits",
- "value": ""
- },
- {
- "name": "markerwidth",
- "value": ""
- },
- {
- "name": "maskcontentunits",
- "value": ""
- },
- {
- "name": "maskunits",
- "value": ""
- },
- {
- "name": "numoctaves",
- "value": ""
- },
- {
- "name": "pathlength",
- "value": ""
- },
- {
- "name": "patterncontentunits",
- "value": ""
- },
- {
- "name": "patterntransform",
- "value": ""
- },
- {
- "name": "patternunits",
- "value": ""
- },
- {
- "name": "pointsatx",
- "value": ""
- },
- {
- "name": "pointsaty",
- "value": ""
- },
- {
- "name": "pointsatz",
- "value": ""
- },
- {
- "name": "preservealpha",
- "value": ""
- },
- {
- "name": "preserveaspectratio",
- "value": ""
- },
- {
- "name": "primitiveunits",
- "value": ""
- },
- {
- "name": "refx",
- "value": ""
- },
- {
- "name": "refy",
- "value": ""
- },
- {
- "name": "repeatcount",
- "value": ""
- },
- {
- "name": "repeatdur",
- "value": ""
- },
- {
- "name": "requiredextensions",
- "value": ""
- },
- {
- "name": "requiredfeatures",
- "value": ""
- },
- {
- "name": "specularconstant",
- "value": ""
- },
- {
- "name": "specularexponent",
- "value": ""
- },
- {
- "name": "spreadmethod",
- "value": ""
- },
- {
- "name": "startoffset",
- "value": ""
- },
- {
- "name": "stddeviation",
- "value": ""
- },
- {
- "name": "stitchtiles",
- "value": ""
- },
- {
- "name": "surfacescale",
- "value": ""
- },
- {
- "name": "systemlanguage",
- "value": ""
- },
- {
- "name": "tablevalues",
- "value": ""
- },
- {
- "name": "targetx",
- "value": ""
- },
- {
- "name": "targety",
- "value": ""
- },
- {
- "name": "textlength",
- "value": ""
- },
- {
- "name": "viewbox",
- "value": ""
- },
- {
- "name": "viewtarget",
- "value": ""
- },
- {
- "name": "xchannelselector",
- "value": ""
- },
- {
- "name": "ychannelselector",
- "value": ""
- },
- {
- "name": "zoomandpan",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math attributename=\"\" attributetype=\"\" basefrequency=\"\" baseprofile=\"\" calcmode=\"\" clippathunits=\"\" diffuseconstant=\"\" edgemode=\"\" filterunits=\"\" glyphref=\"\" gradienttransform=\"\" gradientunits=\"\" kernelmatrix=\"\" kernelunitlength=\"\" keypoints=\"\" keysplines=\"\" keytimes=\"\" lengthadjust=\"\" limitingconeangle=\"\" markerheight=\"\" markerunits=\"\" markerwidth=\"\" maskcontentunits=\"\" maskunits=\"\" numoctaves=\"\" pathlength=\"\" patterncontentunits=\"\" patterntransform=\"\" patternunits=\"\" pointsatx=\"\" pointsaty=\"\" pointsatz=\"\" preservealpha=\"\" preserveaspectratio=\"\" primitiveunits=\"\" refx=\"\" refy=\"\" repeatcount=\"\" repeatdur=\"\" requiredextensions=\"\" requiredfeatures=\"\" specularconstant=\"\" specularexponent=\"\" spreadmethod=\"\" startoffset=\"\" stddeviation=\"\" stitchtiles=\"\" surfacescale=\"\" systemlanguage=\"\" tablevalues=\"\" targetx=\"\" targety=\"\" textlength=\"\" viewbox=\"\" viewtarget=\"\" xchannelselector=\"\" ychannelselector=\"\" zoomandpan=\"\"></math></body></html>",
- "noQuirksBodyHtml": "<math attributename=\"\" attributetype=\"\" basefrequency=\"\" baseprofile=\"\" calcmode=\"\" clippathunits=\"\" diffuseconstant=\"\" edgemode=\"\" filterunits=\"\" glyphref=\"\" gradienttransform=\"\" gradientunits=\"\" kernelmatrix=\"\" kernelunitlength=\"\" keypoints=\"\" keysplines=\"\" keytimes=\"\" lengthadjust=\"\" limitingconeangle=\"\" markerheight=\"\" markerunits=\"\" markerwidth=\"\" maskcontentunits=\"\" maskunits=\"\" numoctaves=\"\" pathlength=\"\" patterncontentunits=\"\" patterntransform=\"\" patternunits=\"\" pointsatx=\"\" pointsaty=\"\" pointsatz=\"\" preservealpha=\"\" preserveaspectratio=\"\" primitiveunits=\"\" refx=\"\" refy=\"\" repeatcount=\"\" repeatdur=\"\" requiredextensions=\"\" requiredfeatures=\"\" specularconstant=\"\" specularexponent=\"\" spreadmethod=\"\" startoffset=\"\" stddeviation=\"\" stitchtiles=\"\" surfacescale=\"\" systemlanguage=\"\" tablevalues=\"\" targetx=\"\" targety=\"\" textlength=\"\" viewbox=\"\" viewtarget=\"\" xchannelselector=\"\" ychannelselector=\"\" zoomandpan=\"\"></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><svg contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "contentscripttype",
- "value": ""
- },
- {
- "name": "contentstyletype",
- "value": ""
- },
- {
- "name": "externalresourcesrequired",
- "value": ""
- },
- {
- "name": "filterres",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
- "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><svg CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' EXTERNALRESOURCESREQUIRED='' FILTERRES=''></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "contentscripttype",
- "value": ""
- },
- {
- "name": "contentstyletype",
- "value": ""
- },
- {
- "name": "externalresourcesrequired",
- "value": ""
- },
- {
- "name": "filterres",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
- "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><svg contentscripttype='' contentstyletype='' externalresourcesrequired='' filterres=''></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "attrs": [
- {
- "name": "contentscripttype",
- "value": ""
- },
- {
- "name": "contentstyletype",
- "value": ""
- },
- {
- "name": "externalresourcesrequired",
- "value": ""
- },
- {
- "name": "filterres",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
- "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><math contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "contentscripttype",
- "value": ""
- },
- {
- "name": "contentstyletype",
- "value": ""
- },
- {
- "name": "externalresourcesrequired",
- "value": ""
- },
- {
- "name": "filterres",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></math></body></html>",
- "noQuirksBodyHtml": "<math contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg altGlyph": true,
- "svg altGlyphDef": true,
- "svg altGlyphItem": true,
- "svg animateColor": true,
- "svg animateMotion": true,
- "svg animateTransform": true,
- "svg clipPath": true,
- "svg feBlend": true,
- "svg feColorMatrix": true,
- "svg feComponentTransfer": true,
- "svg feComposite": true,
- "svg feConvolveMatrix": true,
- "svg feDiffuseLighting": true,
- "svg feDisplacementMap": true,
- "svg feDistantLight": true,
- "svg feFlood": true,
- "svg feFuncA": true,
- "svg feFuncB": true,
- "svg feFuncG": true,
- "svg feFuncR": true,
- "svg feGaussianBlur": true,
- "svg feImage": true,
- "svg feMerge": true,
- "svg feMergeNode": true,
- "svg feMorphology": true,
- "svg feOffset": true,
- "svg fePointLight": true,
- "svg feSpecularLighting": true,
- "svg feSpotLight": true,
- "svg feTile": true,
- "svg feTurbulence": true,
- "svg foreignObject": true,
- "svg glyphRef": true,
- "svg linearGradient": true,
- "svg radialGradient": true,
- "svg textPath": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "altGlyph",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "altGlyphDef",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "altGlyphItem",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateColor",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateMotion",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateTransform",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "clipPath",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feBlend",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feColorMatrix",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feComponentTransfer",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feComposite",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feConvolveMatrix",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDiffuseLighting",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDisplacementMap",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDistantLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFlood",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncA",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncB",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncG",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncR",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feGaussianBlur",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feImage",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMerge",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMergeNode",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMorphology",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feOffset",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "fePointLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feSpecularLighting",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feSpotLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feTile",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feTurbulence",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "glyphRef",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "linearGradient",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "radialGradient",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "textPath",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
- "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg altGlyph": true,
- "svg altGlyphDef": true,
- "svg altGlyphItem": true,
- "svg animateColor": true,
- "svg animateMotion": true,
- "svg animateTransform": true,
- "svg clipPath": true,
- "svg feBlend": true,
- "svg feColorMatrix": true,
- "svg feComponentTransfer": true,
- "svg feComposite": true,
- "svg feConvolveMatrix": true,
- "svg feDiffuseLighting": true,
- "svg feDisplacementMap": true,
- "svg feDistantLight": true,
- "svg feFlood": true,
- "svg feFuncA": true,
- "svg feFuncB": true,
- "svg feFuncG": true,
- "svg feFuncR": true,
- "svg feGaussianBlur": true,
- "svg feImage": true,
- "svg feMerge": true,
- "svg feMergeNode": true,
- "svg feMorphology": true,
- "svg feOffset": true,
- "svg fePointLight": true,
- "svg feSpecularLighting": true,
- "svg feSpotLight": true,
- "svg feTile": true,
- "svg feTurbulence": true,
- "svg foreignObject": true,
- "svg glyphRef": true,
- "svg linearGradient": true,
- "svg radialGradient": true,
- "svg textPath": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "altGlyph",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "altGlyphDef",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "altGlyphItem",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateColor",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateMotion",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateTransform",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "clipPath",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feBlend",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feColorMatrix",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feComponentTransfer",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feComposite",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feConvolveMatrix",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDiffuseLighting",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDisplacementMap",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDistantLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFlood",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncA",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncB",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncG",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncR",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feGaussianBlur",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feImage",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMerge",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMergeNode",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMorphology",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feOffset",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "fePointLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feSpecularLighting",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feSpotLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feTile",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feTurbulence",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "glyphRef",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "linearGradient",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "radialGradient",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "textPath",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
- "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg altGlyph": true,
- "svg altGlyphDef": true,
- "svg altGlyphItem": true,
- "svg animateColor": true,
- "svg animateMotion": true,
- "svg animateTransform": true,
- "svg clipPath": true,
- "svg feBlend": true,
- "svg feColorMatrix": true,
- "svg feComponentTransfer": true,
- "svg feComposite": true,
- "svg feConvolveMatrix": true,
- "svg feDiffuseLighting": true,
- "svg feDisplacementMap": true,
- "svg feDistantLight": true,
- "svg feFlood": true,
- "svg feFuncA": true,
- "svg feFuncB": true,
- "svg feFuncG": true,
- "svg feFuncR": true,
- "svg feGaussianBlur": true,
- "svg feImage": true,
- "svg feMerge": true,
- "svg feMergeNode": true,
- "svg feMorphology": true,
- "svg feOffset": true,
- "svg fePointLight": true,
- "svg feSpecularLighting": true,
- "svg feSpotLight": true,
- "svg feTile": true,
- "svg feTurbulence": true,
- "svg foreignObject": true,
- "svg glyphRef": true,
- "svg linearGradient": true,
- "svg radialGradient": true,
- "svg textPath": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "altGlyph",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "altGlyphDef",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "altGlyphItem",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateColor",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateMotion",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "animateTransform",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "clipPath",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feBlend",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feColorMatrix",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feComponentTransfer",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feComposite",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feConvolveMatrix",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDiffuseLighting",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDisplacementMap",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feDistantLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFlood",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncA",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncB",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncG",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feFuncR",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feGaussianBlur",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feImage",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMerge",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMergeNode",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feMorphology",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feOffset",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "fePointLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feSpecularLighting",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feSpotLight",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feTile",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "feTurbulence",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "glyphRef",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "linearGradient",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "radialGradient",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "textPath",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
- "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math altglyph": true,
- "math altglyphdef": true,
- "math altglyphitem": true,
- "math animatecolor": true,
- "math animatemotion": true,
- "math animatetransform": true,
- "math clippath": true,
- "math feblend": true,
- "math fecolormatrix": true,
- "math fecomponenttransfer": true,
- "math fecomposite": true,
- "math feconvolvematrix": true,
- "math fediffuselighting": true,
- "math fedisplacementmap": true,
- "math fedistantlight": true,
- "math feflood": true,
- "math fefunca": true,
- "math fefuncb": true,
- "math fefuncg": true,
- "math fefuncr": true,
- "math fegaussianblur": true,
- "math feimage": true,
- "math femerge": true,
- "math femergenode": true,
- "math femorphology": true,
- "math feoffset": true,
- "math fepointlight": true,
- "math fespecularlighting": true,
- "math fespotlight": true,
- "math fetile": true,
- "math feturbulence": true,
- "math foreignobject": true,
- "math glyphref": true,
- "math lineargradient": true,
- "math radialgradient": true,
- "math textpath": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "altglyph",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "altglyphdef",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "altglyphitem",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "animatecolor",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "animatemotion",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "animatetransform",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "clippath",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "feblend",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fecolormatrix",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fecomponenttransfer",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fecomposite",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "feconvolvematrix",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fediffuselighting",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fedisplacementmap",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fedistantlight",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "feflood",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fefunca",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fefuncb",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fefuncg",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fefuncr",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fegaussianblur",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "feimage",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "femerge",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "femergenode",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "femorphology",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "feoffset",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fepointlight",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fespecularlighting",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fespotlight",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "fetile",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "feturbulence",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "foreignobject",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "glyphref",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "lineargradient",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "radialgradient",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "textpath",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><altglyph></altglyph><altglyphdef></altglyphdef><altglyphitem></altglyphitem><animatecolor></animatecolor><animatemotion></animatemotion><animatetransform></animatetransform><clippath></clippath><feblend></feblend><fecolormatrix></fecolormatrix><fecomponenttransfer></fecomponenttransfer><fecomposite></fecomposite><feconvolvematrix></feconvolvematrix><fediffuselighting></fediffuselighting><fedisplacementmap></fedisplacementmap><fedistantlight></fedistantlight><feflood></feflood><fefunca></fefunca><fefuncb></fefuncb><fefuncg></fefuncg><fefuncr></fefuncr><fegaussianblur></fegaussianblur><feimage></feimage><femerge></femerge><femergenode></femergenode><femorphology></femorphology><feoffset></feoffset><fepointlight></fepointlight><fespecularlighting></fespecularlighting><fespotlight></fespotlight><fetile></fetile><feturbulence></feturbulence><foreignobject></foreignobject><glyphref></glyphref><lineargradient></lineargradient><radialgradient></radialgradient><textpath></textpath></math></body></html>",
- "noQuirksBodyHtml": "<math><altglyph></altglyph><altglyphdef></altglyphdef><altglyphitem></altglyphitem><animatecolor></animatecolor><animatemotion></animatemotion><animatetransform></animatetransform><clippath></clippath><feblend></feblend><fecolormatrix></fecolormatrix><fecomponenttransfer></fecomponenttransfer><fecomposite></fecomposite><feconvolvematrix></feconvolvematrix><fediffuselighting></fediffuselighting><fedisplacementmap></fedisplacementmap><fedistantlight></fedistantlight><feflood></feflood><fefunca></fefunca><fefuncb></fefuncb><fefuncg></fefuncg><fefuncr></fefuncr><fegaussianblur></fegaussianblur><feimage></feimage><femerge></femerge><femergenode></femergenode><femorphology></femorphology><feoffset></feoffset><fepointlight></fepointlight><fespecularlighting></fespecularlighting><fespotlight></fespotlight><fetile></fetile><feturbulence></feturbulence><foreignobject></foreignobject><glyphref></glyphref><lineargradient></lineargradient><radialgradient></radialgradient><textpath></textpath></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><svg><solidColor /></svg>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg solidcolor": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "solidcolor",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><solidcolor></solidcolor></svg></body></html>",
- "noQuirksBodyHtml": "<svg><solidcolor></solidcolor></svg>"
- }
- }
- ],
- "tests12.dat": [
- {
- "data": "<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "math math": true,
- "math mtext": true,
- "i": true,
- "math annotation-xml": true,
- "svg svg": true,
- "svg desc": true,
- "b": true,
- "svg g": true,
- "svg foreignObject": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "img": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "foo"
- },
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- },
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "desc",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "eggs"
- }
- ]
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "spam"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "img"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</p></body></html>",
- "noQuirksBodyHtml": "<p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mtext": true,
- "i": true,
- "math annotation-xml": true,
- "svg svg": true,
- "svg desc": true,
- "b": true,
- "svg g": true,
- "svg foreignObject": true,
- "p": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "img": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "foo"
- },
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- },
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "desc",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "eggs"
- }
- ]
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "spam"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "img"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "g",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</body></html>",
- "noQuirksBodyHtml": "foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar"
- }
- }
- ],
- "tests14.dat": [
- {
- "data": "<!DOCTYPE html><html><body><xyz:abc></xyz:abc>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "xyz:abc": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "xyz:abc"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><xyz:abc></xyz:abc></body></html>",
- "noQuirksBodyHtml": "<xyz:abc></xyz:abc>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "xyz:abc": true,
- "span": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "xyz:abc"
- },
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><xyz:abc></xyz:abc><span></span></body></html>",
- "noQuirksBodyHtml": "<xyz:abc></xyz:abc><span></span>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc>",
- "errors": [
- "(1,38): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "xyz:abc": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "abc:def",
- "value": "gh"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "xyz:abc"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html abc:def=\"gh\"><head></head><body><xyz:abc></xyz:abc></body></html>",
- "noQuirksBodyHtml": "<xyz:abc></xyz:abc>"
- }
- },
- {
- "data": "<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo>",
- "errors": [
- "(1,53): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "xml:lang",
- "value": "bar"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html xml:lang=\"bar\"><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html><html 123=456>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "123",
- "value": "456"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html 123=\"456\"><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html><html 123=456><html 789=012>",
- "errors": [
- "(1,43): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "123",
- "value": "456"
- },
- {
- "name": "789",
- "value": "012"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html 123=\"456\" 789=\"012\"><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html><html><body 789=012>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "789",
- "value": "012"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body 789=\"012\"></body></html>",
- "noQuirksBodyHtml": ""
- }
- }
- ],
- "tests15.dat": [
- {
- "data": "<!DOCTYPE html><p><b><i><u></p> <p>X",
- "errors": [
- "(1,31): unexpected-end-tag",
- "(1,36): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "b": true,
- "i": true,
- "u": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "u"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "u",
- "children": [
- {
- "text": " "
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><b><i><u></u></i></b></p><b><i><u> <p>X</p></u></i></b></body></html>",
- "noQuirksBodyHtml": "<p><b><i><u></u></i></b></p><b><i><u> <p>X</p></u></i></b>"
- }
- },
- {
- "data": "<p><b><i><u></p>\n<p>X",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,16): unexpected-end-tag",
- "(2,4): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "b": true,
- "i": true,
- "u": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "u"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "u",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><b><i><u></u></i></b></p><b><i><u>\n<p>X</p></u></i></b></body></html>",
- "noQuirksBodyHtml": "<p><b><i><u></u></i></b></p><b><i><u>\n<p>X</p></u></i></b>"
- }
- },
- {
- "data": "<!doctype html></html> <head>",
- "errors": [
- "(1,29): expected-eof-but-got-start-tag",
- "(1,29): unexpected-start-tag-ignored"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body> </body></html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<!doctype html></body><meta>",
- "errors": [
- "(1,28): unexpected-start-tag-after-body"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "meta": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "meta"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><meta></body></html>",
- "noQuirksBodyHtml": "<meta>"
- }
- },
- {
- "data": "<html></html><!-- foo -->",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- },
- {
- "comment": " foo "
- }
- ],
- "html": "<html><head></head><body></body></html><!-- foo -->",
- "noQuirksBodyHtml": "<!-- foo -->"
- }
- },
- {
- "data": "<!doctype html></body><title>X</title>",
- "errors": [
- "(1,29): unexpected-start-tag-after-body"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "title": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><title>X</title></body></html>",
- "noQuirksBodyHtml": "<title>X</title>"
- }
- },
- {
- "data": "<!doctype html><table> X<meta></table>",
- "errors": [
- "(1,23): foster-parenting-character",
- "(1,24): foster-parenting-character",
- "(1,30): foster-parenting-start-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "meta": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": " X"
- },
- {
- "tag": "meta"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body> X<meta><table></table></body></html>",
- "noQuirksBodyHtml": " X<meta><table></table>"
- }
- },
- {
- "data": "<!doctype html><table> x</table>",
- "errors": [
- "(1,23): foster-parenting-character",
- "(1,24): foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": " x"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body> x<table></table></body></html>",
- "noQuirksBodyHtml": " x<table></table>"
- }
- },
- {
- "data": "<!doctype html><table> x </table>",
- "errors": [
- "(1,23): foster-parenting-character",
- "(1,24): foster-parenting-character",
- "(1,25): foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": " x "
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body> x <table></table></body></html>",
- "noQuirksBodyHtml": " x <table></table>"
- }
- },
- {
- "data": "<!doctype html><table><tr> x</table>",
- "errors": [
- "(1,27): foster-parenting-character",
- "(1,28): foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": " x"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body> x<table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": " x<table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table>X<style> <tr>x </style> </table>",
- "errors": [
- "(1,23): foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "style": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": " <tr>x ",
- "no_escape": true
- }
- ]
- },
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>X<table><style> <tr>x </style> </table></body></html>",
- "noQuirksBodyHtml": "X<table><style> <tr>x </style> </table>"
- }
- },
- {
- "data": "<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div>",
- "errors": [
- "(1,30): foster-parenting-start-tag",
- "(1,31): foster-parenting-character",
- "(1,32): foster-parenting-character",
- "(1,33): foster-parenting-character",
- "(1,37): foster-parenting-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "text": " "
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "bar"
- }
- ]
- },
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><div><a>foo</a><table> <tbody><tr><td>bar</td> </tr></tbody></table></div></body></html>",
- "noQuirksBodyHtml": "<div><a>foo</a><table> <tbody><tr><td>bar</td> </tr></tbody></table></div>"
- }
- },
- {
- "data": "<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,7): unexpected-start-tag-ignored",
- "(1,15): unexpected-end-tag",
- "(1,23): unexpected-end-tag",
- "(1,33): unexpected-start-tag",
- "(1,99): expected-named-closing-tag-but-got-eof",
- "(1,99): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true,
- "noframes": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- },
- {
- "tag": "noframes",
- "children": [
- {
- "text": "</frameset><noframes>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes></noframes></frameset></html>",
- "noQuirksBodyHtml": "<noframes></frameset><noframes></noframes>"
- }
- },
- {
- "data": "<!DOCTYPE html><object></html>",
- "errors": [
- "(1,30): expected-body-in-scope",
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "object": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "object"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><object></object></body></html>",
- "noQuirksBodyHtml": "<object></object>"
- }
- }
- ],
- "tests16.dat": [
- {
- "data": "<!doctype html><script>",
- "errors": [
- "(1,23): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script>"
- }
- },
- {
- "data": "<!doctype html><script>a",
- "errors": [
- "(1,24): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script>a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script>a</script>"
- }
- },
- {
- "data": "<!doctype html><script><",
- "errors": [
- "(1,24): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><</script>"
- }
- },
- {
- "data": "<!doctype html><script></",
- "errors": [
- "(1,25): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></</script>"
- }
- },
- {
- "data": "<!doctype html><script></S",
- "errors": [
- "(1,26): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</S",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></S</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></S</script>"
- }
- },
- {
- "data": "<!doctype html><script></SC",
- "errors": [
- "(1,27): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SC",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></SC</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SC</script>"
- }
- },
- {
- "data": "<!doctype html><script></SCR",
- "errors": [
- "(1,28): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SCR",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></SCR</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SCR</script>"
- }
- },
- {
- "data": "<!doctype html><script></SCRI",
- "errors": [
- "(1,29): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SCRI",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></SCRI</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SCRI</script>"
- }
- },
- {
- "data": "<!doctype html><script></SCRIP",
- "errors": [
- "(1,30): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SCRIP",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></SCRIP</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SCRIP</script>"
- }
- },
- {
- "data": "<!doctype html><script></SCRIPT",
- "errors": [
- "(1,31): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SCRIPT",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></SCRIPT</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SCRIPT</script>"
- }
- },
- {
- "data": "<!doctype html><script></SCRIPT ",
- "errors": [
- "(1,32): expected-attribute-name-but-got-eof",
- "(1,32): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script>"
- }
- },
- {
- "data": "<!doctype html><script></s",
- "errors": [
- "(1,26): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</s",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></s</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></s</script>"
- }
- },
- {
- "data": "<!doctype html><script></sc",
- "errors": [
- "(1,27): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</sc",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></sc</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></sc</script>"
- }
- },
- {
- "data": "<!doctype html><script></scr",
- "errors": [
- "(1,28): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</scr",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></scr</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></scr</script>"
- }
- },
- {
- "data": "<!doctype html><script></scri",
- "errors": [
- "(1,29): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</scri",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></scri</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></scri</script>"
- }
- },
- {
- "data": "<!doctype html><script></scrip",
- "errors": [
- "(1,30): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</scrip",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></scrip</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></scrip</script>"
- }
- },
- {
- "data": "<!doctype html><script></script",
- "errors": [
- "(1,31): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script</script>"
- }
- },
- {
- "data": "<!doctype html><script></script ",
- "errors": [
- "(1,32): expected-attribute-name-but-got-eof",
- "(1,32): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script>"
- }
- },
- {
- "data": "<!doctype html><script><!",
- "errors": [
- "(1,25): expected-script-data-but-got-eof",
- "(1,25): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!</script>"
- }
- },
- {
- "data": "<!doctype html><script><!a",
- "errors": [
- "(1,26): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!a</script>"
- }
- },
- {
- "data": "<!doctype html><script><!-",
- "errors": [
- "(1,26): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!-",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!-</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!-</script>"
- }
- },
- {
- "data": "<!doctype html><script><!-a",
- "errors": [
- "(1,27): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!-a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!-a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!-a</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--",
- "errors": [
- "(1,27): expected-named-closing-tag-but-got-eof",
- "(1,27): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--a",
- "errors": [
- "(1,28): expected-named-closing-tag-but-got-eof",
- "(1,28): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--a</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<",
- "errors": [
- "(1,28): expected-named-closing-tag-but-got-eof",
- "(1,28): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<a",
- "errors": [
- "(1,29): expected-named-closing-tag-but-got-eof",
- "(1,29): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<a</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--</",
- "errors": [
- "(1,29): expected-named-closing-tag-but-got-eof",
- "(1,29): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--</",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--</</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--</</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--</script",
- "errors": [
- "(1,35): expected-named-closing-tag-but-got-eof",
- "(1,35): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--</script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--</script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--</script</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--</script ",
- "errors": [
- "(1,36): expected-attribute-name-but-got-eof",
- "(1,36): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<s",
- "errors": [
- "(1,29): expected-named-closing-tag-but-got-eof",
- "(1,29): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<s",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<s</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<s</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script",
- "errors": [
- "(1,34): expected-named-closing-tag-but-got-eof",
- "(1,34): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script ",
- "errors": [
- "(1,35): eof-in-script-in-script",
- "(1,35): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script <",
- "errors": [
- "(1,36): eof-in-script-in-script",
- "(1,36): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script <",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script <</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script <</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script <a",
- "errors": [
- "(1,37): eof-in-script-in-script",
- "(1,37): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script <a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script <a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script <a</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </",
- "errors": [
- "(1,37): eof-in-script-in-script",
- "(1,37): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </s",
- "errors": [
- "(1,38): eof-in-script-in-script",
- "(1,38): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </s",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </s</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </s</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script",
- "errors": [
- "(1,43): eof-in-script-in-script",
- "(1,43): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </scripta",
- "errors": [
- "(1,44): eof-in-script-in-script",
- "(1,44): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </scripta",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </scripta</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </scripta</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script ",
- "errors": [
- "(1,44): expected-named-closing-tag-but-got-eof",
- "(1,44): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script>",
- "errors": [
- "(1,44): expected-named-closing-tag-but-got-eof",
- "(1,44): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script/",
- "errors": [
- "(1,44): expected-named-closing-tag-but-got-eof",
- "(1,44): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script/",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script/</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script/</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script <",
- "errors": [
- "(1,45): expected-named-closing-tag-but-got-eof",
- "(1,45): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script <",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script <</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script <</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script <a",
- "errors": [
- "(1,46): expected-named-closing-tag-but-got-eof",
- "(1,46): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script <a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script <a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script <a</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script </",
- "errors": [
- "(1,46): expected-named-closing-tag-but-got-eof",
- "(1,46): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script </",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script </</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script </script",
- "errors": [
- "(1,52): expected-named-closing-tag-but-got-eof",
- "(1,52): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script </script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script </script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script </script ",
- "errors": [
- "(1,53): expected-attribute-name-but-got-eof",
- "(1,53): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script </script/",
- "errors": [
- "(1,53): unexpected-EOF-after-solidus-in-tag",
- "(1,53): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script </script </script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script -",
- "errors": [
- "(1,36): eof-in-script-in-script",
- "(1,36): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script -</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script -</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script -a",
- "errors": [
- "(1,37): eof-in-script-in-script",
- "(1,37): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script -a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script -a</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script -<",
- "errors": [
- "(1,37): eof-in-script-in-script",
- "(1,37): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -<",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script -<</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script -<</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --",
- "errors": [
- "(1,37): eof-in-script-in-script",
- "(1,37): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --a",
- "errors": [
- "(1,38): eof-in-script-in-script",
- "(1,38): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --a</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --<",
- "errors": [
- "(1,38): eof-in-script-in-script",
- "(1,38): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --<",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --<</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --<</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script -->",
- "errors": [
- "(1,38): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --><",
- "errors": [
- "(1,39): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --><",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --><</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --><</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --></",
- "errors": [
- "(1,40): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --></",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --></</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --></script",
- "errors": [
- "(1,46): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --></script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --></script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --></script ",
- "errors": [
- "(1,47): expected-attribute-name-but-got-eof",
- "(1,47): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --></script/",
- "errors": [
- "(1,47): unexpected-EOF-after-solidus-in-tag",
- "(1,47): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script --></script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script><\\/script>--></script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script><\\/script>-->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script><\\/script>--></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script><\\/script>--></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script></scr'+'ipt>--></script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></scr'+'ipt>-->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script></scr'+'ipt>--></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt>--></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script></script><script></script></script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script></script><script></script>--><!--</script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>--><!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>--><!--</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>--><!--</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script></script><script></script>-- ></script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>-- >",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>-- ></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>-- ></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script></script><script></script>- -></script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>- ->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>- -></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>- -></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script></script><script></script>- - ></script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>- - >",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>- - ></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>- - ></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script></script><script></script>-></script>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>-></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>-></script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<script>--!></script>X",
- "errors": [
- "(1,49): expected-named-closing-tag-but-got-eof",
- "(1,49): unexpected-EOF-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script>--!></script>X",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script>--!></script>X</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script>--!></script>X</script>"
- }
- },
- {
- "data": "<!doctype html><script><!--<scr'+'ipt></script>--></script>",
- "errors": [
- "(1,59): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<scr'+'ipt>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<scr'+'ipt></script></head><body>--></body></html>",
- "noQuirksBodyHtml": "<script><!--<scr'+'ipt></script>-->"
- }
- },
- {
- "data": "<!doctype html><script><!--<script></scr'+'ipt></script>X",
- "errors": [
- "(1,57): expected-named-closing-tag-but-got-eof",
- "(1,57): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></scr'+'ipt></script>X",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script><!--<script></scr'+'ipt></script>X</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt></script>X</script>"
- }
- },
- {
- "data": "<!doctype html><style><!--<style></style>--></style>",
- "errors": [
- "(1,52): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--<style>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style><!--<style></style></head><body>--></body></html>",
- "noQuirksBodyHtml": "<style><!--<style></style>-->"
- }
- },
- {
- "data": "<!doctype html><style><!--</style>X",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style><!--</style></head><body>X</body></html>",
- "noQuirksBodyHtml": "<style><!--</style>X"
- }
- },
- {
- "data": "<!doctype html><style><!--...</style>...--></style>",
- "errors": [
- "(1,51): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--...",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "...-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style><!--...</style></head><body>...--></body></html>",
- "noQuirksBodyHtml": "<style><!--...</style>...-->"
- }
- },
- {
- "data": "<!doctype html><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style></head><body>X</body></html>",
- "noQuirksBodyHtml": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X"
- }
- },
- {
- "data": "<!doctype html><style><!--...<style><!--...--!></style>--></style>",
- "errors": [
- "(1,66): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--...<style><!--...--!>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style><!--...<style><!--...--!></style></head><body>--></body></html>",
- "noQuirksBodyHtml": "<style><!--...<style><!--...--!></style>-->"
- }
- },
- {
- "data": "<!doctype html><style><!--...</style><!-- --><style>@import ...</style>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--...",
- "no_escape": true
- }
- ]
- },
- {
- "comment": " "
- },
- {
- "tag": "style",
- "children": [
- {
- "text": "@import ...",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style><!--...</style><!-- --><style>@import ...</style></head><body></body></html>",
- "noQuirksBodyHtml": "<style><!--...</style><!-- --><style>@import ...</style>"
- }
- },
- {
- "data": "<!doctype html><style>...<style><!--...</style><!-- --></style>",
- "errors": [
- "(1,63): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "...<style><!--...",
- "no_escape": true
- }
- ]
- },
- {
- "comment": " "
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style>...<style><!--...</style><!-- --></head><body></body></html>",
- "noQuirksBodyHtml": "<style>...<style><!--...</style><!-- -->"
- }
- },
- {
- "data": "<!doctype html><style>...<!--[if IE]><style>...</style>X",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "...<!--[if IE]><style>...",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><style>...<!--[if IE]><style>...</style></head><body>X</body></html>",
- "noQuirksBodyHtml": "<style>...<!--[if IE]><style>...</style>X"
- }
- },
- {
- "data": "<!doctype html><title><!--<title></title>--></title>",
- "errors": [
- "(1,52): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "<!--<title>",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><title><!--<title></title></head><body>--></body></html>",
- "noQuirksBodyHtml": "<title><!--<title></title>-->"
- }
- },
- {
- "data": "<!doctype html><title></title></title>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "</title>",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><title></title></title></head><body></body></html>",
- "noQuirksBodyHtml": "<title></title></title>"
- }
- },
- {
- "data": "<!doctype html><title>foo/title><link></head><body>X",
- "errors": [
- "(1,52): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "foo/title><link></head><body>X",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><title>foo/title><link></head><body>X</title></head><body></body></html>",
- "noQuirksBodyHtml": "<title>foo/title><link></head><body>X</title>"
- }
- },
- {
- "data": "<!doctype html><noscript><!--<noscript></noscript>--></noscript>",
- "errors": [
- "(1,64): unexpected-end-tag"
- ],
- "script": "on",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": "<!--<noscript>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><noscript><!--<noscript></noscript></head><body>--></body></html>",
- "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
- }
- },
- {
- "data": "<!doctype html><noscript><!--<noscript></noscript>--></noscript>",
- "errors": [],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "<noscript></noscript>"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><noscript><!--<noscript></noscript>--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
- }
- },
- {
- "data": "<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>",
- "errors": [],
- "script": "on",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- },
- {
- "tag": "noscript",
- "children": [
- {
- "text": "-->",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><noscript><!--</noscript></head><body>X<noscript>--></noscript></body></html>",
- "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
- }
- },
- {
- "data": "<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>",
- "errors": [],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "</noscript>X<noscript>"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><noscript><!--</noscript>X<noscript>--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
- }
- },
- {
- "data": "<!doctype html><noscript><iframe></noscript>X",
- "errors": [],
- "script": "on",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": "<iframe>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><noscript><iframe></noscript></head><body>X</body></html>",
- "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
- }
- },
- {
- "data": "<!doctype html><noscript><iframe></noscript>X",
- "errors": [
- " * (1,34) unexpected token in head noscript",
- " * (1,46) unexpected EOF"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true,
- "iframe": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript"
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe",
- "children": [
- {
- "text": "</noscript>X",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><noscript></noscript></head><body><iframe></noscript>X</iframe></body></html>",
- "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
- }
- },
- {
- "data": "<!doctype html><noframes><!--<noframes></noframes>--></noframes>",
- "errors": [
- "(1,64): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noframes": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noframes",
- "children": [
- {
- "text": "<!--<noframes>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><noframes><!--<noframes></noframes></head><body>--></body></html>",
- "noQuirksBodyHtml": "<noframes><!--<noframes></noframes>-->"
- }
- },
- {
- "data": "<!doctype html><noframes><body><script><!--...</script></body></noframes></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noframes": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noframes",
- "children": [
- {
- "text": "<body><script><!--...</script></body>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><noframes><body><script><!--...</script></body></noframes></head><body></body></html>",
- "noQuirksBodyHtml": "<noframes><body><script><!--...</script></body></noframes>"
- }
- },
- {
- "data": "<!doctype html><textarea><!--<textarea></textarea>--></textarea>",
- "errors": [
- "(1,64): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "<!--<textarea>",
- "escaped": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><textarea><!--<textarea></textarea>--></body></html>",
- "noQuirksBodyHtml": "<textarea><!--<textarea></textarea>-->"
- }
- },
- {
- "data": "<!doctype html><textarea></textarea></textarea>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "</textarea>",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></textarea></body></html>",
- "noQuirksBodyHtml": "<textarea></textarea></textarea>"
- }
- },
- {
- "data": "<!doctype html><textarea><</textarea>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "<",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><textarea><</textarea></body></html>",
- "noQuirksBodyHtml": "<textarea><</textarea>"
- }
- },
- {
- "data": "<!doctype html><textarea>a<b</textarea>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "a<b",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><textarea>a<b</textarea></body></html>",
- "noQuirksBodyHtml": "<textarea>a<b</textarea>"
- }
- },
- {
- "data": "<!doctype html><iframe><!--<iframe></iframe>--></iframe>",
- "errors": [
- "(1,56): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "iframe": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe",
- "children": [
- {
- "text": "<!--<iframe>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><iframe><!--<iframe></iframe>--></body></html>",
- "noQuirksBodyHtml": "<iframe><!--<iframe></iframe>-->"
- }
- },
- {
- "data": "<!doctype html><iframe>...<!--X->...<!--/X->...</iframe>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "iframe": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe",
- "children": [
- {
- "text": "...<!--X->...<!--/X->...",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><iframe>...<!--X->...<!--/X->...</iframe></body></html>",
- "noQuirksBodyHtml": "<iframe>...<!--X->...<!--/X->...</iframe>"
- }
- },
- {
- "data": "<!doctype html><xmp><!--<xmp></xmp>--></xmp>",
- "errors": [
- "(1,44): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "xmp": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "xmp",
- "children": [
- {
- "text": "<!--<xmp>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><xmp><!--<xmp></xmp>--></body></html>",
- "noQuirksBodyHtml": "<xmp><!--<xmp></xmp>-->"
- }
- },
- {
- "data": "<!doctype html><noembed><!--<noembed></noembed>--></noembed>",
- "errors": [
- "(1,60): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "noembed": true
- },
- "doctype": true,
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "noembed",
- "children": [
- {
- "text": "<!--<noembed>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><noembed><!--<noembed></noembed>--></body></html>",
- "noQuirksBodyHtml": "<noembed><!--<noembed></noembed>-->"
- }
- },
- {
- "data": "<script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,8): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script>"
- }
- },
- {
- "data": "<script>a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,9): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script>a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script>a</script>"
- }
- },
- {
- "data": "<script><",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,9): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><</script>"
- }
- },
- {
- "data": "<script></",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,10): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></</script>"
- }
- },
- {
- "data": "<script></S",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,11): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</S",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></S</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></S</script>"
- }
- },
- {
- "data": "<script></SC",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,12): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SC",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></SC</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SC</script>"
- }
- },
- {
- "data": "<script></SCR",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,13): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SCR",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></SCR</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SCR</script>"
- }
- },
- {
- "data": "<script></SCRI",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,14): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SCRI",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></SCRI</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SCRI</script>"
- }
- },
- {
- "data": "<script></SCRIP",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,15): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SCRIP",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></SCRIP</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SCRIP</script>"
- }
- },
- {
- "data": "<script></SCRIPT",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,16): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</SCRIPT",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></SCRIPT</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></SCRIPT</script>"
- }
- },
- {
- "data": "<script></SCRIPT ",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,17): expected-attribute-name-but-got-eof",
- "(1,17): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script>"
- }
- },
- {
- "data": "<script></s",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,11): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</s",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></s</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></s</script>"
- }
- },
- {
- "data": "<script></sc",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,12): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</sc",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></sc</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></sc</script>"
- }
- },
- {
- "data": "<script></scr",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,13): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</scr",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></scr</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></scr</script>"
- }
- },
- {
- "data": "<script></scri",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,14): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</scri",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></scri</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></scri</script>"
- }
- },
- {
- "data": "<script></scrip",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,15): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</scrip",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></scrip</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></scrip</script>"
- }
- },
- {
- "data": "<script></script",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,16): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script</script>"
- }
- },
- {
- "data": "<script></script ",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,17): expected-attribute-name-but-got-eof",
- "(1,17): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script>"
- }
- },
- {
- "data": "<script><!",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,10): expected-script-data-but-got-eof",
- "(1,10): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!</script>"
- }
- },
- {
- "data": "<script><!a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,11): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!a</script>"
- }
- },
- {
- "data": "<script><!-",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,11): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!-",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!-</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!-</script>"
- }
- },
- {
- "data": "<script><!-a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,12): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!-a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!-a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!-a</script>"
- }
- },
- {
- "data": "<script><!--",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,12): expected-named-closing-tag-but-got-eof",
- "(1,12): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--</script>"
- }
- },
- {
- "data": "<script><!--a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,13): expected-named-closing-tag-but-got-eof",
- "(1,13): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--a</script>"
- }
- },
- {
- "data": "<script><!--<",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,13): expected-named-closing-tag-but-got-eof",
- "(1,13): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<</script>"
- }
- },
- {
- "data": "<script><!--<a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,14): expected-named-closing-tag-but-got-eof",
- "(1,14): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<a</script>"
- }
- },
- {
- "data": "<script><!--</",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,14): expected-named-closing-tag-but-got-eof",
- "(1,14): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--</",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--</</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--</</script>"
- }
- },
- {
- "data": "<script><!--</script",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,20): expected-named-closing-tag-but-got-eof",
- "(1,20): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--</script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--</script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--</script</script>"
- }
- },
- {
- "data": "<script><!--</script ",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,21): expected-attribute-name-but-got-eof",
- "(1,21): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--</script>"
- }
- },
- {
- "data": "<script><!--<s",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,14): expected-named-closing-tag-but-got-eof",
- "(1,14): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<s",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<s</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<s</script>"
- }
- },
- {
- "data": "<script><!--<script",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,19): expected-named-closing-tag-but-got-eof",
- "(1,19): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script</script>"
- }
- },
- {
- "data": "<script><!--<script ",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,20): eof-in-script-in-script",
- "(1,20): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script>"
- }
- },
- {
- "data": "<script><!--<script <",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,21): eof-in-script-in-script",
- "(1,21): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script <",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script <</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script <</script>"
- }
- },
- {
- "data": "<script><!--<script <a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,22): eof-in-script-in-script",
- "(1,22): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script <a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script <a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script <a</script>"
- }
- },
- {
- "data": "<script><!--<script </",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,22): eof-in-script-in-script",
- "(1,22): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </</script>"
- }
- },
- {
- "data": "<script><!--<script </s",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,23): eof-in-script-in-script",
- "(1,23): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </s",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </s</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </s</script>"
- }
- },
- {
- "data": "<script><!--<script </script",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,28): eof-in-script-in-script",
- "(1,28): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script</script>"
- }
- },
- {
- "data": "<script><!--<script </scripta",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,29): eof-in-script-in-script",
- "(1,29): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </scripta",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </scripta</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </scripta</script>"
- }
- },
- {
- "data": "<script><!--<script </script ",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,29): expected-named-closing-tag-but-got-eof",
- "(1,29): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script>"
- }
- },
- {
- "data": "<script><!--<script </script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,29): expected-named-closing-tag-but-got-eof",
- "(1,29): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script></script>"
- }
- },
- {
- "data": "<script><!--<script </script/",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,29): expected-named-closing-tag-but-got-eof",
- "(1,29): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script/",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script/</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script/</script>"
- }
- },
- {
- "data": "<script><!--<script </script <",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,30): expected-named-closing-tag-but-got-eof",
- "(1,30): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script <",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script <</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script <</script>"
- }
- },
- {
- "data": "<script><!--<script </script <a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,31): expected-named-closing-tag-but-got-eof",
- "(1,31): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script <a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script <a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script <a</script>"
- }
- },
- {
- "data": "<script><!--<script </script </",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,31): expected-named-closing-tag-but-got-eof",
- "(1,31): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script </",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script </</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </</script>"
- }
- },
- {
- "data": "<script><!--<script </script </script",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,37): expected-named-closing-tag-but-got-eof",
- "(1,37): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script </script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script </script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script</script>"
- }
- },
- {
- "data": "<script><!--<script </script </script ",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,38): expected-attribute-name-but-got-eof",
- "(1,38): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script>"
- }
- },
- {
- "data": "<script><!--<script </script </script/",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,38): unexpected-EOF-after-solidus-in-tag",
- "(1,38): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script>"
- }
- },
- {
- "data": "<script><!--<script </script </script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script </script ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script </script </script>"
- }
- },
- {
- "data": "<script><!--<script -",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,21): eof-in-script-in-script",
- "(1,21): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script -</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script -</script>"
- }
- },
- {
- "data": "<script><!--<script -a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,22): eof-in-script-in-script",
- "(1,22): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script -a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script -a</script>"
- }
- },
- {
- "data": "<script><!--<script --",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,22): eof-in-script-in-script",
- "(1,22): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --</script>"
- }
- },
- {
- "data": "<script><!--<script --a",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,23): eof-in-script-in-script",
- "(1,23): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --a",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --a</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --a</script>"
- }
- },
- {
- "data": "<script><!--<script -->",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,23): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script>"
- }
- },
- {
- "data": "<script><!--<script --><",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,24): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --><",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --><</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --><</script>"
- }
- },
- {
- "data": "<script><!--<script --></",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,25): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --></",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --></</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></</script>"
- }
- },
- {
- "data": "<script><!--<script --></script",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,31): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script --></script",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --></script</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script</script>"
- }
- },
- {
- "data": "<script><!--<script --></script ",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,32): expected-attribute-name-but-got-eof",
- "(1,32): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script>"
- }
- },
- {
- "data": "<script><!--<script --></script/",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,32): unexpected-EOF-after-solidus-in-tag",
- "(1,32): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script>"
- }
- },
- {
- "data": "<script><!--<script --></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script -->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script --></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script --></script>"
- }
- },
- {
- "data": "<script><!--<script><\\/script>--></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script><\\/script>-->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script><\\/script>--></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script><\\/script>--></script>"
- }
- },
- {
- "data": "<script><!--<script></scr'+'ipt>--></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></scr'+'ipt>-->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script></scr'+'ipt>--></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt>--></script>"
- }
- },
- {
- "data": "<script><!--<script></script><script></script></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script></script><script></script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script></script>"
- }
- },
- {
- "data": "<script><!--<script></script><script></script>--><!--</script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>--><!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script></script><script></script>--><!--</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>--><!--</script>"
- }
- },
- {
- "data": "<script><!--<script></script><script></script>-- ></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>-- >",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script></script><script></script>-- ></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>-- ></script>"
- }
- },
- {
- "data": "<script><!--<script></script><script></script>- -></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>- ->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script></script><script></script>- -></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>- -></script>"
- }
- },
- {
- "data": "<script><!--<script></script><script></script>- - ></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>- - >",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script></script><script></script>- - ></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>- - ></script>"
- }
- },
- {
- "data": "<script><!--<script></script><script></script>-></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></script><script></script>->",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script></script><script></script>-></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></script><script></script>-></script>"
- }
- },
- {
- "data": "<script><!--<script>--!></script>X",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,34): expected-named-closing-tag-but-got-eof",
- "(1,34): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script>--!></script>X",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script>--!></script>X</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script>--!></script>X</script>"
- }
- },
- {
- "data": "<script><!--<scr'+'ipt></script>--></script>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,44): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<scr'+'ipt>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<scr'+'ipt></script></head><body>--></body></html>",
- "noQuirksBodyHtml": "<script><!--<scr'+'ipt></script>-->"
- }
- },
- {
- "data": "<script><!--<script></scr'+'ipt></script>X",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,42): expected-named-closing-tag-but-got-eof",
- "(1,42): unexpected-eof-in-text-mode"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "<!--<script></scr'+'ipt></script>X",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script><!--<script></scr'+'ipt></script>X</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt></script>X</script>"
- }
- },
- {
- "data": "<style><!--<style></style>--></style>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,37): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--<style>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style><!--<style></style></head><body>--></body></html>",
- "noQuirksBodyHtml": "<style><!--<style></style>-->"
- }
- },
- {
- "data": "<style><!--</style>X",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style><!--</style></head><body>X</body></html>",
- "noQuirksBodyHtml": "<style><!--</style>X"
- }
- },
- {
- "data": "<style><!--...</style>...--></style>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,36): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--...",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "...-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style><!--...</style></head><body>...--></body></html>",
- "noQuirksBodyHtml": "<style><!--...</style>...-->"
- }
- },
- {
- "data": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style></head><body>X</body></html>",
- "noQuirksBodyHtml": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X"
- }
- },
- {
- "data": "<style><!--...<style><!--...--!></style>--></style>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,51): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--...<style><!--...--!>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style><!--...<style><!--...--!></style></head><body>--></body></html>",
- "noQuirksBodyHtml": "<style><!--...<style><!--...--!></style>-->"
- }
- },
- {
- "data": "<style><!--...</style><!-- --><style>@import ...</style>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true,
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "<!--...",
- "no_escape": true
- }
- ]
- },
- {
- "comment": " "
- },
- {
- "tag": "style",
- "children": [
- {
- "text": "@import ...",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><style><!--...</style><!-- --><style>@import ...</style></head><body></body></html>",
- "noQuirksBodyHtml": "<style><!--...</style><!-- --><style>@import ...</style>"
- }
- },
- {
- "data": "<style>...<style><!--...</style><!-- --></style>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,48): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true,
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "...<style><!--...",
- "no_escape": true
- }
- ]
- },
- {
- "comment": " "
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><style>...<style><!--...</style><!-- --></head><body></body></html>",
- "noQuirksBodyHtml": "<style>...<style><!--...</style><!-- -->"
- }
- },
- {
- "data": "<style>...<!--[if IE]><style>...</style>X",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "...<!--[if IE]><style>...",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style>...<!--[if IE]><style>...</style></head><body>X</body></html>",
- "noQuirksBodyHtml": "<style>...<!--[if IE]><style>...</style>X"
- }
- },
- {
- "data": "<title><!--<title></title>--></title>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,37): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "<!--<title>",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><title><!--<title></title></head><body>--></body></html>",
- "noQuirksBodyHtml": "<title><!--<title></title>-->"
- }
- },
- {
- "data": "<title></title></title>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "</title>",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><title></title></title></head><body></body></html>",
- "noQuirksBodyHtml": "<title></title></title>"
- }
- },
- {
- "data": "<title>foo/title><link></head><body>X",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,37): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "foo/title><link></head><body>X",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><title>foo/title><link></head><body>X</title></head><body></body></html>",
- "noQuirksBodyHtml": "<title>foo/title><link></head><body>X</title>"
- }
- },
- {
- "data": "<noscript><!--<noscript></noscript>--></noscript>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,49): unexpected-end-tag"
- ],
- "script": "on",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": "<!--<noscript>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--<noscript></noscript></head><body>--></body></html>",
- "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
- }
- },
- {
- "data": "<noscript><!--<noscript></noscript>--></noscript>",
- "errors": [
- " * (1,11) missing DOCTYPE"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "<noscript></noscript>"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--<noscript></noscript>--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
- }
- },
- {
- "data": "<noscript><!--</noscript>X<noscript>--></noscript>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "script": "on",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- },
- {
- "tag": "noscript",
- "children": [
- {
- "text": "-->",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--</noscript></head><body>X<noscript>--></noscript></body></html>",
- "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
- }
- },
- {
- "data": "<noscript><!--</noscript>X<noscript>--></noscript>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "</noscript>X<noscript>"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--</noscript>X<noscript>--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
- }
- },
- {
- "data": "<noscript><iframe></noscript>X",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "script": "on",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": "<iframe>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noscript><iframe></noscript></head><body>X</body></html>",
- "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
- }
- },
- {
- "data": "<noscript><iframe></noscript>X",
- "errors": [
- " * (1,11) missing DOCTYPE",
- " * (1,19) unexpected token in head noscript",
- " * (1,31) unexpected EOF"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true,
- "iframe": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript"
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe",
- "children": [
- {
- "text": "</noscript>X",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noscript></noscript></head><body><iframe></noscript>X</iframe></body></html>",
- "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
- }
- },
- {
- "data": "<noframes><!--<noframes></noframes>--></noframes>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,49): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noframes": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noframes",
- "children": [
- {
- "text": "<!--<noframes>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noframes><!--<noframes></noframes></head><body>--></body></html>",
- "noQuirksBodyHtml": "<noframes><!--<noframes></noframes>-->"
- }
- },
- {
- "data": "<noframes><body><script><!--...</script></body></noframes></html>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noframes": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noframes",
- "children": [
- {
- "text": "<body><script><!--...</script></body>",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noframes><body><script><!--...</script></body></noframes></head><body></body></html>",
- "noQuirksBodyHtml": "<noframes><body><script><!--...</script></body></noframes>"
- }
- },
- {
- "data": "<textarea><!--<textarea></textarea>--></textarea>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,49): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "<!--<textarea>",
- "escaped": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><textarea><!--<textarea></textarea>--></body></html>",
- "noQuirksBodyHtml": "<textarea><!--<textarea></textarea>-->"
- }
- },
- {
- "data": "<textarea></textarea></textarea>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "</textarea>",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><textarea></textarea></textarea></body></html>",
- "noQuirksBodyHtml": "<textarea></textarea></textarea>"
- }
- },
- {
- "data": "<iframe><!--<iframe></iframe>--></iframe>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,41): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "iframe": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe",
- "children": [
- {
- "text": "<!--<iframe>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><iframe><!--<iframe></iframe>--></body></html>",
- "noQuirksBodyHtml": "<iframe><!--<iframe></iframe>-->"
- }
- },
- {
- "data": "<iframe>...<!--X->...<!--/X->...</iframe>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "iframe": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe",
- "children": [
- {
- "text": "...<!--X->...<!--/X->...",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><iframe>...<!--X->...<!--/X->...</iframe></body></html>",
- "noQuirksBodyHtml": "<iframe>...<!--X->...<!--/X->...</iframe>"
- }
- },
- {
- "data": "<xmp><!--<xmp></xmp>--></xmp>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,29): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "xmp": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "xmp",
- "children": [
- {
- "text": "<!--<xmp>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><xmp><!--<xmp></xmp>--></body></html>",
- "noQuirksBodyHtml": "<xmp><!--<xmp></xmp>-->"
- }
- },
- {
- "data": "<noembed><!--<noembed></noembed>--></noembed>",
- "errors": [
- "(1,9): expected-doctype-but-got-start-tag",
- "(1,45): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "noembed": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "noembed",
- "children": [
- {
- "text": "<!--<noembed>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><noembed><!--<noembed></noembed>--></body></html>",
- "noQuirksBodyHtml": "<noembed><!--<noembed></noembed>-->"
- }
- },
- {
- "data": "<!doctype html><table>\n",
- "errors": [
- "(2,0): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "text": "\n"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table>\n</table></body></html>",
- "noQuirksBodyHtml": "<table>\n</table>"
- }
- },
- {
- "data": "<!doctype html><table><td><span><font></span><span>",
- "errors": [
- "(1,26): unexpected-cell-in-table-body",
- "(1,45): unexpected-end-tag",
- "(1,51): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "span": true,
- "font": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "font"
- }
- ]
- },
- {
- "tag": "font",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><span><font></font></span><font><span></span></font></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><span><font></font></span><font><span></span></font></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><form><table></form><form></table></form>",
- "errors": [
- "(1,35): unexpected-end-tag-implies-table-voodoo",
- "(1,35): unexpected-end-tag",
- "(1,41): unexpected-form-in-table",
- "(1,56): unexpected-end-tag",
- "(1,56): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "form": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "form",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "form"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><form><table><form></form></table></form></body></html>",
- "noQuirksBodyHtml": "<form><table><form></form></table></form>"
- }
- }
- ],
- "tests17.dat": [
- {
- "data": "<!doctype html><table><tbody><select><tr>",
- "errors": [
- "(1,37): unexpected-start-tag-implies-table-voodoo",
- "(1,41): unexpected-table-element-start-tag-in-select-in-table",
- "(1,41): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<select></select><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><tr><select><td>",
- "errors": [
- "(1,34): unexpected-start-tag-implies-table-voodoo",
- "(1,38): unexpected-table-element-start-tag-in-select-in-table",
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select><table><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<select></select><table><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><tr><td><select><td>",
- "errors": [
- "(1,42): unexpected-table-element-start-tag-in-select-in-table",
- "(1,42): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "select"
- }
- ]
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select></select></td><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><select></select></td><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><tr><th><select><td>",
- "errors": [
- "(1,42): unexpected-table-element-start-tag-in-select-in-table",
- "(1,42): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "th": true,
- "select": true,
- "td": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "th",
- "children": [
- {
- "tag": "select"
- }
- ]
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><th><select></select></th><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><th><select></select></th><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><caption><select><tr>",
- "errors": [
- "(1,43): unexpected-table-element-start-tag-in-select-in-table",
- "(1,43): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "select": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "select"
- }
- ]
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><select></select></caption><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><caption><select></select></caption><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><select><tr>",
- "errors": [
- "(1,27): unexpected-start-tag-in-select",
- "(1,27): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!doctype html><select><td>",
- "errors": [
- "(1,27): unexpected-start-tag-in-select",
- "(1,27): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!doctype html><select><th>",
- "errors": [
- "(1,27): unexpected-start-tag-in-select",
- "(1,27): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!doctype html><select><tbody>",
- "errors": [
- "(1,30): unexpected-start-tag-in-select",
- "(1,30): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!doctype html><select><thead>",
- "errors": [
- "(1,30): unexpected-start-tag-in-select",
- "(1,30): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!doctype html><select><tfoot>",
- "errors": [
- "(1,30): unexpected-start-tag-in-select",
- "(1,30): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!doctype html><select><caption>",
- "errors": [
- "(1,32): unexpected-start-tag-in-select",
- "(1,32): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!doctype html><table><tr></table>a",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr></tr></tbody></table>a</body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody></table>a"
- }
- }
- ],
- "tests18.dat": [
- {
- "data": "<!doctype html><plaintext></plaintext>",
- "errors": [
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "plaintext": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "</plaintext>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext></body></html>",
- "noQuirksBodyHtml": "<plaintext></plaintext></plaintext>"
- }
- },
- {
- "data": "<!doctype html><table><plaintext></plaintext>",
- "errors": [
- "(1,33): foster-parenting-start-tag",
- "(1,34): foster-parenting-character",
- "(1,35): foster-parenting-character",
- "(1,36): foster-parenting-character",
- "(1,37): foster-parenting-character",
- "(1,38): foster-parenting-character",
- "(1,39): foster-parenting-character",
- "(1,40): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,42): foster-parenting-character",
- "(1,43): foster-parenting-character",
- "(1,44): foster-parenting-character",
- "(1,45): foster-parenting-character",
- "(1,45): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "plaintext": true,
- "table": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "</plaintext>",
- "no_escape": true
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table></table></body></html>",
- "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table></table>"
- }
- },
- {
- "data": "<!doctype html><table><tbody><plaintext></plaintext>",
- "errors": [
- "(1,40): foster-parenting-start-tag",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,52): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "plaintext": true,
- "table": true,
- "tbody": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "</plaintext>",
- "no_escape": true
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table><tbody></tbody></table></body></html>",
- "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table><tbody></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><tbody><tr><plaintext></plaintext>",
- "errors": [
- "(1,44): foster-parenting-start-tag",
- "(1,45): foster-parenting-character",
- "(1,46): foster-parenting-character",
- "(1,47): foster-parenting-character",
- "(1,48): foster-parenting-character",
- "(1,49): foster-parenting-character",
- "(1,50): foster-parenting-character",
- "(1,51): foster-parenting-character",
- "(1,52): foster-parenting-character",
- "(1,53): foster-parenting-character",
- "(1,54): foster-parenting-character",
- "(1,55): foster-parenting-character",
- "(1,56): foster-parenting-character",
- "(1,56): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "plaintext": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "</plaintext>",
- "no_escape": true
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><td><plaintext></plaintext>",
- "errors": [
- "(1,26): unexpected-cell-in-table-body",
- "(1,49): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "plaintext": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "</plaintext>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><plaintext></plaintext></plaintext></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><plaintext></plaintext></plaintext></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><caption><plaintext></plaintext>",
- "errors": [
- "(1,54): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "plaintext": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "</plaintext>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><plaintext></plaintext></plaintext></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption><plaintext></plaintext></plaintext></caption></table>"
- }
- },
- {
- "data": "<!doctype html><table><tr><style></script></style>abc",
- "errors": [
- "(1,51): foster-parenting-character",
- "(1,52): foster-parenting-character",
- "(1,53): foster-parenting-character",
- "(1,53): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "style": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "abc"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "</script>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>abc<table><tbody><tr><style></script></style></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "abc<table><tbody><tr><style></script></style></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><tr><script></style></script>abc",
- "errors": [
- "(1,52): foster-parenting-character",
- "(1,53): foster-parenting-character",
- "(1,54): foster-parenting-character",
- "(1,54): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "script": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "abc"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</style>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>abc<table><tbody><tr><script></style></script></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "abc<table><tbody><tr><script></style></script></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><caption><style></script></style>abc",
- "errors": [
- "(1,58): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "style": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "</script>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "abc"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><style></script></style>abc</caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption><style></script></style>abc</caption></table>"
- }
- },
- {
- "data": "<!doctype html><table><td><style></script></style>abc",
- "errors": [
- "(1,26): unexpected-cell-in-table-body",
- "(1,53): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "style": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": "</script>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "abc"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><style></script></style>abc</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><style></script></style>abc</td></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><select><script></style></script>abc",
- "errors": [
- "(1,51): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "script": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</style>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "abc"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select></body></html>",
- "noQuirksBodyHtml": "<select><script></style></script>abc</select>"
- }
- },
- {
- "data": "<!doctype html><table><select><script></style></script>abc",
- "errors": [
- "(1,30): unexpected-start-tag-implies-table-voodoo",
- "(1,58): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "script": true,
- "table": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</style>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "abc"
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select><table></table></body></html>",
- "noQuirksBodyHtml": "<select><script></style></script>abc</select><table></table>"
- }
- },
- {
- "data": "<!doctype html><table><tr><select><script></style></script>abc",
- "errors": [
- "(1,34): unexpected-start-tag-implies-table-voodoo",
- "(1,62): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "script": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</style>",
- "no_escape": true
- }
- ]
- },
- {
- "text": "abc"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<select><script></style></script>abc</select><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><frameset></frameset><noframes>abc",
- "errors": [
- "(1,49): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "noframes": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "tag": "noframes",
- "children": [
- {
- "text": "abc",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html>",
- "noQuirksBodyHtml": "<noframes>abc</noframes>"
- }
- },
- {
- "data": "<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc-->",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "noframes": true
- },
- "doctype": true,
- "no_escape": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "tag": "noframes",
- "children": [
- {
- "text": "abc",
- "no_escape": true
- }
- ]
- },
- {
- "comment": "abc"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes><!--abc--></html>",
- "noQuirksBodyHtml": "<noframes>abc</noframes><!--abc-->"
- }
- },
- {
- "data": "<!doctype html><frameset></frameset></html><noframes>abc",
- "errors": [
- "(1,56): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "noframes": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "tag": "noframes",
- "children": [
- {
- "text": "abc",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html>",
- "noQuirksBodyHtml": "<noframes>abc</noframes>"
- }
- },
- {
- "data": "<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc-->",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "noframes": true
- },
- "doctype": true,
- "no_escape": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "tag": "noframes",
- "children": [
- {
- "text": "abc",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "comment": "abc"
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html><!--abc-->",
- "noQuirksBodyHtml": "<noframes>abc</noframes><!--abc-->"
- }
- },
- {
- "data": "<!doctype html><table><tr></tbody><tfoot>",
- "errors": [
- "(1,41): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "tfoot": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- },
- {
- "tag": "tfoot"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr></tr></tbody><tfoot></tfoot></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody><tfoot></tfoot></table>"
- }
- },
- {
- "data": "<!doctype html><table><td><svg></svg>abc<td>",
- "errors": [
- "(1,26): unexpected-cell-in-table-body",
- "(1,44): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "text": "abc"
- }
- ]
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg></svg>abc</td><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><svg></svg>abc</td><td></td></tr></tbody></table>"
- }
- }
- ],
- "tests19.dat": [
- {
- "data": "<!doctype html><math><mn DefinitionUrl=\"foo\">",
- "errors": [
- "(1,45): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mn": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "definitionURL",
- "value": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mn definitionURL=\"foo\"></mn></math></body></html>",
- "noQuirksBodyHtml": "<math><mn definitionURL=\"foo\"></mn></math>"
- }
- },
- {
- "data": "<!doctype html><html></p><!--foo-->",
- "errors": [
- "(1,25): end-tag-after-implied-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "comment": "foo"
- },
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><!--foo--><head></head><body></body></html>",
- "noQuirksBodyHtml": "<p></p><!--foo-->"
- }
- },
- {
- "data": "<!doctype html><head></head></p><!--foo-->",
- "errors": [
- "(1,32): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "comment": "foo"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><!--foo--><body></body></html>",
- "noQuirksBodyHtml": "<p></p><!--foo-->"
- }
- },
- {
- "data": "<!doctype html><body><p><pre>",
- "errors": [
- "(1,29): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "pre"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><pre></pre></body></html>",
- "noQuirksBodyHtml": "<p></p><pre></pre>"
- }
- },
- {
- "data": "<!doctype html><body><p><listing>",
- "errors": [
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "listing": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "listing"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><listing></listing></body></html>",
- "noQuirksBodyHtml": "<p></p><listing></listing>"
- }
- },
- {
- "data": "<!doctype html><p><plaintext>",
- "errors": [
- "(1,29): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "plaintext": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "plaintext"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><plaintext></plaintext></body></html>",
- "noQuirksBodyHtml": "<p></p><plaintext></plaintext>"
- }
- },
- {
- "data": "<!doctype html><p><h1>",
- "errors": [
- "(1,22): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "h1": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "h1"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><h1></h1></body></html>",
- "noQuirksBodyHtml": "<p></p><h1></h1>"
- }
- },
- {
- "data": "<!doctype html><isindex type=\"hidden\">",
- "errors": [
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "isindex": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "isindex",
- "attrs": [
- {
- "name": "type",
- "value": "hidden"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><isindex type=\"hidden\"></isindex></body></html>",
- "noQuirksBodyHtml": "<isindex type=\"hidden\"></isindex>"
- }
- },
- {
- "data": "<!doctype html><ruby><p><rp>",
- "errors": [
- "(1,28): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "p": true,
- "rp": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "rp"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><ruby><p></p><rp></rp></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><p></p><rp></rp></ruby>"
- }
- },
- {
- "data": "<!doctype html><ruby><div><span><rp>",
- "errors": [
- "(1,36): XXX-undefined-error",
- "(1,36): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "div": true,
- "span": true,
- "rp": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "rp"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><ruby><div><span><rp></rp></span></div></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><div><span><rp></rp></span></div></ruby>"
- }
- },
- {
- "data": "<!doctype html><ruby><div><p><rp>",
- "errors": [
- "(1,33): XXX-undefined-error",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "div": true,
- "p": true,
- "rp": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "rp"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><ruby><div><p></p><rp></rp></div></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><div><p></p><rp></rp></div></ruby>"
- }
- },
- {
- "data": "<!doctype html><ruby><p><rt>",
- "errors": [
- "(1,28): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "p": true,
- "rt": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><ruby><p></p><rt></rt></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><p></p><rt></rt></ruby>"
- }
- },
- {
- "data": "<!doctype html><ruby><div><span><rt>",
- "errors": [
- "(1,36): XXX-undefined-error",
- "(1,36): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "div": true,
- "span": true,
- "rt": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><ruby><div><span><rt></rt></span></div></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><div><span><rt></rt></span></div></ruby>"
- }
- },
- {
- "data": "<!doctype html><ruby><div><p><rt>",
- "errors": [
- "(1,33): XXX-undefined-error",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "div": true,
- "p": true,
- "rt": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><ruby><div><p></p><rt></rt></div></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><div><p></p><rt></rt></div></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rb>b<rt></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rb": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rb",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rb>b</rb><rt></rt></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rt></rt></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rp>b<rt></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rp": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rp",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rp>b</rp><rt></rt></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rt></rt></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rt>b<rt></ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "b"
- }
- ]
- },
- {
- "tag": "rt"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rt>b</rt><rt></rt></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rt></rt></ruby>"
- }
- },
- {
- "data": "<html><ruby>a<rtc>b<rt>c<rb>d</ruby></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "rtc": true,
- "rt": true,
- "rb": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "rtc",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "rt",
- "children": [
- {
- "text": "c"
- }
- ]
- }
- ]
- },
- {
- "tag": "rb",
- "children": [
- {
- "text": "d"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby>a<rtc>b<rt>c</rt></rtc><rb>d</rb></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby>a<rtc>b<rt>c</rt></rtc><rb>d</rb></ruby>"
- }
- },
- {
- "data": "<!doctype html><math/><foo>",
- "errors": [
- "(1,27): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "foo": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "foo"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math></math><foo></foo></body></html>",
- "noQuirksBodyHtml": "<math></math><foo></foo>"
- }
- },
- {
- "data": "<!doctype html><svg/><foo>",
- "errors": [
- "(1,26): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "foo": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "foo"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg></svg><foo></foo></body></html>",
- "noQuirksBodyHtml": "<svg></svg><foo></foo>"
- }
- },
- {
- "data": "<!doctype html><div></body><!--foo-->",
- "errors": [
- "(1,27): expected-one-end-tag-but-got-another"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- }
- ]
- },
- {
- "comment": "foo"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><div></div></body><!--foo--></html>",
- "noQuirksBodyHtml": "<div><!--foo--></div>"
- }
- },
- {
- "data": "<!doctype html><h1><div><h3><span></h1>foo",
- "errors": [
- "(1,39): end-tag-too-early",
- "(1,42): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "h1": true,
- "div": true,
- "h3": true,
- "span": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "h1",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "h3",
- "children": [
- {
- "tag": "span"
- }
- ]
- },
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><h1><div><h3><span></span></h3>foo</div></h1></body></html>",
- "noQuirksBodyHtml": "<h1><div><h3><span></span></h3>foo</div></h1>"
- }
- },
- {
- "data": "<!doctype html><p></h3>foo",
- "errors": [
- "(1,23): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p>foo</p></body></html>",
- "noQuirksBodyHtml": "<p>foo</p>"
- }
- },
- {
- "data": "<!doctype html><h3><li>abc</h2>foo",
- "errors": [
- "(1,31): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "h3": true,
- "li": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "h3",
- "children": [
- {
- "tag": "li",
- "children": [
- {
- "text": "abc"
- }
- ]
- }
- ]
- },
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><h3><li>abc</li></h3>foo</body></html>",
- "noQuirksBodyHtml": "<h3><li>abc</li></h3>foo"
- }
- },
- {
- "data": "<!doctype html><table>abc<!--foo-->",
- "errors": [
- "(1,23): foster-parenting-character",
- "(1,24): foster-parenting-character",
- "(1,25): foster-parenting-character",
- "(1,35): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "abc"
- },
- {
- "tag": "table",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>abc<table><!--foo--></table></body></html>",
- "noQuirksBodyHtml": "abc<table><!--foo--></table>"
- }
- },
- {
- "data": "<!doctype html><table> <!--foo-->",
- "errors": [
- "(1,34): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "text": " "
- },
- {
- "comment": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table> <!--foo--></table></body></html>",
- "noQuirksBodyHtml": "<table> <!--foo--></table>"
- }
- },
- {
- "data": "<!doctype html><table> b <!--foo-->",
- "errors": [
- "(1,23): foster-parenting-character",
- "(1,24): foster-parenting-character",
- "(1,25): foster-parenting-character",
- "(1,35): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": " b "
- },
- {
- "tag": "table",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body> b <table><!--foo--></table></body></html>",
- "noQuirksBodyHtml": " b <table><!--foo--></table>"
- }
- },
- {
- "data": "<!doctype html><select><option><option>",
- "errors": [
- "(1,39): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- },
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><option></option><option></option></select></body></html>",
- "noQuirksBodyHtml": "<select><option></option><option></option></select>"
- }
- },
- {
- "data": "<!doctype html><select><option></optgroup>",
- "errors": [
- "(1,42): unexpected-end-tag-in-select",
- "(1,42): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
- "noQuirksBodyHtml": "<select><option></option></select>"
- }
- },
- {
- "data": "<!doctype html><select><option></optgroup>",
- "errors": [
- "(1,42): unexpected-end-tag-in-select",
- "(1,42): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
- "noQuirksBodyHtml": "<select><option></option></select>"
- }
- },
- {
- "data": "<!doctype html><dd><optgroup><dd>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dd": true,
- "optgroup": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dd",
- "children": [
- {
- "tag": "optgroup"
- }
- ]
- },
- {
- "tag": "dd"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><dd><optgroup></optgroup></dd><dd></dd></body></html>",
- "noQuirksBodyHtml": "<dd><optgroup></optgroup></dd><dd></dd>"
- }
- },
- {
- "data": "<!doctype html><p><math><mi><p><h1>",
- "errors": [
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "math math": true,
- "math mi": true,
- "h1": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "h1"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><math><mi><p></p><h1></h1></mi></math></p></body></html>",
- "noQuirksBodyHtml": "<p><math><mi><p></p><h1></h1></mi></math></p>"
- }
- },
- {
- "data": "<!doctype html><p><math><mo><p><h1>",
- "errors": [
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "math math": true,
- "math mo": true,
- "h1": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mo",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "h1"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><math><mo><p></p><h1></h1></mo></math></p></body></html>",
- "noQuirksBodyHtml": "<p><math><mo><p></p><h1></h1></mo></math></p>"
- }
- },
- {
- "data": "<!doctype html><p><math><mn><p><h1>",
- "errors": [
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "math math": true,
- "math mn": true,
- "h1": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "h1"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><math><mn><p></p><h1></h1></mn></math></p></body></html>",
- "noQuirksBodyHtml": "<p><math><mn><p></p><h1></h1></mn></math></p>"
- }
- },
- {
- "data": "<!doctype html><p><math><ms><p><h1>",
- "errors": [
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "math math": true,
- "math ms": true,
- "h1": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "ms",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "h1"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><math><ms><p></p><h1></h1></ms></math></p></body></html>",
- "noQuirksBodyHtml": "<p><math><ms><p></p><h1></h1></ms></math></p>"
- }
- },
- {
- "data": "<!doctype html><p><math><mtext><p><h1>",
- "errors": [
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "math math": true,
- "math mtext": true,
- "h1": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "h1"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><math><mtext><p></p><h1></h1></mtext></math></p></body></html>",
- "noQuirksBodyHtml": "<p><math><mtext><p></p><h1></h1></mtext></math></p>"
- }
- },
- {
- "data": "<!doctype html><frameset></noframes>",
- "errors": [
- "(1,36): unexpected-end-tag-in-frameset",
- "(1,36): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!doctype html><html c=d><body></html><html a=b>",
- "errors": [
- "(1,48): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "a",
- "value": "b"
- },
- {
- "name": "c",
- "value": "d"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html c=\"d\" a=\"b\"><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!doctype html><html c=d><frameset></frameset></html><html a=b>",
- "errors": [
- "(1,63): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "a",
- "value": "b"
- },
- {
- "name": "c",
- "value": "d"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html c=\"d\" a=\"b\"><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!doctype html><html><frameset></frameset></html><!--foo-->",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- },
- {
- "comment": "foo"
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html><!--foo-->",
- "noQuirksBodyHtml": "<!--foo-->"
- }
- },
- {
- "data": "<!doctype html><html><frameset></frameset></html> ",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "text": " "
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset> </html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<!doctype html><html><frameset></frameset></html>abc",
- "errors": [
- "(1,50): expected-eof-but-got-char",
- "(1,51): expected-eof-but-got-char",
- "(1,52): expected-eof-but-got-char"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "abc"
- }
- },
- {
- "data": "<!doctype html><html><frameset></frameset></html><p>",
- "errors": [
- "(1,52): expected-eof-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<p></p>"
- }
- },
- {
- "data": "<!doctype html><html><frameset></frameset></html></p>",
- "errors": [
- "(1,53): expected-eof-but-got-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<p></p>"
- }
- },
- {
- "data": "<html><frameset></frameset></html><!doctype html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,49): unexpected-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!doctype html><body><frameset>",
- "errors": [
- "(1,31): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!doctype html><p><frameset><frame>",
- "errors": [
- "(1,28): unexpected-start-tag",
- "(1,35): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
- "noQuirksBodyHtml": "<p></p>"
- }
- },
- {
- "data": "<!doctype html><p>a<frameset>",
- "errors": [
- "(1,29): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p>a</p></body></html>",
- "noQuirksBodyHtml": "<p>a</p>"
- }
- },
- {
- "data": "<!doctype html><p> <frameset><frame>",
- "errors": [
- "(1,29): unexpected-start-tag",
- "(1,36): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
- "noQuirksBodyHtml": "<p> </p>"
- }
- },
- {
- "data": "<!doctype html><pre><frameset>",
- "errors": [
- "(1,30): unexpected-start-tag",
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre></pre></body></html>",
- "noQuirksBodyHtml": "<pre></pre>"
- }
- },
- {
- "data": "<!doctype html><listing><frameset>",
- "errors": [
- "(1,34): unexpected-start-tag",
- "(1,34): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "listing": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "listing"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><listing></listing></body></html>",
- "noQuirksBodyHtml": "<listing></listing>"
- }
- },
- {
- "data": "<!doctype html><li><frameset>",
- "errors": [
- "(1,29): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "li": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "li"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><li></li></body></html>",
- "noQuirksBodyHtml": "<li></li>"
- }
- },
- {
- "data": "<!doctype html><dd><frameset>",
- "errors": [
- "(1,29): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dd": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dd"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><dd></dd></body></html>",
- "noQuirksBodyHtml": "<dd></dd>"
- }
- },
- {
- "data": "<!doctype html><dt><frameset>",
- "errors": [
- "(1,29): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dt": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dt"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><dt></dt></body></html>",
- "noQuirksBodyHtml": "<dt></dt>"
- }
- },
- {
- "data": "<!doctype html><button><frameset>",
- "errors": [
- "(1,33): unexpected-start-tag",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "button": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "button"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><button></button></body></html>",
- "noQuirksBodyHtml": "<button></button>"
- }
- },
- {
- "data": "<!doctype html><applet><frameset>",
- "errors": [
- "(1,33): unexpected-start-tag",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "applet": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "applet"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><applet></applet></body></html>",
- "noQuirksBodyHtml": "<applet></applet>"
- }
- },
- {
- "data": "<!doctype html><marquee><frameset>",
- "errors": [
- "(1,34): unexpected-start-tag",
- "(1,34): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "marquee": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "marquee"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><marquee></marquee></body></html>",
- "noQuirksBodyHtml": "<marquee></marquee>"
- }
- },
- {
- "data": "<!doctype html><object><frameset>",
- "errors": [
- "(1,33): unexpected-start-tag",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "object": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "object"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><object></object></body></html>",
- "noQuirksBodyHtml": "<object></object>"
- }
- },
- {
- "data": "<!doctype html><table><frameset>",
- "errors": [
- "(1,32): unexpected-start-tag-implies-table-voodoo",
- "(1,32): unexpected-start-tag",
- "(1,32): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table></table></body></html>",
- "noQuirksBodyHtml": "<table></table>"
- }
- },
- {
- "data": "<!doctype html><area><frameset>",
- "errors": [
- "(1,31): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "area": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "area"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><area></body></html>",
- "noQuirksBodyHtml": "<area>"
- }
- },
- {
- "data": "<!doctype html><basefont><frameset>",
- "errors": [
- "(1,35): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "basefont": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "basefont"
- }
- ]
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><basefont></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<basefont>"
- }
- },
- {
- "data": "<!doctype html><bgsound><frameset>",
- "errors": [
- "(1,34): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "bgsound": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "bgsound"
- }
- ]
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><bgsound></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<bgsound>"
- }
- },
- {
- "data": "<!doctype html><br><frameset>",
- "errors": [
- "(1,29): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "br": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "br"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><br></body></html>",
- "noQuirksBodyHtml": "<br>"
- }
- },
- {
- "data": "<!doctype html><embed><frameset>",
- "errors": [
- "(1,32): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "embed": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "embed"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><embed></body></html>",
- "noQuirksBodyHtml": "<embed>"
- }
- },
- {
- "data": "<!doctype html><img><frameset>",
- "errors": [
- "(1,30): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "img": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "img"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><img></body></html>",
- "noQuirksBodyHtml": "<img>"
- }
- },
- {
- "data": "<!doctype html><input><frameset>",
- "errors": [
- "(1,32): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "input"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><input></body></html>",
- "noQuirksBodyHtml": "<input>"
- }
- },
- {
- "data": "<!doctype html><keygen><frameset>",
- "errors": [
- "(1,33): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "keygen": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "keygen"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><keygen></body></html>",
- "noQuirksBodyHtml": "<keygen>"
- }
- },
- {
- "data": "<!doctype html><wbr><frameset>",
- "errors": [
- "(1,30): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "wbr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "wbr"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><wbr></body></html>",
- "noQuirksBodyHtml": "<wbr>"
- }
- },
- {
- "data": "<!doctype html><hr><frameset>",
- "errors": [
- "(1,29): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "hr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "hr"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><hr></body></html>",
- "noQuirksBodyHtml": "<hr>"
- }
- },
- {
- "data": "<!doctype html><textarea></textarea><frameset>",
- "errors": [
- "(1,46): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></body></html>",
- "noQuirksBodyHtml": "<textarea></textarea>"
- }
- },
- {
- "data": "<!doctype html><xmp></xmp><frameset>",
- "errors": [
- "(1,36): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "xmp": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "xmp"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><xmp></xmp></body></html>",
- "noQuirksBodyHtml": "<xmp></xmp>"
- }
- },
- {
- "data": "<!doctype html><iframe></iframe><frameset>",
- "errors": [
- "(1,42): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "iframe": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><iframe></iframe></body></html>",
- "noQuirksBodyHtml": "<iframe></iframe>"
- }
- },
- {
- "data": "<!doctype html><select></select><frameset>",
- "errors": [
- "(1,42): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!doctype html><svg></svg><frameset><frame>",
- "errors": [
- "(1,36): unexpected-start-tag",
- "(1,43): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<!doctype html><math></math><frameset><frame>",
- "errors": [
- "(1,38): unexpected-start-tag",
- "(1,45): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
- "noQuirksBodyHtml": "<math></math>"
- }
- },
- {
- "data": "<!doctype html><svg><foreignObject><div> <frameset><frame>",
- "errors": [
- "(1,51): unexpected-start-tag",
- "(1,58): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
- "noQuirksBodyHtml": "<svg><foreignObject><div> </div></foreignObject></svg>"
- }
- },
- {
- "data": "<!doctype html><svg>a</svg><frameset><frame>",
- "errors": [
- "(1,37): unexpected-start-tag",
- "(1,44): unexpected-start-tag-ignored"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg>a</svg></body></html>",
- "noQuirksBodyHtml": "<svg>a</svg>"
- }
- },
- {
- "data": "<!doctype html><svg> </svg><frameset><frame>",
- "errors": [
- "(1,37): unexpected-start-tag",
- "(1,44): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "frame": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "tag": "frame"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
- "noQuirksBodyHtml": "<svg> </svg>"
- }
- },
- {
- "data": "<html>aaa<frameset></frameset>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,19): unexpected-start-tag",
- "(1,30): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "aaa"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>aaa</body></html>",
- "noQuirksBodyHtml": "aaa"
- }
- },
- {
- "data": "<html> a <frameset></frameset>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,19): unexpected-start-tag",
- "(1,30): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "a "
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>a </body></html>",
- "noQuirksBodyHtml": " a "
- }
- },
- {
- "data": "<!doctype html><div><frameset>",
- "errors": [
- "(1,30): unexpected-start-tag",
- "(1,30): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<!doctype html><div><body><frameset>",
- "errors": [
- "(1,26): unexpected-start-tag",
- "(1,36): unexpected-start-tag",
- "(1,36): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><div></div></body></html>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<!doctype html><p><math></p>a",
- "errors": [
- "(1,28): unexpected-end-tag",
- "(1,28): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "math math": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><math></math></p>a</body></html>",
- "noQuirksBodyHtml": "<p><math></math></p>a"
- }
- },
- {
- "data": "<!doctype html><p><math><mn><span></p>a",
- "errors": [
- "(1,38): unexpected-end-tag",
- "(1,39): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "math math": true,
- "math mn": true,
- "span": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "p"
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><math><mn><span><p></p>a</span></mn></math></p></body></html>",
- "noQuirksBodyHtml": "<p><math><mn><span><p></p>a</span></mn></math></p>"
- }
- },
- {
- "data": "<!doctype html><math></html>",
- "errors": [
- "(1,28): unexpected-end-tag",
- "(1,28): expected-one-end-tag-but-got-another",
- "(1,28): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
- "noQuirksBodyHtml": "<math></math>"
- }
- },
- {
- "data": "<!doctype html><meta charset=\"ascii\">",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "meta": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "meta",
- "attrs": [
- {
- "name": "charset",
- "value": "ascii"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><meta charset=\"ascii\"></head><body></body></html>",
- "noQuirksBodyHtml": "<meta charset=\"ascii\">"
- }
- },
- {
- "data": "<!doctype html><meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\">",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "meta": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "meta",
- "attrs": [
- {
- "name": "content",
- "value": "text/html;charset=ascii"
- },
- {
- "name": "http-equiv",
- "value": "content-type"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\"></head><body></body></html>",
- "noQuirksBodyHtml": "<meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\">"
- }
- },
- {
- "data": "<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\">",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "meta": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "comment": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- },
- {
- "tag": "meta",
- "attrs": [
- {
- "name": "charset",
- "value": "utf8"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\"></head><body></body></html>",
- "noQuirksBodyHtml": "<!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\">"
- }
- },
- {
- "data": "<!doctype html><html a=b><head></head><html c=d>",
- "errors": [
- "(1,48): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "a",
- "value": "b"
- },
- {
- "name": "c",
- "value": "d"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html a=\"b\" c=\"d\"><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!doctype html><image/>",
- "errors": [
- "(1,23): image-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "img": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "img"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><img></body></html>",
- "noQuirksBodyHtml": "<img>"
- }
- },
- {
- "data": "<!doctype html>a<i>b<table>c<b>d</i>e</b>f",
- "errors": [
- "(1,28): foster-parenting-character",
- "(1,31): foster-parenting-start-tag",
- "(1,32): foster-parenting-character",
- "(1,36): foster-parenting-end-tag",
- "(1,36): adoption-agency-1.3",
- "(1,37): foster-parenting-character",
- "(1,41): foster-parenting-end-tag",
- "(1,42): foster-parenting-character",
- "(1,42): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "i": true,
- "b": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "bc"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "de"
- }
- ]
- },
- {
- "text": "f"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>a<i>bc<b>de</b>f<table></table></i></body></html>",
- "noQuirksBodyHtml": "a<i>bc<b>de</b>f<table></table></i>"
- }
- },
- {
- "data": "<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f",
- "errors": [
- "(1,25): foster-parenting-start-tag",
- "(1,26): foster-parenting-character",
- "(1,29): foster-parenting-start-tag",
- "(1,30): foster-parenting-character",
- "(1,35): foster-parenting-start-tag",
- "(1,36): foster-parenting-character",
- "(1,39): foster-parenting-start-tag",
- "(1,40): foster-parenting-character",
- "(1,44): foster-parenting-end-tag",
- "(1,44): adoption-agency-1.3",
- "(1,44): adoption-agency-1.3",
- "(1,45): foster-parenting-character",
- "(1,49): foster-parenting-end-tag",
- "(1,49): adoption-agency-1.3",
- "(1,49): adoption-agency-1.3",
- "(1,50): foster-parenting-character",
- "(1,50): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "i": true,
- "b": true,
- "div": true,
- "a": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "b"
- }
- ]
- }
- ]
- },
- {
- "tag": "b"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "c"
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "d"
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "e"
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "f"
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table></body></html>",
- "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table>"
- }
- },
- {
- "data": "<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f",
- "errors": [
- "(1,37): adoption-agency-1.3",
- "(1,37): adoption-agency-1.3",
- "(1,42): adoption-agency-1.3",
- "(1,42): adoption-agency-1.3",
- "(1,43): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "i": true,
- "b": true,
- "div": true,
- "a": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "b"
- }
- ]
- }
- ]
- },
- {
- "tag": "b"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "c"
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "d"
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "e"
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "f"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div></body></html>",
- "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div>"
- }
- },
- {
- "data": "<!doctype html><table><i>a<b>b<div>c</i>",
- "errors": [
- "(1,25): foster-parenting-start-tag",
- "(1,26): foster-parenting-character",
- "(1,29): foster-parenting-start-tag",
- "(1,30): foster-parenting-character",
- "(1,35): foster-parenting-start-tag",
- "(1,36): foster-parenting-character",
- "(1,40): foster-parenting-end-tag",
- "(1,40): adoption-agency-1.3",
- "(1,40): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "i": true,
- "b": true,
- "div": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "b"
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "c"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b><div><i>c</i></div></b><table></table></body></html>",
- "noQuirksBodyHtml": "<i>a<b>b</b></i><b><div><i>c</i></div></b><table></table>"
- }
- },
- {
- "data": "<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f",
- "errors": [
- "(1,25): foster-parenting-start-tag",
- "(1,26): foster-parenting-character",
- "(1,29): foster-parenting-start-tag",
- "(1,30): foster-parenting-character",
- "(1,35): foster-parenting-start-tag",
- "(1,36): foster-parenting-character",
- "(1,39): foster-parenting-start-tag",
- "(1,40): foster-parenting-character",
- "(1,44): foster-parenting-end-tag",
- "(1,44): adoption-agency-1.3",
- "(1,44): adoption-agency-1.3",
- "(1,45): foster-parenting-character",
- "(1,49): foster-parenting-end-tag",
- "(1,44): adoption-agency-1.3",
- "(1,44): adoption-agency-1.3",
- "(1,50): foster-parenting-character",
- "(1,50): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "i": true,
- "b": true,
- "div": true,
- "a": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "b"
- }
- ]
- }
- ]
- },
- {
- "tag": "b"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "c"
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "d"
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "e"
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "f"
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table></body></html>",
- "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table>"
- }
- },
- {
- "data": "<!doctype html><table><i>a<div>b<tr>c<b>d</i>e",
- "errors": [
- "(1,25): foster-parenting-start-tag",
- "(1,26): foster-parenting-character",
- "(1,31): foster-parenting-start-tag",
- "(1,32): foster-parenting-character",
- "(1,37): foster-parenting-character",
- "(1,40): foster-parenting-start-tag",
- "(1,41): foster-parenting-character",
- "(1,45): foster-parenting-end-tag",
- "(1,45): adoption-agency-1.3",
- "(1,46): foster-parenting-character",
- "(1,46): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "i": true,
- "div": true,
- "b": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "text": "b"
- }
- ]
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "c"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "d"
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "e"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><i>a<div>b</div></i><i>c<b>d</b></i><b>e</b><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<i>a<div>b</div></i><i>c<b>d</b></i><b>e</b><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><table><td><table><i>a<div>b<b>c</i>d",
- "errors": [
- "(1,26): unexpected-cell-in-table-body",
- "(1,36): foster-parenting-start-tag",
- "(1,37): foster-parenting-character",
- "(1,42): foster-parenting-start-tag",
- "(1,43): foster-parenting-character",
- "(1,46): foster-parenting-start-tag",
- "(1,47): foster-parenting-character",
- "(1,51): foster-parenting-end-tag",
- "(1,51): adoption-agency-1.3",
- "(1,51): adoption-agency-1.3",
- "(1,52): foster-parenting-character",
- "(1,52): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "i": true,
- "div": true,
- "b": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "c"
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "d"
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><i>a</i><div><i>b<b>c</b></i><b>d</b></div><table></table></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><i>a</i><div><i>b<b>c</b></i><b>d</b></div><table></table></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><body><bgsound>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "bgsound": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "bgsound"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><bgsound></body></html>",
- "noQuirksBodyHtml": "<bgsound>"
- }
- },
- {
- "data": "<!doctype html><body><basefont>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "basefont": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "basefont"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><basefont></body></html>",
- "noQuirksBodyHtml": "<basefont>"
- }
- },
- {
- "data": "<!doctype html><a><b></a><basefont>",
- "errors": [
- "(1,25): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true,
- "basefont": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "basefont"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><a><b></b></a><basefont></body></html>",
- "noQuirksBodyHtml": "<a><b></b></a><basefont>"
- }
- },
- {
- "data": "<!doctype html><a><b></a><bgsound>",
- "errors": [
- "(1,25): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true,
- "bgsound": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "bgsound"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><a><b></b></a><bgsound></body></html>",
- "noQuirksBodyHtml": "<a><b></b></a><bgsound>"
- }
- },
- {
- "data": "<!doctype html><figcaption><article></figcaption>a",
- "errors": [
- "(1,49): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "figcaption": true,
- "article": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "figcaption",
- "children": [
- {
- "tag": "article"
- }
- ]
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><figcaption><article></article></figcaption>a</body></html>",
- "noQuirksBodyHtml": "<figcaption><article></article></figcaption>a"
- }
- },
- {
- "data": "<!doctype html><summary><article></summary>a",
- "errors": [
- "(1,43): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "summary": true,
- "article": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "summary",
- "children": [
- {
- "tag": "article"
- }
- ]
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><summary><article></article></summary>a</body></html>",
- "noQuirksBodyHtml": "<summary><article></article></summary>a"
- }
- },
- {
- "data": "<!doctype html><p><a><plaintext>b",
- "errors": [
- "(1,32): unexpected-end-tag",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "a": true,
- "plaintext": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- }
- ]
- },
- {
- "tag": "plaintext",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><a></a></p><plaintext><a>b</a></plaintext></body></html>",
- "noQuirksBodyHtml": "<p><a></a></p><plaintext><a>b</a></plaintext>"
- }
- },
- {
- "data": "<!DOCTYPE html><div>a<a></div>b<p>c</p>d",
- "errors": [
- "(1,30): end-tag-too-early",
- "(1,40): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "a": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "a"
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "text": "b"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "c"
- }
- ]
- },
- {
- "text": "d"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><div>a<a></a></div><a>b<p>c</p>d</a></body></html>",
- "noQuirksBodyHtml": "<div>a<a></a></div><a>b<p>c</p>d</a>"
- }
- }
- ],
- "tests2.dat": [
- {
- "data": "<!DOCTYPE html>Test",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Test"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>Test</body></html>",
- "noQuirksBodyHtml": "Test"
- }
- },
- {
- "data": "<textarea>test</div>test",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,24): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "test</div>test",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><textarea>test</div>test</textarea></body></html>",
- "noQuirksBodyHtml": "<textarea>test</div>test</textarea>"
- }
- },
- {
- "data": "<table><td>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,11): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><td>test</tbody></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "test"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td>test</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td>test</td></tr></tbody></table>"
- }
- },
- {
- "data": "<frame>test",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,7): unexpected-start-tag-ignored"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "test"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>test</body></html>",
- "noQuirksBodyHtml": "test"
- }
- },
- {
- "data": "<!DOCTYPE html><frameset>test",
- "errors": [
- "(1,29): unexpected-char-in-frameset",
- "(1,29): unexpected-char-in-frameset",
- "(1,29): unexpected-char-in-frameset",
- "(1,29): unexpected-char-in-frameset",
- "(1,29): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "test"
- }
- },
- {
- "data": "<!DOCTYPE html><frameset> te st",
- "errors": [
- "(1,29): unexpected-char-in-frameset",
- "(1,29): unexpected-char-in-frameset",
- "(1,29): unexpected-char-in-frameset",
- "(1,29): unexpected-char-in-frameset",
- "(1,29): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset> </frameset></html>",
- "noQuirksBodyHtml": " te st"
- }
- },
- {
- "data": "<!DOCTYPE html><frameset></frameset> te st",
- "errors": [
- "(1,29): unexpected-char-after-frameset",
- "(1,29): unexpected-char-after-frameset",
- "(1,29): unexpected-char-after-frameset",
- "(1,29): unexpected-char-after-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "text": " "
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset> </html>",
- "noQuirksBodyHtml": " te st"
- }
- },
- {
- "data": "<!DOCTYPE html><frameset><!DOCTYPE html>",
- "errors": [
- "(1,40): unexpected-doctype",
- "(1,40): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html><font><p><b>test</font>",
- "errors": [
- "(1,38): adoption-agency-1.3",
- "(1,38): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "font": true,
- "p": true,
- "b": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "font"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "test"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><font></font><p><font><b>test</b></font></p></body></html>",
- "noQuirksBodyHtml": "<font></font><p><font><b>test</b></font></p>"
- }
- },
- {
- "data": "<!DOCTYPE html><dt><div><dd>",
- "errors": [
- "(1,28): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dt": true,
- "div": true,
- "dd": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dt",
- "children": [
- {
- "tag": "div"
- }
- ]
- },
- {
- "tag": "dd"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><dt><div></div></dt><dd></dd></body></html>",
- "noQuirksBodyHtml": "<dt><div></div></dt><dd></dd>"
- }
- },
- {
- "data": "<script></x",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,11): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "</x",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></x</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></x</script>"
- }
- },
- {
- "data": "<table><plaintext><td>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,18): unexpected-start-tag-implies-table-voodoo",
- "(1,22): foster-parenting-character-in-table",
- "(1,22): foster-parenting-character-in-table",
- "(1,22): foster-parenting-character-in-table",
- "(1,22): foster-parenting-character-in-table",
- "(1,22): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "plaintext": true,
- "table": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "<td>",
- "no_escape": true
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><plaintext><td></plaintext><table></table></body></html>",
- "noQuirksBodyHtml": "<plaintext><td></plaintext><table></table>"
- }
- },
- {
- "data": "<plaintext></plaintext>",
- "errors": [
- "(1,11): expected-doctype-but-got-start-tag",
- "(1,23): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "plaintext": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "</plaintext>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><plaintext></plaintext></plaintext></body></html>",
- "noQuirksBodyHtml": "<plaintext></plaintext></plaintext>"
- }
- },
- {
- "data": "<!DOCTYPE html><table><tr>TEST",
- "errors": [
- "(1,30): foster-parenting-character-in-table",
- "(1,30): foster-parenting-character-in-table",
- "(1,30): foster-parenting-character-in-table",
- "(1,30): foster-parenting-character-in-table",
- "(1,30): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "TEST"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>TEST<table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "TEST<table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4>",
- "errors": [
- "(1,37): unexpected-start-tag",
- "(1,53): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "t1",
- "value": "1"
- },
- {
- "name": "t2",
- "value": "2"
- },
- {
- "name": "t3",
- "value": "3"
- },
- {
- "name": "t4",
- "value": "4"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body t1=\"1\" t2=\"2\" t3=\"3\" t4=\"4\"></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "</b test",
- "errors": [
- "(1,8): eof-in-attribute-name",
- "(1,8): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html></b test<b &=&>X",
- "errors": [
- "(1,24): invalid-character-in-attribute-name",
- "(1,32): named-entity-without-semicolon",
- "(1,33): attributes-in-end-tag",
- "(1,33): unexpected-end-tag-before-html"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>X</body></html>",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt",
- "errors": [
- "(1,9): need-space-after-doctype",
- "(1,54): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "attrs": [
- {
- "name": "type",
- "value": "text/x-foobar;baz"
- }
- ],
- "children": [
- {
- "text": "X</SCRipt",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script type=\"text/x-foobar;baz\">X</SCRipt</script></head><body></body></html>",
- "noQuirksBodyHtml": "<script type=\"text/x-foobar;baz\">X</SCRipt</script>"
- }
- },
- {
- "data": "&",
- "errors": [
- "(1,1): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "&",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>&</body></html>",
- "noQuirksBodyHtml": "&"
- }
- },
- {
- "data": "&#",
- "errors": [
- "(1,2): expected-numeric-entity",
- "(1,2): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "&#",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>&#</body></html>",
- "noQuirksBodyHtml": "&#"
- }
- },
- {
- "data": "&#X",
- "errors": [
- "(1,3): expected-numeric-entity",
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "&#X",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>&#X</body></html>",
- "noQuirksBodyHtml": "&#X"
- }
- },
- {
- "data": "&#x",
- "errors": [
- "(1,3): expected-numeric-entity",
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "&#x",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>&#x</body></html>",
- "noQuirksBodyHtml": "&#x"
- }
- },
- {
- "data": "-",
- "errors": [
- "(1,4): numeric-entity-without-semicolon",
- "(1,4): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>-</body></html>",
- "noQuirksBodyHtml": "-"
- }
- },
- {
- "data": "&x-test",
- "errors": [
- "(1,2): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "&x-test",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>&x-test</body></html>",
- "noQuirksBodyHtml": "&x-test"
- }
- },
- {
- "data": "<!doctypehtml><p><li>",
- "errors": [
- "(1,9): need-space-after-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "li": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "li"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><li></li></body></html>",
- "noQuirksBodyHtml": "<p></p><li></li>"
- }
- },
- {
- "data": "<!doctypehtml><p><dt>",
- "errors": [
- "(1,9): need-space-after-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "dt": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "dt"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><dt></dt></body></html>",
- "noQuirksBodyHtml": "<p></p><dt></dt>"
- }
- },
- {
- "data": "<!doctypehtml><p><dd>",
- "errors": [
- "(1,9): need-space-after-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "dd": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "dd"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><dd></dd></body></html>",
- "noQuirksBodyHtml": "<p></p><dd></dd>"
- }
- },
- {
- "data": "<!doctypehtml><p><form>",
- "errors": [
- "(1,9): need-space-after-doctype",
- "(1,23): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "form": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "form"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><form></form></body></html>",
- "noQuirksBodyHtml": "<p></p><form></form>"
- }
- },
- {
- "data": "<!DOCTYPE html><p></P>X",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p>X</body></html>",
- "noQuirksBodyHtml": "<p></p>X"
- }
- },
- {
- "data": "&",
- "errors": [
- "(1,4): named-entity-without-semicolon",
- "(1,4): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "&",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>&</body></html>",
- "noQuirksBodyHtml": "&"
- }
- },
- {
- "data": "&AMp;",
- "errors": [
- "(1,3): expected-named-entity",
- "(1,3): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "&AMp;",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>&AMp;</body></html>",
- "noQuirksBodyHtml": "&AMp;"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>",
- "errors": [
- "(1,110): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></body></html>",
- "noQuirksBodyHtml": "<thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>"
- }
- },
- {
- "data": "<!DOCTYPE html>X</body>X",
- "errors": [
- "(1,24): unexpected-char-after-body"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "XX"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>XX</body></html>",
- "noQuirksBodyHtml": "XX"
- }
- },
- {
- "data": "<!DOCTYPE html><!-- X",
- "errors": [
- "(1,21): eof-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "comment": " X"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><!-- X--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!-- X-->"
- }
- },
- {
- "data": "<!DOCTYPE html><table><caption>test TEST</caption><td>test",
- "errors": [
- "(1,54): unexpected-cell-in-table-body",
- "(1,58): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "tbody": true,
- "tr": true,
- "td": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "text": "test TEST"
- }
- ]
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "test"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption>test TEST</caption><tbody><tr><td>test</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><caption>test TEST</caption><tbody><tr><td>test</td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><select><option><optgroup>",
- "errors": [
- "(1,41): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true,
- "optgroup": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- },
- {
- "tag": "optgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><option></option><optgroup></optgroup></select></body></html>",
- "noQuirksBodyHtml": "<select><option></option><optgroup></optgroup></select>"
- }
- },
- {
- "data": "<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option>",
- "errors": [
- "(1,68): unexpected-select-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "optgroup": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "optgroup",
- "children": [
- {
- "tag": "option"
- }
- ]
- },
- {
- "tag": "option"
- }
- ]
- },
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><optgroup><option></option></optgroup><option></option></select><option></option></body></html>",
- "noQuirksBodyHtml": "<select><optgroup><option></option></optgroup><option></option></select><option></option>"
- }
- },
- {
- "data": "<!DOCTYPE html><select><optgroup><option><optgroup>",
- "errors": [
- "(1,51): eof-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "optgroup": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "optgroup",
- "children": [
- {
- "tag": "option"
- }
- ]
- },
- {
- "tag": "optgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><optgroup><option></option></optgroup><optgroup></optgroup></select></body></html>",
- "noQuirksBodyHtml": "<select><optgroup><option></option></optgroup><optgroup></optgroup></select>"
- }
- },
- {
- "data": "<!DOCTYPE html><datalist><option>foo</datalist>bar",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "datalist": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "datalist",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- },
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><datalist><option>foo</option></datalist>bar</body></html>",
- "noQuirksBodyHtml": "<datalist><option>foo</option></datalist>bar"
- }
- },
- {
- "data": "<!DOCTYPE html><font><input><input></font>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "font": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "font",
- "children": [
- {
- "tag": "input"
- },
- {
- "tag": "input"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><font><input><input></font></body></html>",
- "noQuirksBodyHtml": "<font><input><input></font>"
- }
- },
- {
- "data": "<!DOCTYPE html><!-- XXX - XXX -->",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "comment": " XXX - XXX "
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><!-- XXX - XXX --><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!-- XXX - XXX -->"
- }
- },
- {
- "data": "<!DOCTYPE html><!-- XXX - XXX",
- "errors": [
- "(1,29): eof-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "comment": " XXX - XXX"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><!-- XXX - XXX--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!-- XXX - XXX-->"
- }
- },
- {
- "data": "<!DOCTYPE html><!-- XXX - XXX - XXX -->",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "comment": " XXX - XXX - XXX "
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><!-- XXX - XXX - XXX --><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!-- XXX - XXX - XXX -->"
- }
- },
- {
- "data": "test\ntest",
- "errors": [
- "(2,4): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "test\ntest"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>test\ntest</body></html>",
- "noQuirksBodyHtml": "test\ntest"
- }
- },
- {
- "data": "<!DOCTYPE html><body><title>test</body></title>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "title": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "test</body>",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><title>test</body></title></body></html>",
- "noQuirksBodyHtml": "<title>test</body></title>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style>\nx { content:\"</style\" } </style>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "title": true,
- "meta": true,
- "link": true,
- "style": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "X"
- }
- ]
- },
- {
- "tag": "meta",
- "attrs": [
- {
- "name": "name",
- "value": "z"
- }
- ]
- },
- {
- "tag": "link",
- "attrs": [
- {
- "name": "rel",
- "value": "foo"
- }
- ]
- },
- {
- "tag": "style",
- "children": [
- {
- "text": "\nx { content:\"</style\" } ",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><title>X</title><meta name=\"z\"><link rel=\"foo\"><style>\nx { content:\"</style\" } </style></body></html>",
- "noQuirksBodyHtml": "<title>X</title><meta name=\"z\"><link rel=\"foo\"><style>\nx { content:\"</style\" } </style>"
- }
- },
- {
- "data": "<!DOCTYPE html><select><optgroup></optgroup></select>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "optgroup": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "optgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><optgroup></optgroup></select></body></html>",
- "noQuirksBodyHtml": "<select><optgroup></optgroup></select>"
- }
- },
- {
- "data": " \n ",
- "errors": [
- "(2,1): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": " \n "
- }
- },
- {
- "data": "<!DOCTYPE html> <html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<!DOCTYPE html><script>\n</script> <title>x</title> </head>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "title": true,
- "body": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": "\n",
- "no_escape": true
- }
- ]
- },
- {
- "text": " "
- },
- {
- "tag": "title",
- "children": [
- {
- "text": "x"
- }
- ]
- },
- {
- "text": " "
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><script>\n</script> <title>x</title> </head><body></body></html>",
- "noQuirksBodyHtml": "<script>\n</script> <title>x</title> "
- }
- },
- {
- "data": "<!DOCTYPE html><html><body><html id=x>",
- "errors": [
- "(1,38): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "id",
- "value": "x"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html id=\"x\"><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html>X</body><html id=\"x\">",
- "errors": [
- "(1,36): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "id",
- "value": "x"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html id=\"x\"><head></head><body>X</body></html>",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<!DOCTYPE html><head><html id=x>",
- "errors": [
- "(1,32): non-html-root"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "attrs": [
- {
- "name": "id",
- "value": "x"
- }
- ],
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html id=\"x\"><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE html>X</html>X",
- "errors": [
- "(1,24): expected-eof-but-got-char"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "XX"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>XX</body></html>",
- "noQuirksBodyHtml": "XX"
- }
- },
- {
- "data": "<!DOCTYPE html>X</html> ",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X "
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>X </body></html>",
- "noQuirksBodyHtml": "X "
- }
- },
- {
- "data": "<!DOCTYPE html>X</html><p>X",
- "errors": [
- "(1,26): expected-eof-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>X<p>X</p></body></html>",
- "noQuirksBodyHtml": "X<p>X</p>"
- }
- },
- {
- "data": "<!DOCTYPE html>X<p/x/y/z>",
- "errors": [
- "(1,19): unexpected-character-after-solidus-in-tag",
- "(1,21): unexpected-character-after-solidus-in-tag",
- "(1,23): unexpected-character-after-solidus-in-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- },
- {
- "tag": "p",
- "attrs": [
- {
- "name": "x",
- "value": ""
- },
- {
- "name": "y",
- "value": ""
- },
- {
- "name": "z",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>X<p x=\"\" y=\"\" z=\"\"></p></body></html>",
- "noQuirksBodyHtml": "X<p x=\"\" y=\"\" z=\"\"></p>"
- }
- },
- {
- "data": "<!DOCTYPE html><!--x--",
- "errors": [
- "(1,22): eof-in-comment-double-dash"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "comment": "x"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><!--x--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!--x-->"
- }
- },
- {
- "data": "<!DOCTYPE html><table><tr><td></p></table>",
- "errors": [
- "(1,34): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><p></p></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><p></p></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->-->",
- "errors": [
- "(1,20): expected-space-or-right-bracket-in-doctype",
- "(1,25): unknown-doctype",
- "(1,35): unexpected-char-in-comment"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true,
- "escaped": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "<!doctype"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": ">",
- "escaped": true
- },
- {
- "comment": "<!--x"
- },
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE <!doctype><html><head></head><body>><!--<!--x-->--></body></html>",
- "noQuirksBodyHtml": "><!--<!--x-->-->"
- }
- },
- {
- "data": "<!doctype html><div><form></form><div></div></div>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "form": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "form"
- },
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><div><form></form><div></div></div></body></html>",
- "noQuirksBodyHtml": "<div><form></form><div></div></div>"
- }
- }
- ],
- "tests20.dat": [
- {
- "data": "<!doctype html><p><button><button>",
- "errors": [
- "(1,34): unexpected-start-tag-implies-end-tag",
- "(1,34): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button"
- },
- {
- "tag": "button"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button></button><button></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button></button><button></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><address>",
- "errors": [
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "address": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "address"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><address></address></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><address></address></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><blockquote>",
- "errors": [
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "blockquote": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "blockquote"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><blockquote></blockquote></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><blockquote></blockquote></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><menu>",
- "errors": [
- "(1,32): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "menu": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "menu"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><menu></menu></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><menu></menu></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><p>",
- "errors": [
- "(1,29): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><p></p></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><p></p></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><ul>",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "ul": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "ul"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><ul></ul></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><ul></ul></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><h1>",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "h1": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "h1"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><h1></h1></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><h1></h1></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><h6>",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "h6": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "h6"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><h6></h6></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><h6></h6></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><listing>",
- "errors": [
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "listing": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "listing"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><listing></listing></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><listing></listing></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><pre>",
- "errors": [
- "(1,31): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "pre"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><pre></pre></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><pre></pre></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><form>",
- "errors": [
- "(1,32): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "form": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "form"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><form></form></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><form></form></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><li>",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "li": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "li"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><li></li></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><li></li></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><dd>",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "dd": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "dd"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><dd></dd></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><dd></dd></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><dt>",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "dt": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "dt"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><dt></dt></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><dt></dt></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><plaintext>",
- "errors": [
- "(1,37): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "plaintext": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "plaintext"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><plaintext></plaintext></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><plaintext></plaintext></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><table>",
- "errors": [
- "(1,33): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><table></table></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><table></table></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><hr>",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "hr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "hr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><hr></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><hr></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button><xmp>",
- "errors": [
- "(1,31): expected-named-closing-tag-but-got-eof",
- "(1,31): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true,
- "xmp": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "xmp"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><xmp></xmp></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><xmp></xmp></button></p>"
- }
- },
- {
- "data": "<!doctype html><p><button></p>",
- "errors": [
- "(1,30): unexpected-end-tag",
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "button": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><button><p></p></button></p></body></html>",
- "noQuirksBodyHtml": "<p><button><p></p></button></p>"
- }
- },
- {
- "data": "<!doctype html><address><button></address>a",
- "errors": [
- "(1,42): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "address": true,
- "button": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "address",
- "children": [
- {
- "tag": "button"
- }
- ]
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><address><button></button></address>a</body></html>",
- "noQuirksBodyHtml": "<address><button></button></address>a"
- }
- },
- {
- "data": "<!doctype html><address><button></address>a",
- "errors": [
- "(1,42): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "address": true,
- "button": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "address",
- "children": [
- {
- "tag": "button"
- }
- ]
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><address><button></button></address>a</body></html>",
- "noQuirksBodyHtml": "<address><button></button></address>a"
- }
- },
- {
- "data": "<p><table></p>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-end-tag-implies-table-voodoo",
- "(1,14): unexpected-end-tag",
- "(1,14): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><p></p><table></table></p></body></html>",
- "noQuirksBodyHtml": "<p></p><p></p><table></table>"
- }
- },
- {
- "data": "<!doctype html><svg>",
- "errors": [
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<!doctype html><p><figcaption>",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "figcaption": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "figcaption"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><figcaption></figcaption></body></html>",
- "noQuirksBodyHtml": "<p></p><figcaption></figcaption>"
- }
- },
- {
- "data": "<!doctype html><p><summary>",
- "errors": [
- "(1,27): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "summary": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "summary"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><summary></summary></body></html>",
- "noQuirksBodyHtml": "<p></p><summary></summary>"
- }
- },
- {
- "data": "<!doctype html><form><table><form>",
- "errors": [
- "(1,34): unexpected-form-in-table",
- "(1,34): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "form": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "form",
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><form><table></table></form></body></html>",
- "noQuirksBodyHtml": "<form><table></table></form>"
- }
- },
- {
- "data": "<!doctype html><table><form><form>",
- "errors": [
- "(1,28): unexpected-form-in-table",
- "(1,34): unexpected-form-in-table",
- "(1,34): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "form": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "form"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><form></form></table></body></html>",
- "noQuirksBodyHtml": "<table><form></form></table>"
- }
- },
- {
- "data": "<!doctype html><table><form></table><form>",
- "errors": [
- "(1,28): unexpected-form-in-table",
- "(1,42): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "form": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "form"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><form></form></table></body></html>",
- "noQuirksBodyHtml": "<table><form></form></table>"
- }
- },
- {
- "data": "<!doctype html><svg><foreignObject><p>",
- "errors": [
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg foreignObject": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><foreignObject><p></p></foreignObject></svg></body></html>",
- "noQuirksBodyHtml": "<svg><foreignObject><p></p></foreignObject></svg>"
- }
- },
- {
- "data": "<!doctype html><svg><title>abc",
- "errors": [
- "(1,30): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg title": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "title",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "abc"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><title>abc</title></svg></body></html>",
- "noQuirksBodyHtml": "<svg><title>abc</title></svg>"
- }
- },
- {
- "data": "<option><span><option>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,22): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "option": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><option><span><option></option></span></option></body></html>",
- "noQuirksBodyHtml": "<option><span><option></option></span></option>"
- }
- },
- {
- "data": "<option><option>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "option": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "option"
- },
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><option></option><option></option></body></html>",
- "noQuirksBodyHtml": "<option></option><option></option>"
- }
- },
- {
- "data": "<math><annotation-xml><div>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,27): unexpected-html-element-in-foreign-content",
- "(1,27): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- },
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml></annotation-xml></math><div></div></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml><div></div></annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml encoding=\"application/svg+xml\"><div>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,58): unexpected-html-element-in-foreign-content",
- "(1,58): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "encoding",
- "value": "application/svg+xml"
- }
- ]
- }
- ]
- },
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml encoding=\"application/svg+xml\"></annotation-xml></math><div></div></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml encoding=\"application/svg+xml\"><div></div></annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml encoding=\"application/xhtml+xml\"><div>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,60): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "encoding",
- "value": "application/xhtml+xml"
- }
- ],
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml encoding=\"application/xhtml+xml\"><div></div></annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml encoding=\"application/xhtml+xml\"><div></div></annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,60): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "encoding",
- "value": "aPPlication/xhtmL+xMl"
- }
- ],
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div></div></annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div></div></annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml encoding=\"text/html\"><div>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,48): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "encoding",
- "value": "text/html"
- }
- ],
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml encoding=\"text/html\"><div></div></annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml encoding=\"text/html\"><div></div></annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml encoding=\"Text/htmL\"><div>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,48): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "encoding",
- "value": "Text/htmL"
- }
- ],
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml encoding=\"Text/htmL\"><div></div></annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml encoding=\"Text/htmL\"><div></div></annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml encoding=\" text/html \"><div>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,50): unexpected-html-element-in-foreign-content",
- "(1,50): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "encoding",
- "value": " text/html "
- }
- ]
- }
- ]
- },
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml encoding=\" text/html \"></annotation-xml></math><div></div></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml encoding=\" text/html \"><div></div></annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml> </annotation-xml>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,40): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml> </annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml> </annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml>c</annotation-xml>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,40): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "c"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml>c</annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml>c</annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml><!--foo-->",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,32): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "comment": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml><!--foo--></annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml><!--foo--></annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml></svg>x",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,28): unexpected-end-tag",
- "(1,29): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml>x</annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml>x</annotation-xml></math>"
- }
- },
- {
- "data": "<math><annotation-xml><svg>x",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,28): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><annotation-xml><svg>x</svg></annotation-xml></math></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml><svg>x</svg></annotation-xml></math>"
- }
- }
- ],
- "tests21.dat": [
- {
- "data": "<svg><![CDATA[foo]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>foo</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo</svg>"
- }
- },
- {
- "data": "<math><![CDATA[foo]]>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math>foo</math></body></html>",
- "noQuirksBodyHtml": "<math>foo</math>"
- }
- },
- {
- "data": "<div><![CDATA[foo]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,7): expected-dashes-or-doctype",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "comment": "[CDATA[foo]]"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><!--[CDATA[foo]]--></div></body></html>",
- "noQuirksBodyHtml": "<div><!--[CDATA[foo]]--></div>"
- }
- },
- {
- "data": "<svg><![CDATA[foo",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>foo</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[foo",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>foo</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,14): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[]] >]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "]] >",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>]] ></svg></body></html>",
- "noQuirksBodyHtml": "<svg>]] ></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[]] >]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "]] >",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>]] ></svg></body></html>",
- "noQuirksBodyHtml": "<svg>]] ></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[]]",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "]]"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>]]</svg></body></html>",
- "noQuirksBodyHtml": "<svg>]]</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[]",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "]"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>]</svg></body></html>",
- "noQuirksBodyHtml": "<svg>]</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[]>a",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "]>a",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg>]>a</svg></body></html>",
- "noQuirksBodyHtml": "<svg>]>a</svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><svg><![CDATA[foo]]]>",
- "errors": [
- "(1,36): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo]"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg>foo]</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo]</svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><svg><![CDATA[foo]]]]>",
- "errors": [
- "(1,37): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo]]"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg>foo]]</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo]]</svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><svg><![CDATA[foo]]]]]>",
- "errors": [
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "foo]]]"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg>foo]]]</svg></body></html>",
- "noQuirksBodyHtml": "<svg>foo]]]</svg>"
- }
- },
- {
- "data": "<svg><foreignObject><div><![CDATA[foo]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,27): expected-dashes-or-doctype",
- "(1,40): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg foreignObject": true,
- "div": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "comment": "[CDATA[foo]]"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><foreignObject><div><!--[CDATA[foo]]--></div></foreignObject></svg></body></html>",
- "noQuirksBodyHtml": "<svg><foreignObject><div><!--[CDATA[foo]]--></div></foreignObject></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[<svg>]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,22): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "<svg>",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg><svg></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[</svg>a]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,24): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "</svg>a",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg>a</svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>a</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[<svg>a",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "<svg>a",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><svg>a</svg></body></html>",
- "noQuirksBodyHtml": "<svg><svg>a</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[</svg>a",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "</svg>a",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg>a</svg></body></html>",
- "noQuirksBodyHtml": "<svg></svg>a</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[<svg>]]><path>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,28): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg path": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "<svg>",
- "escaped": true
- },
- {
- "tag": "path",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><svg><path></path></svg></body></html>",
- "noQuirksBodyHtml": "<svg><svg><path></path></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[<svg>]]></path>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,29): unexpected-end-tag",
- "(1,29): unexpected-end-tag",
- "(1,29): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "<svg>",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><svg></svg></body></html>",
- "noQuirksBodyHtml": "<svg><svg></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[<svg>]]><!--path-->",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true,
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "<svg>",
- "escaped": true
- },
- {
- "comment": "path"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><svg><!--path--></svg></body></html>",
- "noQuirksBodyHtml": "<svg><svg><!--path--></svg>"
- }
- },
- {
- "data": "<svg><![CDATA[<svg>]]>path",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,26): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "<svg>path",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><svg>path</svg></body></html>",
- "noQuirksBodyHtml": "<svg><svg>path</svg>"
- }
- },
- {
- "data": "<svg><![CDATA[<!--svg-->]]>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,27): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "text": "<!--svg-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><!--svg--></svg></body></html>",
- "noQuirksBodyHtml": "<svg><!--svg--></svg>"
- }
- }
- ],
- "tests22.dat": [
- {
- "data": "<a><b><big><em><strong><div>X</a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,33): adoption-agency-1.3",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true,
- "big": true,
- "em": true,
- "strong": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "big",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "strong"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "big",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "strong",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><b><big><em><strong></strong></em></big></b></a><big><em><strong><div><a>X</a></div></strong></em></big></body></html>",
- "noQuirksBodyHtml": "<a><b><big><em><strong></strong></em></big></b></a><big><em><strong><div><a>X</a></div></strong></em></big>"
- }
- },
- {
- "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,91): adoption-agency-1.3",
- "(1,91): adoption-agency-1.3",
- "(1,91): adoption-agency-1.3",
- "(1,91): adoption-agency-1.3",
- "(1,91): adoption-agency-1.3",
- "(1,91): adoption-agency-1.3",
- "(1,91): adoption-agency-1.3",
- "(1,91): adoption-agency-1.3",
- "(1,91): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "1"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "2"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "3"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "5"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "6"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "7"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "8"
- }
- ],
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a>A</a></div></div></div></div></div></div></div></div></b></body></html>",
- "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a>A</a></div></div></div></div></div></div></div></div></b>"
- }
- },
- {
- "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,101): adoption-agency-1.3",
- "(1,101): adoption-agency-1.3",
- "(1,101): adoption-agency-1.3",
- "(1,101): adoption-agency-1.3",
- "(1,101): adoption-agency-1.3",
- "(1,101): adoption-agency-1.3",
- "(1,101): adoption-agency-1.3",
- "(1,101): adoption-agency-1.3",
- "(1,101): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "1"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "2"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "3"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "5"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "6"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "7"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "8"
- }
- ],
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "9"
- }
- ],
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\">A</div></a></div></div></div></div></div></div></div></div></b></body></html>",
- "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\">A</div></a></div></div></div></div></div></div></div></div></b>"
- }
- },
- {
- "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,112): adoption-agency-1.3",
- "(1,112): adoption-agency-1.3",
- "(1,112): adoption-agency-1.3",
- "(1,112): adoption-agency-1.3",
- "(1,112): adoption-agency-1.3",
- "(1,112): adoption-agency-1.3",
- "(1,112): adoption-agency-1.3",
- "(1,112): adoption-agency-1.3",
- "(1,112): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "b": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "1"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "2"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "3"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "5"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "6"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "7"
- }
- ],
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "8"
- }
- ],
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "9"
- }
- ],
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "10"
- }
- ],
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\"><div id=\"10\">A</div></div></a></div></div></div></div></div></div></div></div></b></body></html>",
- "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\"><div id=\"10\">A</div></div></a></div></div></div></div></div></div></div></div></b>"
- }
- },
- {
- "data": "<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,46): adoption-agency-1.3",
- "(1,50): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "cite": true,
- "b": true,
- "i": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "cite",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "cite",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "cite",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "cite",
- "children": [
- {
- "tag": "i"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "X"
- }
- ]
- },
- {
- "text": "TEST"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><cite><b><cite><i><cite><i><cite><i></i></cite></i></cite></i></cite></b><i><i><div><b>X</b>TEST</div></i></i></cite></body></html>",
- "noQuirksBodyHtml": "<cite><b><cite><i><cite><i><cite><i></i></cite></i></cite></i></cite></b><i><i><div><b>X</b>TEST</div></i></i></cite>"
- }
- }
- ],
- "tests23.dat": [
- {
- "data": "<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,116): unexpected-end-tag",
- "(1,117): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ],
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><font size=\"4\"><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\"></font></font></font></font></font></font></font></font></p><p><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\">X</font></font></font></font></font></p></body></html>",
- "noQuirksBodyHtml": "<p><font size=\"4\"><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\"></font></font></font></font></font></font></font></font></p><p><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\">X</font></font></font></font></font></p>"
- }
- },
- {
- "data": "<p><font size=4><font size=4><font size=4><font size=4><p>X",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,58): unexpected-end-tag",
- "(1,59): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"4\">X</font></font></font></p></body></html>",
- "noQuirksBodyHtml": "<p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"4\">X</font></font></font></p>"
- }
- },
- {
- "data": "<p><font size=4><font size=4><font size=4><font size=\"5\"><font size=4><p>X",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,73): unexpected-end-tag",
- "(1,74): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "5"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "5"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\"></font></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\">X</font></font></font></font></p></body></html>",
- "noQuirksBodyHtml": "<p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\"></font></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\">X</font></font></font></font></p>"
- }
- },
- {
- "data": "<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,68): unexpected-end-tag",
- "(1,69): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "font": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- },
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "id",
- "value": "b"
- },
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- },
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "id",
- "value": "b"
- },
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "4"
- }
- ],
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\">X</font></font></font></font></p></body></html>",
- "noQuirksBodyHtml": "<p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\">X</font></font></font></font></p>"
- }
- },
- {
- "data": "<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,64): end-tag-too-early",
- "(1,67): unexpected-end-tag",
- "(1,68): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "b": true,
- "object": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "object",
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "b",
- "attrs": [
- {
- "name": "id",
- "value": "a"
- }
- ],
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "Y"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b><object><b id=\"a\"><b id=\"a\">X</b></b></object></b></b></b></b></p><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b>Y</b></b></b></b></p></body></html>",
- "noQuirksBodyHtml": "<p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b><object><b id=\"a\"><b id=\"a\">X</b></b></object></b></b></b></b></p><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b>Y</b></b></b></b></p>"
- }
- }
- ],
- "tests24.dat": [
- {
- "data": "<!DOCTYPE html>≂̸",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "≂̸"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>≂̸</body></html>",
- "noQuirksBodyHtml": "≂̸"
- }
- },
- {
- "data": "<!DOCTYPE html>≂̸A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "≂̸A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>≂̸A</body></html>",
- "noQuirksBodyHtml": "≂̸A"
- }
- },
- {
- "data": "<!DOCTYPE html>  ",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body> </body></html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<!DOCTYPE html>  A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": " A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body> A</body></html>",
- "noQuirksBodyHtml": " A"
- }
- },
- {
- "data": "<!DOCTYPE html>⊂⃒",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "⊂⃒"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>⊂⃒</body></html>",
- "noQuirksBodyHtml": "⊂⃒"
- }
- },
- {
- "data": "<!DOCTYPE html>⊂⃒A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "⊂⃒A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>⊂⃒A</body></html>",
- "noQuirksBodyHtml": "⊂⃒A"
- }
- },
- {
- "data": "<!DOCTYPE html>𝔾",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "𝔾"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>𝔾</body></html>",
- "noQuirksBodyHtml": "𝔾"
- }
- },
- {
- "data": "<!DOCTYPE html>𝔾A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "𝔾A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>𝔾A</body></html>",
- "noQuirksBodyHtml": "𝔾A"
- }
- }
- ],
- "tests25.dat": [
- {
- "data": "<!DOCTYPE html><body><foo>A",
- "errors": [
- "(1,27): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "foo": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><foo>A</foo></body></html>",
- "noQuirksBodyHtml": "<foo>A</foo>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><area>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "area": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "area"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><area>A</body></html>",
- "noQuirksBodyHtml": "<area>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><base>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "base": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "base"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><base>A</body></html>",
- "noQuirksBodyHtml": "<base>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><basefont>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "basefont": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "basefont"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><basefont>A</body></html>",
- "noQuirksBodyHtml": "<basefont>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><bgsound>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "bgsound": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "bgsound"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><bgsound>A</body></html>",
- "noQuirksBodyHtml": "<bgsound>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><br>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "br": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "br"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><br>A</body></html>",
- "noQuirksBodyHtml": "<br>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><col>A",
- "errors": [
- "(1,26): unexpected-start-tag-ignored"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>A</body></html>",
- "noQuirksBodyHtml": "A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><command>A",
- "errors": [
- "eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "command": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "command",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><command>A</command></body></html>",
- "noQuirksBodyHtml": "<command>A</command>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><embed>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "embed": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "embed"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><embed>A</body></html>",
- "noQuirksBodyHtml": "<embed>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><frame>A",
- "errors": [
- "(1,28): unexpected-start-tag-ignored"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>A</body></html>",
- "noQuirksBodyHtml": "A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><hr>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "hr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "hr"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><hr>A</body></html>",
- "noQuirksBodyHtml": "<hr>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><img>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "img": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "img"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><img>A</body></html>",
- "noQuirksBodyHtml": "<img>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><input>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "input"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><input>A</body></html>",
- "noQuirksBodyHtml": "<input>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><keygen>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "keygen": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "keygen"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><keygen>A</body></html>",
- "noQuirksBodyHtml": "<keygen>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><link>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "link": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "link"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><link>A</body></html>",
- "noQuirksBodyHtml": "<link>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><meta>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "meta": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "meta"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><meta>A</body></html>",
- "noQuirksBodyHtml": "<meta>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><param>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "param": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "param"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><param>A</body></html>",
- "noQuirksBodyHtml": "<param>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><source>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "source": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "source"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><source>A</body></html>",
- "noQuirksBodyHtml": "<source>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><track>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "track": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "track"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><track>A</body></html>",
- "noQuirksBodyHtml": "<track>A"
- }
- },
- {
- "data": "<!DOCTYPE html><body><wbr>A",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "wbr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "wbr"
- },
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><wbr>A</body></html>",
- "noQuirksBodyHtml": "<wbr>A"
- }
- }
- ],
- "tests26.dat": [
- {
- "data": "<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>",
- "errors": [
- "(1,47): unexpected-start-tag-implies-end-tag",
- "(1,51): adoption-agency-1.3",
- "(1,74): unexpected-start-tag-implies-end-tag",
- "(1,74): adoption-agency-1.3",
- "(1,81): unexpected-start-tag-implies-end-tag",
- "(1,85): adoption-agency-1.3",
- "(1,108): unexpected-start-tag-implies-end-tag",
- "(1,108): adoption-agency-1.3",
- "(1,115): unexpected-start-tag-implies-end-tag",
- "(1,119): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "nobr": true,
- "br": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "#1"
- }
- ],
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "br"
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "#2"
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "#2"
- }
- ],
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "br"
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "#3"
- }
- ]
- }
- ]
- },
- {
- "tag": "a",
- "attrs": [
- {
- "name": "href",
- "value": "#3"
- }
- ],
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "3"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><a href=\"#1\"><nobr>1</nobr><nobr></nobr></a><nobr><br><a href=\"#2\"></a></nobr><a href=\"#2\"><nobr>2</nobr><nobr></nobr></a><nobr><br><a href=\"#3\"></a></nobr><a href=\"#3\"><nobr>3</nobr><nobr></nobr></a></body></html>",
- "noQuirksBodyHtml": "<a href=\"#1\"><nobr>1</nobr><nobr></nobr></a><nobr><br><a href=\"#2\"></a></nobr><a href=\"#2\"><nobr>2</nobr><nobr></nobr></a><nobr><br><a href=\"#3\"></a></nobr><a href=\"#3\"><nobr>3</nobr><nobr></nobr></a>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3",
- "errors": [
- "(1,37): unexpected-start-tag-implies-end-tag",
- "(1,41): adoption-agency-1.3",
- "(1,50): unexpected-start-tag-implies-end-tag",
- "(1,50): adoption-agency-1.3",
- "(1,57): unexpected-start-tag-implies-end-tag",
- "(1,61): adoption-agency-1.3",
- "(1,62): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "text": "3"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></body></html>",
- "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3",
- "errors": [
- "(1,44): foster-parenting-start-tag",
- "(1,48): foster-parenting-end-tag",
- "(1,48): adoption-agency-1.3",
- "(1,51): foster-parenting-start-tag",
- "(1,57): foster-parenting-start-tag",
- "(1,57): nobr-already-in-scope",
- "(1,57): adoption-agency-1.2",
- "(1,58): foster-parenting-character",
- "(1,64): foster-parenting-start-tag",
- "(1,64): nobr-already-in-scope",
- "(1,68): foster-parenting-end-tag",
- "(1,68): adoption-agency-1.2",
- "(1,69): foster-parenting-character",
- "(1,69): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "i": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "text": "3"
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr><table></table></nobr></b></body></html>",
- "noQuirksBodyHtml": "<b><nobr>1<nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr><table></table></nobr></b>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3",
- "errors": [
- "(1,56): unexpected-end-tag",
- "(1,65): unexpected-start-tag-implies-end-tag",
- "(1,65): adoption-agency-1.3",
- "(1,72): unexpected-start-tag-implies-end-tag",
- "(1,76): adoption-agency-1.3",
- "(1,77): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "text": "3"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<table><tbody><tr><td><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></td></tr></tbody></table></nobr></b></body></html>",
- "noQuirksBodyHtml": "<b><nobr>1<table><tbody><tr><td><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></td></tr></tbody></table></nobr></b>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3",
- "errors": [
- "(1,42): unexpected-start-tag-implies-end-tag",
- "(1,42): adoption-agency-1.3",
- "(1,46): adoption-agency-1.3",
- "(1,46): adoption-agency-1.3",
- "(1,55): unexpected-start-tag-implies-end-tag",
- "(1,55): adoption-agency-1.3",
- "(1,62): unexpected-start-tag-implies-end-tag",
- "(1,66): adoption-agency-1.3",
- "(1,67): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "div": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "1"
- }
- ]
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr"
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "text": "3"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr></b><div><b><nobr></nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div></body></html>",
- "noQuirksBodyHtml": "<b><nobr>1</nobr></b><div><b><nobr></nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3",
- "errors": [
- "(1,37): unexpected-start-tag-implies-end-tag",
- "(1,41): adoption-agency-1.3",
- "(1,55): unexpected-start-tag-implies-end-tag",
- "(1,55): adoption-agency-1.3",
- "(1,62): unexpected-start-tag-implies-end-tag",
- "(1,66): adoption-agency-1.3",
- "(1,67): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "div": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "2"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "text": "3"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr></nobr></b><div><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div></body></html>",
- "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr></nobr></b><div><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>",
- "errors": [
- "(1,37): unexpected-start-tag-implies-end-tag",
- "(1,46): adoption-agency-1.3",
- "(1,55): unexpected-start-tag-implies-end-tag",
- "(1,55): adoption-agency-1.3",
- "(1,55): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "ins": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "1"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "ins"
- }
- ]
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "nobr"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr><ins></ins></nobr></b><nobr><i></i></nobr><i><nobr></nobr></i></body></html>",
- "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr><ins></ins></nobr></b><nobr><i></i></nobr><i><nobr></nobr></i>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2",
- "errors": [
- "(1,42): unexpected-start-tag-implies-end-tag",
- "(1,42): adoption-agency-1.3",
- "(1,46): adoption-agency-1.3",
- "(1,50): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "ins": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "ins"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "2"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<ins></ins></nobr><nobr></nobr></b><nobr><i>2</i></nobr></body></html>",
- "noQuirksBodyHtml": "<b><nobr>1<ins></ins></nobr><nobr></nobr></b><nobr><i>2</i></nobr>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>",
- "errors": [
- "(1,35): adoption-agency-1.3",
- "(1,44): unexpected-start-tag-implies-end-tag",
- "(1,44): adoption-agency-1.3",
- "(1,49): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "1"
- },
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "nobr",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "2"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><b>1<nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr></i></body></html>",
- "noQuirksBodyHtml": "<b>1<nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr></i>"
- }
- },
- {
- "data": "<p><code x</code></p>\n",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,11): invalid-character-in-attribute-name",
- "(1,12): unexpected-character-after-solidus-in-tag",
- "(1,21): unexpected-end-tag",
- "(2,0): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "code": true
- },
- "attrWithFunnyChar": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "code",
- "attrs": [
- {
- "name": "code",
- "value": ""
- },
- {
- "name": "x<",
- "value": ""
- }
- ]
- }
- ]
- },
- {
- "tag": "code",
- "attrs": [
- {
- "name": "code",
- "value": ""
- },
- {
- "name": "x<",
- "value": ""
- }
- ],
- "children": [
- {
- "text": "\n"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><code x<=\"\" code=\"\"></code></p><code x<=\"\" code=\"\">\n</code></body></html>",
- "noQuirksBodyHtml": "<p><code x<=\"\" code=\"\"></code></p><code x<=\"\" code=\"\">\n</code>"
- }
- },
- {
- "data": "<!DOCTYPE html><svg><foreignObject><p><i></p>a",
- "errors": [
- "(1,45): unexpected-end-tag",
- "(1,46): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg foreignObject": true,
- "p": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></body></html>",
- "noQuirksBodyHtml": "<svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg>"
- }
- },
- {
- "data": "<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a",
- "errors": [
- "(1,60): unexpected-end-tag",
- "(1,61): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true,
- "svg foreignObject": true,
- "p": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><math><mtext><p><i></p>a",
- "errors": [
- "(1,38): unexpected-end-tag",
- "(1,39): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mtext": true,
- "p": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mtext><p><i></i></p><i>a</i></mtext></math></body></html>",
- "noQuirksBodyHtml": "<math><mtext><p><i></i></p><i>a</i></mtext></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a",
- "errors": [
- "(1,53): unexpected-end-tag",
- "(1,54): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "math math": true,
- "math mtext": true,
- "p": true,
- "i": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mtext",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "i"
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mtext><p><i></i></p><i>a</i></mtext></math></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><math><mtext><p><i></i></p><i>a</i></mtext></math></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><div><!/div>a",
- "errors": [
- "(1,28): expected-dashes-or-doctype",
- "(1,34): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- },
- "doctype": true,
- "comment": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "comment": "/div"
- },
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><div><!--/div-->a</div></body></html>",
- "noQuirksBodyHtml": "<div><!--/div-->a</div>"
- }
- },
- {
- "data": "<button><p><button>",
- "errors": [
- "Line 1 Col 8 Unexpected start tag (button). Expected DOCTYPE.",
- "Line 1 Col 19 Unexpected start tag (button) implies end tag (button).",
- "Line 1 Col 19 Expected closing tag. Unexpected end of file."
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "button": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "button",
- "children": [
- {
- "tag": "p"
- }
- ]
- },
- {
- "tag": "button"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><button><p></p></button><button></button></body></html>",
- "noQuirksBodyHtml": "<button><p></p></button><button></button>"
- }
- }
- ],
- "tests3.dat": [
- {
- "data": "<head></head><style></style>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,20): unexpected-start-tag-out-of-my-head"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><style></style></head><body></body></html>",
- "noQuirksBodyHtml": "<style></style>"
- }
- },
- {
- "data": "<head></head><script></script>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,21): unexpected-start-tag-out-of-my-head"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><script></script></head><body></body></html>",
- "noQuirksBodyHtml": "<script></script>"
- }
- },
- {
- "data": "<head></head><!-- --><style></style><!-- --><script></script>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,28): unexpected-start-tag-out-of-my-head",
- "(1,52): unexpected-start-tag-out-of-my-head"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "script": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style"
- },
- {
- "tag": "script"
- }
- ]
- },
- {
- "comment": " "
- },
- {
- "comment": " "
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><style></style><script></script></head><!-- --><!-- --><body></body></html>",
- "noQuirksBodyHtml": "<!-- --><style></style><!-- --><script></script>"
- }
- },
- {
- "data": "<head></head><!-- -->x<style></style><!-- --><script></script>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "style": true,
- "script": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "comment": " "
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- },
- {
- "tag": "style"
- },
- {
- "comment": " "
- },
- {
- "tag": "script"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><!-- --><body>x<style></style><!-- --><script></script></body></html>",
- "noQuirksBodyHtml": "<!-- -->x<style></style><!-- --><script></script>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><pre>\n</pre></body></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre></pre></body></html>",
- "noQuirksBodyHtml": "<pre></pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><pre>\nfoo</pre></body></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>foo</pre></body></html>",
- "noQuirksBodyHtml": "<pre>foo</pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><pre>\n\nfoo</pre></body></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "\nfoo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>\nfoo</pre></body></html>",
- "noQuirksBodyHtml": "<pre>\nfoo</pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><pre>\nfoo\n</pre></body></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "foo\n"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>foo\n</pre></body></html>",
- "noQuirksBodyHtml": "<pre>foo\n</pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true,
- "span": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "x"
- }
- ]
- },
- {
- "tag": "span",
- "children": [
- {
- "text": "\n"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
- "noQuirksBodyHtml": "<pre>x</pre><span>\n</span>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "x\ny"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
- "noQuirksBodyHtml": "<pre>x\ny</pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</pre></body></html>",
- "errors": [
- "(2,7): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true,
- "div": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "x"
- },
- {
- "tag": "div",
- "children": [
- {
- "text": "\ny"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</div></pre></body></html>",
- "noQuirksBodyHtml": "<pre>x<div>\ny</div></pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><pre>

A</pre>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "pre": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "pre",
- "children": [
- {
- "text": "\nA"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
- "noQuirksBodyHtml": "<pre>\nA</pre>"
- }
- },
- {
- "data": "<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>",
- "errors": [
- "(1,33): two-heads-are-not-better-than-one"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "meta": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "meta"
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><meta></head><body></body></html>",
- "noQuirksBodyHtml": "<meta>"
- }
- },
- {
- "data": "<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>",
- "errors": [
- "(1,33): two-heads-are-not-better-than-one"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<textarea>foo<span>bar</span><i>baz",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,35): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "foo<span>bar</span><i>baz",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><textarea>foo<span>bar</span><i>baz</textarea></body></html>",
- "noQuirksBodyHtml": "<textarea>foo<span>bar</span><i>baz</textarea>"
- }
- },
- {
- "data": "<title>foo<span>bar</em><i>baz",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,30): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "foo<span>bar</em><i>baz",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><title>foo<span>bar</em><i>baz</title></head><body></body></html>",
- "noQuirksBodyHtml": "<title>foo<span>bar</em><i>baz</title>"
- }
- },
- {
- "data": "<!DOCTYPE html><textarea>\n</textarea>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></body></html>",
- "noQuirksBodyHtml": "<textarea></textarea>"
- }
- },
- {
- "data": "<!DOCTYPE html><textarea>\nfoo</textarea>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><textarea>foo</textarea></body></html>",
- "noQuirksBodyHtml": "<textarea>foo</textarea>"
- }
- },
- {
- "data": "<!DOCTYPE html><textarea>\n\nfoo</textarea>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": "\nfoo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><textarea>\nfoo</textarea></body></html>",
- "noQuirksBodyHtml": "<textarea>\nfoo</textarea>"
- }
- },
- {
- "data": "<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>",
- "errors": [
- "(1,60): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ul": true,
- "li": true,
- "div": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ul",
- "children": [
- {
- "tag": "li",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "p"
- }
- ]
- }
- ]
- },
- {
- "tag": "li"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><ul><li><div><p></p></div></li><li></li></ul></body></html>",
- "noQuirksBodyHtml": "<ul><li><div><p></p></div></li><li></li></ul>"
- }
- },
- {
- "data": "<!doctype html><nobr><nobr><nobr>",
- "errors": [
- "(1,27): unexpected-start-tag-implies-end-tag",
- "(1,33): unexpected-start-tag-implies-end-tag",
- "(1,33): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "nobr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "nobr"
- },
- {
- "tag": "nobr"
- },
- {
- "tag": "nobr"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><nobr></nobr><nobr></nobr><nobr></nobr></body></html>",
- "noQuirksBodyHtml": "<nobr></nobr><nobr></nobr><nobr></nobr>"
- }
- },
- {
- "data": "<!doctype html><nobr><nobr></nobr><nobr>",
- "errors": [
- "(1,27): unexpected-start-tag-implies-end-tag",
- "(1,40): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "nobr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "nobr"
- },
- {
- "tag": "nobr"
- },
- {
- "tag": "nobr"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><nobr></nobr><nobr></nobr><nobr></nobr></body></html>",
- "noQuirksBodyHtml": "<nobr></nobr><nobr></nobr><nobr></nobr>"
- }
- },
- {
- "data": "<!doctype html><html><body><p><table></table></body></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p></p><table></table></body></html>",
- "noQuirksBodyHtml": "<p></p><table></table>"
- }
- },
- {
- "data": "<p><table></table>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><table></table></p></body></html>",
- "noQuirksBodyHtml": "<p></p><table></table>"
- }
- }
- ],
- "tests4.dat": [
- {
- "data": "direct div content",
- "errors": [],
- "fragment": {
- "name": "div"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "direct div content"
- }
- ],
- "html": "direct div content",
- "noQuirksBodyHtml": "direct div content"
- }
- },
- {
- "data": "direct textarea content",
- "errors": [],
- "fragment": {
- "name": "textarea"
- },
- "document": {
- "props": {
- "tags": {}
- },
- "tree": [
- {
- "text": "direct textarea content"
- }
- ],
- "html": "direct textarea content",
- "noQuirksBodyHtml": "direct textarea content"
- }
- },
- {
- "data": "textarea content with <em>pseudo</em> <foo>markup",
- "errors": [],
- "fragment": {
- "name": "textarea"
- },
- "document": {
- "props": {
- "tags": {},
- "escaped": true
- },
- "tree": [
- {
- "text": "textarea content with <em>pseudo</em> <foo>markup",
- "escaped": true
- }
- ],
- "html": "textarea content with <em>pseudo</em> <foo>markup",
- "noQuirksBodyHtml": "textarea content with <em>pseudo</em> <foo>markup</foo>"
- }
- },
- {
- "data": "this is CDATA inside a <style> element",
- "errors": [],
- "fragment": {
- "name": "style"
- },
- "document": {
- "props": {
- "tags": {},
- "no_escape": true
- },
- "tree": [
- {
- "text": "this is CDATA inside a <style> element",
- "no_escape": true
- }
- ],
- "html": "this is CDATA inside a <style> element",
- "noQuirksBodyHtml": "this is CDATA inside a <style> element</style>"
- }
- },
- {
- "data": "</plaintext>",
- "errors": [],
- "fragment": {
- "name": "plaintext"
- },
- "document": {
- "props": {
- "tags": {},
- "no_escape": true
- },
- "tree": [
- {
- "text": "</plaintext>",
- "no_escape": true
- }
- ],
- "html": "</plaintext>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "setting html's innerHTML",
- "errors": [],
- "fragment": {
- "name": "html"
- },
- "document": {
- "props": {
- "tags": {
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "setting html's innerHTML"
- }
- ]
- }
- ],
- "html": "<head></head><body>setting html's innerHTML</body>",
- "noQuirksBodyHtml": "setting html's innerHTML"
- }
- },
- {
- "data": "<title>setting head's innerHTML</title>",
- "errors": [],
- "fragment": {
- "name": "head"
- },
- "document": {
- "props": {
- "tags": {
- "title": true
- }
- },
- "tree": [
- {
- "tag": "title",
- "children": [
- {
- "text": "setting head's innerHTML"
- }
- ]
- }
- ],
- "html": "<title>setting head's innerHTML</title>",
- "noQuirksBodyHtml": "<title>setting head's innerHTML</title>"
- }
- }
- ],
- "tests5.dat": [
- {
- "data": "<style> <!-- </style>x",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": " <!-- ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style> <!-- </style></head><body>x</body></html>",
- "noQuirksBodyHtml": "<style> <!-- </style>x"
- }
- },
- {
- "data": "<style> <!-- </style> --> </style>x",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,34): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": " <!-- ",
- "no_escape": true
- }
- ]
- },
- {
- "text": " "
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "--> x",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style> <!-- </style> </head><body>--> x</body></html>",
- "noQuirksBodyHtml": "<style> <!-- </style> --> x"
- }
- },
- {
- "data": "<style> <!--> </style>x",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": " <!--> ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style> <!--> </style></head><body>x</body></html>",
- "noQuirksBodyHtml": "<style> <!--> </style>x"
- }
- },
- {
- "data": "<style> <!---> </style>x",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": " <!---> ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style> <!---> </style></head><body>x</body></html>",
- "noQuirksBodyHtml": "<style> <!---> </style>x"
- }
- },
- {
- "data": "<iframe> <!---> </iframe>x",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "iframe": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe",
- "children": [
- {
- "text": " <!---> ",
- "no_escape": true
- }
- ]
- },
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><iframe> <!---> </iframe>x</body></html>",
- "noQuirksBodyHtml": "<iframe> <!---> </iframe>x"
- }
- },
- {
- "data": "<iframe> <!--- </iframe>->x</iframe> --> </iframe>x",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,36): unexpected-end-tag",
- "(1,50): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "iframe": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "iframe",
- "children": [
- {
- "text": " <!--- ",
- "no_escape": true
- }
- ]
- },
- {
- "text": "->x --> x",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><iframe> <!--- </iframe>->x --> x</body></html>",
- "noQuirksBodyHtml": "<iframe> <!--- </iframe>->x --> x"
- }
- },
- {
- "data": "<script> <!-- </script> --> </script>x",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,37): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "script": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": " <!-- ",
- "no_escape": true
- }
- ]
- },
- {
- "text": " "
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "--> x",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><script> <!-- </script> </head><body>--> x</body></html>",
- "noQuirksBodyHtml": "<script> <!-- </script> --> x"
- }
- },
- {
- "data": "<title> <!-- </title> --> </title>x",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,34): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": " <!-- ",
- "escaped": true
- }
- ]
- },
- {
- "text": " "
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "--> x",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><title> <!-- </title> </head><body>--> x</body></html>",
- "noQuirksBodyHtml": "<title> <!-- </title> --> x"
- }
- },
- {
- "data": "<textarea> <!--- </textarea>->x</textarea> --> </textarea>x",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,42): unexpected-end-tag",
- "(1,58): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "textarea": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "textarea",
- "children": [
- {
- "text": " <!--- ",
- "escaped": true
- }
- ]
- },
- {
- "text": "->x --> x",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><textarea> <!--- </textarea>->x --> x</body></html>",
- "noQuirksBodyHtml": "<textarea> <!--- </textarea>->x --> x"
- }
- },
- {
- "data": "<style> <!</-- </style>x",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": " <!</-- ",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style> <!</-- </style></head><body>x</body></html>",
- "noQuirksBodyHtml": "<style> <!</-- </style>x"
- }
- },
- {
- "data": "<p><xmp></xmp>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "xmp": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p"
- },
- {
- "tag": "xmp"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p></p><xmp></xmp></body></html>",
- "noQuirksBodyHtml": "<p></p><xmp></xmp>"
- }
- },
- {
- "data": "<xmp> <!-- > --> </xmp>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "xmp": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "xmp",
- "children": [
- {
- "text": " <!-- > --> ",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><xmp> <!-- > --> </xmp></body></html>",
- "noQuirksBodyHtml": "<xmp> <!-- > --> </xmp>"
- }
- },
- {
- "data": "<title>&</title>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "&",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><title>&</title></head><body></body></html>",
- "noQuirksBodyHtml": "<title>&</title>"
- }
- },
- {
- "data": "<title><!--&--></title>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "<!--&-->",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><title><!--&--></title></head><body></body></html>",
- "noQuirksBodyHtml": "<title><!--&--></title>"
- }
- },
- {
- "data": "<title><!--</title>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "<!--",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><title><!--</title></head><body></body></html>",
- "noQuirksBodyHtml": "<title><!--</title>"
- }
- },
- {
- "data": "<noscript><!--</noscript>--></noscript>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,39): unexpected-end-tag"
- ],
- "script": "on",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "no_escape": true,
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": "<!--",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "-->",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--</noscript></head><body>--></body></html>",
- "noQuirksBodyHtml": "<noscript><!--</noscript>--></noscript>"
- }
- },
- {
- "data": "<noscript><!--</noscript>--></noscript>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "noscript": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "comment": "</noscript>"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head><noscript><!--</noscript>--></noscript></head><body></body></html>",
- "noQuirksBodyHtml": "<noscript><!--</noscript>--></noscript>"
- }
- }
- ],
- "tests6.dat": [
- {
- "data": "<!doctype html></head> <head>",
- "errors": [
- "(1,29): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "text": " "
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head> <body></body></html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<!doctype html><form><div></form><div>",
- "errors": [
- "(1,33): end-tag-too-early-ignored",
- "(1,38): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "form": true,
- "div": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "form",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><form><div><div></div></div></form></body></html>",
- "noQuirksBodyHtml": "<form><div><div></div></div></form>"
- }
- },
- {
- "data": "<!doctype html><title>&</title>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "&",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><title>&</title></head><body></body></html>",
- "noQuirksBodyHtml": "<title>&</title>"
- }
- },
- {
- "data": "<!doctype html><title><!--&--></title>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "doctype": true,
- "escaped": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "<!--&-->",
- "escaped": true
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><title><!--&--></title></head><body></body></html>",
- "noQuirksBodyHtml": "<title><!--&--></title>"
- }
- },
- {
- "data": "<!doctype>",
- "errors": [
- "(1,9): need-space-after-doctype",
- "(1,10): expected-doctype-name-but-got-right-bracket",
- "(1,10): unknown-doctype"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": ""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE ><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!---x",
- "errors": [
- "(1,6): eof-in-comment",
- "(1,6): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": "-x"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!---x--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!---x-->"
- }
- },
- {
- "data": "<body>\n<div>",
- "errors": [
- "(1,6): unexpected-start-tag",
- "(2,5): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "div"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "text": "\n"
- },
- {
- "tag": "div"
- }
- ],
- "html": "\n<div></div>",
- "noQuirksBodyHtml": "\n<div></div>"
- }
- },
- {
- "data": "<frameset></frameset>\nfoo",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(2,1): unexpected-char-after-frameset",
- "(2,2): unexpected-char-after-frameset",
- "(2,3): unexpected-char-after-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "text": "\n"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset>\n</html>",
- "noQuirksBodyHtml": "\nfoo"
- }
- },
- {
- "data": "<frameset></frameset>\n<noframes>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(2,10): expected-named-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "noframes": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "text": "\n"
- },
- {
- "tag": "noframes"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset>\n<noframes></noframes></html>",
- "noQuirksBodyHtml": "\n<noframes></noframes>"
- }
- },
- {
- "data": "<frameset></frameset>\n<div>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(2,5): unexpected-start-tag-after-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "text": "\n"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset>\n</html>",
- "noQuirksBodyHtml": "\n<div></div>"
- }
- },
- {
- "data": "<frameset></frameset>\n</html>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "text": "\n"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset>\n</html>",
- "noQuirksBodyHtml": "\n"
- }
- },
- {
- "data": "<frameset></frameset>\n</div>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(2,6): unexpected-end-tag-after-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "text": "\n"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset>\n</html>",
- "noQuirksBodyHtml": "\n"
- }
- },
- {
- "data": "<form><form>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,12): unexpected-start-tag",
- "(1,12): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "form": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "form"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><form></form></body></html>",
- "noQuirksBodyHtml": "<form></form>"
- }
- },
- {
- "data": "<button><button>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,16): unexpected-start-tag-implies-end-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "button": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "button"
- },
- {
- "tag": "button"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><button></button><button></button></body></html>",
- "noQuirksBodyHtml": "<button></button><button></button>"
- }
- },
- {
- "data": "<table><tr><td></th>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,20): unexpected-end-tag",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><caption><td>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,20): unexpected-cell-in-table-body",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption"
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><caption></caption><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><caption></caption><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><caption><div>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
- }
- },
- {
- "data": "</caption><div>",
- "errors": [
- "(1,10): XXX-undefined-error",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<table><caption><div></caption>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,31): expected-one-end-tag-but-got-another",
- "(1,31): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
- }
- },
- {
- "data": "<table><caption></table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><caption></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption></caption></table>"
- }
- },
- {
- "data": "</table><div>",
- "errors": [
- "(1,8): unexpected-end-tag",
- "(1,13): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,23): unexpected-end-tag",
- "(1,29): unexpected-end-tag",
- "(1,40): unexpected-end-tag",
- "(1,47): unexpected-end-tag",
- "(1,55): unexpected-end-tag",
- "(1,60): unexpected-end-tag",
- "(1,68): unexpected-end-tag",
- "(1,73): unexpected-end-tag",
- "(1,81): unexpected-end-tag",
- "(1,86): unexpected-end-tag",
- "(1,86): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><caption></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption></caption></table>"
- }
- },
- {
- "data": "<table><caption><div></div>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,27): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
- }
- },
- {
- "data": "<table><tr><td></body></caption></col></colgroup></html>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,22): unexpected-end-tag",
- "(1,32): unexpected-end-tag",
- "(1,38): unexpected-end-tag",
- "(1,49): unexpected-end-tag",
- "(1,56): unexpected-end-tag",
- "(1,56): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "</table></tbody></tfoot></thead></tr><div>",
- "errors": [
- "(1,8): unexpected-end-tag",
- "(1,16): unexpected-end-tag",
- "(1,24): unexpected-end-tag",
- "(1,32): unexpected-end-tag",
- "(1,37): unexpected-end-tag",
- "(1,42): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<table><colgroup>foo",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,18): foster-parenting-character-in-table",
- "(1,19): foster-parenting-character-in-table",
- "(1,20): foster-parenting-character-in-table",
- "(1,20): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "foo"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>foo<table><colgroup></colgroup></table></body></html>",
- "noQuirksBodyHtml": "foo<table><colgroup></colgroup></table>"
- }
- },
- {
- "data": "foo<col>",
- "errors": [
- "(1,1): unexpected-character-in-colgroup",
- "(1,2): unexpected-character-in-colgroup",
- "(1,3): unexpected-character-in-colgroup"
- ],
- "fragment": {
- "name": "colgroup"
- },
- "document": {
- "props": {
- "tags": {
- "col": true
- }
- },
- "tree": [
- {
- "tag": "col"
- }
- ],
- "html": "<col>",
- "noQuirksBodyHtml": "foo"
- }
- },
- {
- "data": "<table><colgroup></col>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,23): no-end-tag",
- "(1,23): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "colgroup": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
- "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
- }
- },
- {
- "data": "<frameset><div>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,15): unexpected-start-tag-in-frameset",
- "(1,15): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "</frameset><frame>",
- "errors": [
- "(1,11): unexpected-frameset-in-frameset-innerhtml"
- ],
- "fragment": {
- "name": "frameset"
- },
- "document": {
- "props": {
- "tags": {
- "frame": true
- }
- },
- "tree": [
- {
- "tag": "frame"
- }
- ],
- "html": "<frame>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<frameset></div>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag",
- "(1,16): unexpected-end-tag-in-frameset",
- "(1,16): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "</body><div>",
- "errors": [
- "(1,7): unexpected-close-tag",
- "(1,12): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "body"
- },
- "document": {
- "props": {
- "tags": {
- "div": true
- }
- },
- "tree": [
- {
- "tag": "div"
- }
- ],
- "html": "<div></div>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<table><tr><div>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,16): unexpected-start-tag-implies-table-voodoo",
- "(1,16): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "table": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div></div><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<div></div><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "</tr><td>",
- "errors": [
- "(1,5): unexpected-end-tag"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "</tbody></tfoot></thead><td>",
- "errors": [
- "(1,8): unexpected-end-tag",
- "(1,16): unexpected-end-tag",
- "(1,24): unexpected-end-tag"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<table><tr><div><td>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,16): foster-parenting-start-tag",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div></div><table><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<div></div><table><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<caption><col><colgroup><tbody><tfoot><thead><tr>",
- "errors": [
- "(1,9): unexpected-start-tag",
- "(1,14): unexpected-start-tag",
- "(1,24): unexpected-start-tag",
- "(1,31): unexpected-start-tag",
- "(1,38): unexpected-start-tag",
- "(1,45): unexpected-start-tag"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "tr"
- }
- ],
- "html": "<tr></tr>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<table><tbody></thead>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,22): unexpected-end-tag-in-table-body",
- "(1,22): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody></tbody></table>"
- }
- },
- {
- "data": "</table><tr>",
- "errors": [
- "(1,8): unexpected-end-tag"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "tr"
- }
- ],
- "html": "<tr></tr>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<table><tbody></body></caption></col></colgroup></html></td></th></tr>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,21): unexpected-end-tag-in-table-body",
- "(1,31): unexpected-end-tag-in-table-body",
- "(1,37): unexpected-end-tag-in-table-body",
- "(1,48): unexpected-end-tag-in-table-body",
- "(1,55): unexpected-end-tag-in-table-body",
- "(1,60): unexpected-end-tag-in-table-body",
- "(1,65): unexpected-end-tag-in-table-body",
- "(1,70): unexpected-end-tag-in-table-body",
- "(1,70): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody></tbody></table>"
- }
- },
- {
- "data": "<table><tbody></div>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,20): unexpected-end-tag-implies-table-voodoo",
- "(1,20): end-tag-too-early",
- "(1,20): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody></tbody></table>"
- }
- },
- {
- "data": "<table><table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-start-tag-implies-end-tag",
- "(1,14): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table></table><table></table></body></html>",
- "noQuirksBodyHtml": "<table></table><table></table>"
- }
- },
- {
- "data": "<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-end-tag",
- "(1,24): unexpected-end-tag",
- "(1,30): unexpected-end-tag",
- "(1,41): unexpected-end-tag",
- "(1,48): unexpected-end-tag",
- "(1,56): unexpected-end-tag",
- "(1,61): unexpected-end-tag",
- "(1,69): unexpected-end-tag",
- "(1,74): unexpected-end-tag",
- "(1,82): unexpected-end-tag",
- "(1,87): unexpected-end-tag",
- "(1,87): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table></table></body></html>",
- "noQuirksBodyHtml": "<table></table>"
- }
- },
- {
- "data": "</table><tr>",
- "errors": [
- "(1,8): unexpected-end-tag"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ],
- "html": "<tbody><tr></tr></tbody>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<body></body></html>",
- "errors": [
- "(1,20): unexpected-end-tag-after-body-innerhtml"
- ],
- "fragment": {
- "name": "html"
- },
- "document": {
- "props": {
- "tags": {
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ],
- "html": "<head></head><body></body>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<html><frameset></frameset></html> ",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- },
- {
- "text": " "
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset> </html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\"><html></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"\""
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<param><frameset></frameset>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,17): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<param>"
- }
- },
- {
- "data": "<source><frameset></frameset>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,18): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<source>"
- }
- },
- {
- "data": "<track><frameset></frameset>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,17): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<track>"
- }
- },
- {
- "data": "</html><frameset></frameset>",
- "errors": [
- "(1,7): expected-doctype-but-got-end-tag",
- "(1,17): expected-eof-but-got-start-tag",
- "(1,17): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "</body><frameset></frameset>",
- "errors": [
- "(1,7): expected-doctype-but-got-end-tag",
- "(1,17): unexpected-start-tag-after-body",
- "(1,17): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": ""
- }
- }
- ],
- "tests7.dat": [
- {
- "data": "<!doctype html><body><title>X</title>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "title": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><title>X</title></body></html>",
- "noQuirksBodyHtml": "<title>X</title>"
- }
- },
- {
- "data": "<!doctype html><table><title>X</title></table>",
- "errors": [
- "(1,29): unexpected-start-tag-implies-table-voodoo"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "title": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "X"
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><title>X</title><table></table></body></html>",
- "noQuirksBodyHtml": "<title>X</title><table></table>"
- }
- },
- {
- "data": "<!doctype html><head></head><title>X</title>",
- "errors": [
- "(1,35): unexpected-start-tag-out-of-my-head"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><title>X</title></head><body></body></html>",
- "noQuirksBodyHtml": "<title>X</title>"
- }
- },
- {
- "data": "<!doctype html></head><title>X</title>",
- "errors": [
- "(1,29): unexpected-start-tag-out-of-my-head"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "title": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "title",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head><title>X</title></head><body></body></html>",
- "noQuirksBodyHtml": "<title>X</title>"
- }
- },
- {
- "data": "<!doctype html><table><meta></table>",
- "errors": [
- "(1,28): unexpected-start-tag-implies-table-voodoo"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "meta": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "meta"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><meta><table></table></body></html>",
- "noQuirksBodyHtml": "<meta><table></table>"
- }
- },
- {
- "data": "<!doctype html><table>X<tr><td><table> <meta></table></table>",
- "errors": [
- "unexpected text in table",
- "(1,45): unexpected-start-tag-implies-table-voodoo"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "meta": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "meta"
- },
- {
- "tag": "table",
- "children": [
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>X<table><tbody><tr><td><meta><table> </table></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "X<table><tbody><tr><td><meta><table> </table></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><html> <head>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<!doctype html> <head>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": " "
- }
- },
- {
- "data": "<!doctype html><table><style> <tr>x </style> </table>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "style": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "style",
- "children": [
- {
- "text": " <tr>x ",
- "no_escape": true
- }
- ]
- },
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><style> <tr>x </style> </table></body></html>",
- "noQuirksBodyHtml": "<table><style> <tr>x </style> </table>"
- }
- },
- {
- "data": "<!doctype html><table><TBODY><script> <tr>x </script> </table>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "script": true
- },
- "doctype": true,
- "no_escape": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "script",
- "children": [
- {
- "text": " <tr>x ",
- "no_escape": true
- }
- ]
- },
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><script> <tr>x </script> </tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><script> <tr>x </script> </tbody></table>"
- }
- },
- {
- "data": "<!doctype html><p><applet><p>X</p></applet>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "applet": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "applet",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><applet><p>X</p></applet></p></body></html>",
- "noQuirksBodyHtml": "<p><applet><p>X</p></applet></p>"
- }
- },
- {
- "data": "<!doctype html><p><object type=\"application/x-non-existant-plugin\"><p>X</p></object>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "object": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "object",
- "attrs": [
- {
- "name": "type",
- "value": "application/x-non-existant-plugin"
- }
- ],
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><p><object type=\"application/x-non-existant-plugin\"><p>X</p></object></p></body></html>",
- "noQuirksBodyHtml": "<p><object type=\"application/x-non-existant-plugin\"><p>X</p></object></p>"
- }
- },
- {
- "data": "<!doctype html><listing>\nX</listing>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "listing": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "listing",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><listing>X</listing></body></html>",
- "noQuirksBodyHtml": "<listing>X</listing>"
- }
- },
- {
- "data": "<!doctype html><select><input>X",
- "errors": [
- "(1,30): unexpected-input-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- },
- {
- "tag": "input"
- },
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select><input>X</body></html>",
- "noQuirksBodyHtml": "<select></select><input>X"
- }
- },
- {
- "data": "<!doctype html><select><select>X",
- "errors": [
- "(1,31): unexpected-select-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- },
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select>X</body></html>",
- "noQuirksBodyHtml": "<select></select>X"
- }
- },
- {
- "data": "<!doctype html><table><input type=hidDEN></table>",
- "errors": [
- "(1,41): unexpected-hidden-input-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "input",
- "attrs": [
- {
- "name": "type",
- "value": "hidDEN"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><input type=\"hidDEN\"></table></body></html>",
- "noQuirksBodyHtml": "<table><input type=\"hidDEN\"></table>"
- }
- },
- {
- "data": "<!doctype html><table>X<input type=hidDEN></table>",
- "errors": [
- "(1,23): foster-parenting-character",
- "(1,42): unexpected-hidden-input-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "input",
- "attrs": [
- {
- "name": "type",
- "value": "hidDEN"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body>X<table><input type=\"hidDEN\"></table></body></html>",
- "noQuirksBodyHtml": "X<table><input type=\"hidDEN\"></table>"
- }
- },
- {
- "data": "<!doctype html><table> <input type=hidDEN></table>",
- "errors": [
- "(1,43): unexpected-hidden-input-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "text": " "
- },
- {
- "tag": "input",
- "attrs": [
- {
- "name": "type",
- "value": "hidDEN"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table> <input type=\"hidDEN\"></table></body></html>",
- "noQuirksBodyHtml": "<table> <input type=\"hidDEN\"></table>"
- }
- },
- {
- "data": "<!doctype html><table> <input type='hidDEN'></table>",
- "errors": [
- "(1,45): unexpected-hidden-input-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "text": " "
- },
- {
- "tag": "input",
- "attrs": [
- {
- "name": "type",
- "value": "hidDEN"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table> <input type=\"hidDEN\"></table></body></html>",
- "noQuirksBodyHtml": "<table> <input type=\"hidDEN\"></table>"
- }
- },
- {
- "data": "<!doctype html><table><input type=\" hidden\"><input type=hidDEN></table>",
- "errors": [
- "(1,44): unexpected-start-tag-implies-table-voodoo",
- "(1,63): unexpected-hidden-input-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "input": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "input",
- "attrs": [
- {
- "name": "type",
- "value": " hidden"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "input",
- "attrs": [
- {
- "name": "type",
- "value": "hidDEN"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><input type=\" hidden\"><table><input type=\"hidDEN\"></table></body></html>",
- "noQuirksBodyHtml": "<input type=\" hidden\"><table><input type=\"hidDEN\"></table>"
- }
- },
- {
- "data": "<!doctype html><table><select>X<tr>",
- "errors": [
- "(1,30): unexpected-start-tag-implies-table-voodoo",
- "(1,35): unexpected-table-element-start-tag-in-select-in-table",
- "(1,35): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "text": "X"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select>X</select><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<select>X</select><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!doctype html><select>X</select>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select>X</select></body></html>",
- "noQuirksBodyHtml": "<select>X</select>"
- }
- },
- {
- "data": "<!DOCTYPE hTmL><html></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<!DOCTYPE HTML><html></html>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<body>X</body></body>",
- "errors": [
- "(1,21): unexpected-end-tag-after-body"
- ],
- "fragment": {
- "name": "html"
- },
- "document": {
- "props": {
- "tags": {
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "X"
- }
- ]
- }
- ],
- "html": "<head></head><body>X</body>",
- "noQuirksBodyHtml": "X"
- }
- },
- {
- "data": "<div><p>a</x> b",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,13): unexpected-end-tag",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "a b"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><p>a b</p></div></body></html>",
- "noQuirksBodyHtml": "<div><p>a b</p></div>"
- }
- },
- {
- "data": "<table><tr><td><code></code> </table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "code": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "code"
- },
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td><code></code> </td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><code></code> </td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><b><tr><td>aaa</td></tr>bbb</table>ccc",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,10): foster-parenting-start-tag",
- "(1,32): foster-parenting-character",
- "(1,33): foster-parenting-character",
- "(1,34): foster-parenting-character",
- "(1,45): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "bbb"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "aaa"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "ccc"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b></b><b>bbb</b><table><tbody><tr><td>aaa</td></tr></tbody></table><b>ccc</b></body></html>",
- "noQuirksBodyHtml": "<b></b><b>bbb</b><table><tbody><tr><td>aaa</td></tr></tbody></table><b>ccc</b>"
- }
- },
- {
- "data": "A<table><tr> B</tr> B</table>",
- "errors": [
- "(1,1): expected-doctype-but-got-chars",
- "(1,13): foster-parenting-character",
- "(1,14): foster-parenting-character",
- "(1,20): foster-parenting-character",
- "(1,21): foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "A B B"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>A B B<table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "A B B<table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "A<table><tr> B</tr> </em>C</table>",
- "errors": [
- "(1,1): expected-doctype-but-got-chars",
- "(1,13): foster-parenting-character",
- "(1,14): foster-parenting-character",
- "(1,20): foster-parenting-character",
- "(1,25): unexpected-end-tag",
- "(1,25): unexpected-end-tag-in-special-element",
- "(1,26): foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "A BC"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- },
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>A BC<table><tbody><tr></tr> </tbody></table></body></html>",
- "noQuirksBodyHtml": "A BC<table><tbody><tr></tr> </tbody></table>"
- }
- },
- {
- "data": "<select><keygen>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,16): unexpected-input-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "keygen": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- },
- {
- "tag": "keygen"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select></select><keygen></body></html>",
- "noQuirksBodyHtml": "<select></select><keygen>"
- }
- }
- ],
- "tests8.dat": [
- {
- "data": "<div>\n<div></div>\n</span>x",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(3,7): unexpected-end-tag",
- "(3,8): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "div"
- },
- {
- "text": "\nx"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>\n<div></div>\nx</div></body></html>",
- "noQuirksBodyHtml": "<div>\n<div></div>\nx</div>"
- }
- },
- {
- "data": "<div>x<div></div>\n</span>x",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(2,7): unexpected-end-tag",
- "(2,8): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "x"
- },
- {
- "tag": "div"
- },
- {
- "text": "\nx"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>x<div></div>\nx</div></body></html>",
- "noQuirksBodyHtml": "<div>x<div></div>\nx</div>"
- }
- },
- {
- "data": "<div>x<div></div>x</span>x",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,25): unexpected-end-tag",
- "(1,26): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "x"
- },
- {
- "tag": "div"
- },
- {
- "text": "xx"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>x<div></div>xx</div></body></html>",
- "noQuirksBodyHtml": "<div>x<div></div>xx</div>"
- }
- },
- {
- "data": "<div>x<div></div>y</span>z",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,25): unexpected-end-tag",
- "(1,26): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "x"
- },
- {
- "tag": "div"
- },
- {
- "text": "yz"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>x<div></div>yz</div></body></html>",
- "noQuirksBodyHtml": "<div>x<div></div>yz</div>"
- }
- },
- {
- "data": "<table><div>x<div></div>x</span>x",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,12): foster-parenting-start-tag",
- "(1,13): foster-parenting-character",
- "(1,18): foster-parenting-start-tag",
- "(1,24): foster-parenting-end-tag",
- "(1,25): foster-parenting-start-tag",
- "(1,32): foster-parenting-end-tag",
- "(1,32): unexpected-end-tag",
- "(1,33): foster-parenting-character",
- "(1,33): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "x"
- },
- {
- "tag": "div"
- },
- {
- "text": "xx"
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>x<div></div>xx</div><table></table></body></html>",
- "noQuirksBodyHtml": "<div>x<div></div>xx</div><table></table>"
- }
- },
- {
- "data": "x<table>x",
- "errors": [
- "(1,1): expected-doctype-but-got-chars",
- "(1,9): foster-parenting-character",
- "(1,9): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "xx"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>xx<table></table></body></html>",
- "noQuirksBodyHtml": "xx<table></table>"
- }
- },
- {
- "data": "x<table><table>x",
- "errors": [
- "(1,1): expected-doctype-but-got-chars",
- "(1,15): unexpected-start-tag-implies-end-tag",
- "(1,16): foster-parenting-character",
- "(1,16): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- },
- {
- "tag": "table"
- },
- {
- "text": "x"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>x<table></table>x<table></table></body></html>",
- "noQuirksBodyHtml": "x<table></table>x<table></table>"
- }
- },
- {
- "data": "<b>a<div></div><div></b>y",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,24): adoption-agency-1.3",
- "(1,25): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "a"
- },
- {
- "tag": "div"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b"
- },
- {
- "text": "y"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b>a<div></div></b><div><b></b>y</div></body></html>",
- "noQuirksBodyHtml": "<b>a<div></div></b><div><b></b>y</div>"
- }
- },
- {
- "data": "<a><div><p></a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,15): adoption-agency-1.3",
- "(1,15): adoption-agency-1.3",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "div": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a></a><div><a></a><p><a></a></p></div></body></html>",
- "noQuirksBodyHtml": "<a></a><div><a></a><p><a></a></p></div>"
- }
- }
- ],
- "tests9.dat": [
- {
- "data": "<!DOCTYPE html><math></math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
- "noQuirksBodyHtml": "<math></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><math></math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
- "noQuirksBodyHtml": "<math></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><math><mi>",
- "errors": [
- "(1,25) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><mi></mi></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><math><annotation-xml><svg><u>",
- "errors": [
- "(1,45) unexpected-html-element-in-foreign-content",
- "(1,45) expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math annotation-xml": true,
- "svg svg": true,
- "u": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "annotation-xml",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- },
- {
- "tag": "u"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><annotation-xml><svg></svg></annotation-xml></math><u></u></body></html>",
- "noQuirksBodyHtml": "<math><annotation-xml><svg><u></u></svg></annotation-xml></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><select><math></math></select>",
- "errors": [
- "(1,35) unexpected-start-tag-in-select",
- "(1,42) unexpected-end-tag-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
- "noQuirksBodyHtml": "<select></select>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><select><option><math></math></option></select>",
- "errors": [
- "(1,43) unexpected-start-tag-in-select",
- "(1,50) unexpected-end-tag-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
- "noQuirksBodyHtml": "<select><option></option></select>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><math></math></table>",
- "errors": [
- "(1,34) unexpected-start-tag-implies-table-voodoo"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math></math><table></table></body></html>",
- "noQuirksBodyHtml": "<math></math><table></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><math><mi>foo</mi></math></table>",
- "errors": [
- "(1,34) foster-parenting-start-token",
- "(1,39) foster-parenting-character",
- "(1,40) foster-parenting-character",
- "(1,41) foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi></math><table></table></body></html>",
- "noQuirksBodyHtml": "<math><mi>foo</mi></math><table></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table>",
- "errors": [
- "(1,34) foster-parenting-start-tag",
- "(1,39) foster-parenting-character",
- "(1,40) foster-parenting-character",
- "(1,41) foster-parenting-character",
- "(1,51) foster-parenting-character",
- "(1,52) foster-parenting-character",
- "(1,53) foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "table": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table></table></body></html>",
- "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table>",
- "errors": [
- "(1,41) foster-parenting-start-tag",
- "(1,46) foster-parenting-character",
- "(1,47) foster-parenting-character",
- "(1,48) foster-parenting-character",
- "(1,58) foster-parenting-character",
- "(1,59) foster-parenting-character",
- "(1,60) foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "table": true,
- "tbody": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table><tbody></tbody></table></body></html>",
- "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table><tbody></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table>",
- "errors": [
- "(1,45) foster-parenting-start-tag",
- "(1,50) foster-parenting-character",
- "(1,51) foster-parenting-character",
- "(1,52) foster-parenting-character",
- "(1,62) foster-parenting-character",
- "(1,63) foster-parenting-character",
- "(1,64) foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "table": true,
- "tbody": true,
- "tr": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "math math": true,
- "math mi": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "math math": true,
- "math mi": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></td></tr></tbody></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "math math": true,
- "math mi": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table></body></html>",
- "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
- "errors": [
- "(1,70) unexpected-html-element-in-foreign-content"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "math math": true,
- "math mi": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</p></math></caption></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux",
- "errors": [
- "(1,78) unexpected-end-tag",
- "(1,78) expected-one-end-tag-but-got-another"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "caption": true,
- "math math": true,
- "math mi": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "caption",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- },
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</math></caption></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi>baz</math></caption></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
- "errors": [
- "(1,44) foster-parenting-start-tag",
- "(1,49) foster-parenting-character",
- "(1,50) foster-parenting-character",
- "(1,51) foster-parenting-character",
- "(1,61) foster-parenting-character",
- "(1,62) foster-parenting-character",
- "(1,63) foster-parenting-character",
- "(1,71) unexpected-html-element-in-foreign-content",
- "(1,71) foster-parenting-start-tag",
- "(1,63) foster-parenting-character",
- "(1,63) foster-parenting-character",
- "(1,63) foster-parenting-character"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "p": true,
- "table": true,
- "colgroup": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup"
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p><table><colgroup></colgroup></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math><table><colgroup></colgroup></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
- "errors": [
- "(1,50) unexpected-start-tag-in-select",
- "(1,54) unexpected-start-tag-in-select",
- "(1,62) unexpected-end-tag-in-select",
- "(1,66) unexpected-start-tag-in-select",
- "(1,74) unexpected-end-tag-in-select",
- "(1,77) unexpected-start-tag-in-select",
- "(1,88) unexpected-table-element-end-tag-in-select-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "select": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "text": "foobarbaz"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
- "errors": [
- "(1,36) unexpected-start-tag-implies-table-voodoo",
- "(1,42) unexpected-start-tag-in-select",
- "(1,46) unexpected-start-tag-in-select",
- "(1,54) unexpected-end-tag-in-select",
- "(1,58) unexpected-start-tag-in-select",
- "(1,66) unexpected-end-tag-in-select",
- "(1,69) unexpected-start-tag-in-select",
- "(1,80) unexpected-table-element-end-tag-in-select-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "table": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "text": "foobarbaz"
- }
- ]
- },
- {
- "tag": "table"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "quux"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><select>foobarbaz</select><table></table><p>quux</p></body></html>",
- "noQuirksBodyHtml": "<select>foobarbaz</select><table></table><p>quux</p>"
- }
- },
- {
- "data": "<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz",
- "errors": [
- "(1,41) expected-eof-but-got-start-tag",
- "(1,68) unexpected-html-element-in-foreign-content"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></body></html>",
- "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz",
- "errors": [
- "(1,34) unexpected-start-tag-after-body",
- "(1,61) unexpected-html-element-in-foreign-content"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true,
- "p": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "bar"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "baz"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></body></html>",
- "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span>",
- "errors": [
- "(1,31) unexpected-start-tag-in-frameset",
- "(1,35) unexpected-start-tag-in-frameset",
- "(1,40) unexpected-end-tag-in-frameset",
- "(1,44) unexpected-start-tag-in-frameset",
- "(1,49) unexpected-end-tag-in-frameset",
- "(1,52) unexpected-start-tag-in-frameset",
- "(1,58) unexpected-start-tag-in-frameset",
- "(1,58) eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<math><mi></mi><mi></mi><p><span></span></p></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span>",
- "errors": [
- "(1,42) unexpected-start-tag-after-frameset",
- "(1,46) unexpected-start-tag-after-frameset",
- "(1,51) unexpected-end-tag-after-frameset",
- "(1,55) unexpected-start-tag-after-frameset",
- "(1,60) unexpected-end-tag-after-frameset",
- "(1,63) unexpected-start-tag-after-frameset",
- "(1,69) unexpected-start-tag-after-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<math><mi></mi><mi></mi><p><span></span></p></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "xlink:href",
- "value": "foo"
- }
- ],
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "href",
- "ns": "http://www.w3.org/1999/xlink",
- "value": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\"><math xlink:href=\"foo\"></math></body></html>",
- "noQuirksBodyHtml": "<math xlink:href=\"foo\"></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "xlink:href",
- "value": "foo"
- },
- {
- "name": "xml:lang",
- "value": "en"
- }
- ],
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "href",
- "ns": "http://www.w3.org/1999/xlink",
- "value": "foo"
- },
- {
- "name": "lang",
- "ns": "http://www.w3.org/XML/1998/namespace",
- "value": "en"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "xlink:href",
- "value": "foo"
- },
- {
- "name": "xml:lang",
- "value": "en"
- }
- ],
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "href",
- "ns": "http://www.w3.org/1999/xlink",
- "value": "foo"
- },
- {
- "name": "lang",
- "ns": "http://www.w3.org/XML/1998/namespace",
- "value": "en"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math></body></html>",
- "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math>"
- }
- },
- {
- "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mi": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "xlink:href",
- "value": "foo"
- },
- {
- "name": "xml:lang",
- "value": "en"
- }
- ],
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "attrs": [
- {
- "name": "href",
- "ns": "http://www.w3.org/1999/xlink",
- "value": "foo"
- },
- {
- "name": "lang",
- "ns": "http://www.w3.org/XML/1998/namespace",
- "value": "en"
- }
- ]
- },
- {
- "text": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi>bar</math></body></html>",
- "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi>bar</math>"
- }
- }
- ],
- "tests_innerHTML_1.dat": [
- {
- "data": "<body><span>",
- "errors": [
- "(1,6): unexpected-start-tag",
- "(1,12): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "body"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<span><body>",
- "errors": [
- "(1,12): unexpected-start-tag",
- "(1,12): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "body"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<span><body>",
- "errors": [
- "(1,12): unexpected-start-tag",
- "(1,12): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "div"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<body><span>",
- "errors": [
- "(1,12): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "html"
- },
- "document": {
- "props": {
- "tags": {
- "head": true,
- "body": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<head></head><body><span></span></body>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<frameset><span>",
- "errors": [
- "(1,10): unexpected-start-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "body"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<span><frameset>",
- "errors": [
- "(1,16): unexpected-start-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "body"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<span><frameset>",
- "errors": [
- "(1,16): unexpected-start-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "div"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<frameset><span>",
- "errors": [
- "(1,16): unexpected-start-tag-in-frameset",
- "(1,16): eof-in-frameset"
- ],
- "fragment": {
- "name": "html"
- },
- "document": {
- "props": {
- "tags": {
- "head": true,
- "frameset": true
- }
- },
- "tree": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ],
- "html": "<head></head><frameset></frameset>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<table><tr>",
- "errors": [
- "(1,7): unexpected-start-tag"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ],
- "html": "<tbody><tr></tr></tbody>",
- "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "</table><tr>",
- "errors": [
- "(1,8): unexpected-end-tag"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ],
- "html": "<tbody><tr></tr></tbody>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<a>",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo",
- "(1,3): eof-in-table"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a>",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo",
- "(1,3): eof-in-table"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><caption>a",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo",
- "(1,13): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "caption": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "caption",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ],
- "html": "<a></a><caption>a</caption>",
- "noQuirksBodyHtml": "<a>a</a>"
- }
- },
- {
- "data": "<a><colgroup><col>",
- "errors": [
- "(1,3): foster-parenting-start-token",
- "(1,18): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "colgroup": true,
- "col": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- }
- ]
- }
- ],
- "html": "<a></a><colgroup><col></colgroup>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><tbody><tr>",
- "errors": [
- "(1,3): foster-parenting-start-tag"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ],
- "html": "<a></a><tbody><tr></tr></tbody>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><tfoot><tr>",
- "errors": [
- "(1,3): foster-parenting-start-tag"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tfoot": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tfoot",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ],
- "html": "<a></a><tfoot><tr></tr></tfoot>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><thead><tr>",
- "errors": [
- "(1,3): foster-parenting-start-tag"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "thead": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "thead",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ],
- "html": "<a></a><thead><tr></tr></thead>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><tr>",
- "errors": [
- "(1,3): foster-parenting-start-tag"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ],
- "html": "<a></a><tbody><tr></tr></tbody>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><th>",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo",
- "(1,7): unexpected-cell-in-table-body"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tbody": true,
- "tr": true,
- "th": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "th"
- }
- ]
- }
- ]
- }
- ],
- "html": "<a></a><tbody><tr><th></th></tr></tbody>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><td>",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo",
- "(1,7): unexpected-cell-in-table-body"
- ],
- "fragment": {
- "name": "table"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ],
- "html": "<a></a><tbody><tr><td></td></tr></tbody>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<table></table><tbody>",
- "errors": [
- "(1,22): unexpected-start-tag"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "table": true
- }
- },
- "tree": [
- {
- "tag": "table"
- }
- ],
- "html": "<table></table>",
- "noQuirksBodyHtml": "<table></table>"
- }
- },
- {
- "data": "</table><span>",
- "errors": [
- "(1,8): unexpected-end-tag",
- "(1,14): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<span></table>",
- "errors": [
- "(1,14): unexpected-end-tag",
- "(1,14): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "</caption><span>",
- "errors": [
- "(1,10): XXX-undefined-error",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span"
- }
- ],
- "html": "<span></span>",
- "noQuirksBodyHtml": "<span></span>"
- }
- },
- {
- "data": "<span></caption><span>",
- "errors": [
- "(1,16): XXX-undefined-error",
- "(1,22): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><caption><span>",
- "errors": [
- "(1,15): unexpected-start-tag",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><col><span>",
- "errors": [
- "(1,11): unexpected-start-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><colgroup><span>",
- "errors": [
- "(1,16): unexpected-start-tag",
- "(1,22): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><html><span>",
- "errors": [
- "(1,12): non-html-root",
- "(1,18): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><tbody><span>",
- "errors": [
- "(1,13): unexpected-start-tag",
- "(1,19): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><td><span>",
- "errors": [
- "(1,10): unexpected-start-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><tfoot><span>",
- "errors": [
- "(1,13): unexpected-start-tag",
- "(1,19): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><thead><span>",
- "errors": [
- "(1,13): unexpected-start-tag",
- "(1,19): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><th><span>",
- "errors": [
- "(1,10): unexpected-start-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span><tr><span>",
- "errors": [
- "(1,10): unexpected-start-tag",
- "(1,16): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "<span></table><span>",
- "errors": [
- "(1,14): unexpected-end-tag",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "caption"
- },
- "document": {
- "props": {
- "tags": {
- "span": true
- }
- },
- "tree": [
- {
- "tag": "span",
- "children": [
- {
- "tag": "span"
- }
- ]
- }
- ],
- "html": "<span><span></span></span>",
- "noQuirksBodyHtml": "<span><span></span></span>"
- }
- },
- {
- "data": "</colgroup><col>",
- "errors": [
- "(1,11): XXX-undefined-error"
- ],
- "fragment": {
- "name": "colgroup"
- },
- "document": {
- "props": {
- "tags": {
- "col": true
- }
- },
- "tree": [
- {
- "tag": "col"
- }
- ],
- "html": "<col>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<a><col>",
- "errors": [
- "(1,3): XXX-undefined-error"
- ],
- "fragment": {
- "name": "colgroup"
- },
- "document": {
- "props": {
- "tags": {
- "col": true
- }
- },
- "tree": [
- {
- "tag": "col"
- }
- ],
- "html": "<col>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<caption><a>",
- "errors": [
- "(1,9): XXX-undefined-error",
- "(1,12): unexpected-start-tag-implies-table-voodoo",
- "(1,12): eof-in-table"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<col><a>",
- "errors": [
- "(1,5): XXX-undefined-error",
- "(1,8): unexpected-start-tag-implies-table-voodoo",
- "(1,8): eof-in-table"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<colgroup><a>",
- "errors": [
- "(1,10): XXX-undefined-error",
- "(1,13): unexpected-start-tag-implies-table-voodoo",
- "(1,13): eof-in-table"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<tbody><a>",
- "errors": [
- "(1,7): XXX-undefined-error",
- "(1,10): unexpected-start-tag-implies-table-voodoo",
- "(1,10): eof-in-table"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<tfoot><a>",
- "errors": [
- "(1,7): XXX-undefined-error",
- "(1,10): unexpected-start-tag-implies-table-voodoo",
- "(1,10): eof-in-table"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<thead><a>",
- "errors": [
- "(1,7): XXX-undefined-error",
- "(1,10): unexpected-start-tag-implies-table-voodoo",
- "(1,10): eof-in-table"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "</table><a>",
- "errors": [
- "(1,8): XXX-undefined-error",
- "(1,11): unexpected-start-tag-implies-table-voodoo",
- "(1,11): eof-in-table"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><tr>",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tr"
- }
- ],
- "html": "<a></a><tr></tr>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><td>",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo",
- "(1,7): unexpected-cell-in-table-body"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ],
- "html": "<a></a><tr><td></td></tr>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><td>",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo",
- "(1,7): unexpected-cell-in-table-body"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ],
- "html": "<a></a><tr><td></td></tr>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<a><td>",
- "errors": [
- "(1,3): unexpected-start-tag-implies-table-voodoo",
- "(1,7): unexpected-cell-in-table-body"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "a": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "a"
- },
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ],
- "html": "<a></a><tr><td></td></tr>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<td><table><tbody><a><tr>",
- "errors": [
- "(1,4): unexpected-cell-in-table-body",
- "(1,21): unexpected-start-tag-implies-table-voodoo",
- "(1,25): eof-in-table"
- ],
- "fragment": {
- "name": "tbody"
- },
- "document": {
- "props": {
- "tags": {
- "tr": true,
- "td": true,
- "a": true,
- "table": true,
- "tbody": true
- }
- },
- "tree": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<tr><td><a></a><table><tbody><tr></tr></tbody></table></td></tr>",
- "noQuirksBodyHtml": "<a></a><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "</tr><td>",
- "errors": [
- "(1,5): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<td><table><a><tr></tr><tr>",
- "errors": [
- "(1,14): unexpected-start-tag-implies-table-voodoo",
- "(1,27): eof-in-table"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- },
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<td><a></a><table><tbody><tr></tr><tr></tr></tbody></table></td>",
- "noQuirksBodyHtml": "<a></a><table><tbody><tr></tr><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<caption><td>",
- "errors": [
- "(1,9): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<col><td>",
- "errors": [
- "(1,5): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<colgroup><td>",
- "errors": [
- "(1,10): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<tbody><td>",
- "errors": [
- "(1,7): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<tfoot><td>",
- "errors": [
- "(1,7): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<thead><td>",
- "errors": [
- "(1,7): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<tr><td>",
- "errors": [
- "(1,4): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "</table><td>",
- "errors": [
- "(1,8): XXX-undefined-error"
- ],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true
- }
- },
- "tree": [
- {
- "tag": "td"
- }
- ],
- "html": "<td></td>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<td><table></table><td>",
- "errors": [],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "table"
- }
- ]
- },
- {
- "tag": "td"
- }
- ],
- "html": "<td><table></table></td><td></td>",
- "noQuirksBodyHtml": "<table></table>"
- }
- },
- {
- "data": "<td><table></table><td>",
- "errors": [],
- "fragment": {
- "name": "tr"
- },
- "document": {
- "props": {
- "tags": {
- "td": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "table"
- }
- ]
- },
- {
- "tag": "td"
- }
- ],
- "html": "<td><table></table></td><td></td>",
- "noQuirksBodyHtml": "<table></table>"
- }
- },
- {
- "data": "<caption><a>",
- "errors": [
- "(1,9): XXX-undefined-error",
- "(1,12): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<col><a>",
- "errors": [
- "(1,5): XXX-undefined-error",
- "(1,8): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<colgroup><a>",
- "errors": [
- "(1,10): XXX-undefined-error",
- "(1,13): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<tbody><a>",
- "errors": [
- "(1,7): XXX-undefined-error",
- "(1,10): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<tfoot><a>",
- "errors": [
- "(1,7): XXX-undefined-error",
- "(1,10): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<th><a>",
- "errors": [
- "(1,4): XXX-undefined-error",
- "(1,7): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<thead><a>",
- "errors": [
- "(1,7): XXX-undefined-error",
- "(1,10): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<tr><a>",
- "errors": [
- "(1,4): XXX-undefined-error",
- "(1,7): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "</table><a>",
- "errors": [
- "(1,8): XXX-undefined-error",
- "(1,11): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "</tbody><a>",
- "errors": [
- "(1,8): XXX-undefined-error",
- "(1,11): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "</td><a>",
- "errors": [
- "(1,5): unexpected-end-tag",
- "(1,8): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "</tfoot><a>",
- "errors": [
- "(1,8): XXX-undefined-error",
- "(1,11): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "</thead><a>",
- "errors": [
- "(1,8): XXX-undefined-error",
- "(1,11): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "</th><a>",
- "errors": [
- "(1,5): unexpected-end-tag",
- "(1,8): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "</tr><a>",
- "errors": [
- "(1,5): XXX-undefined-error",
- "(1,8): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "a": true
- }
- },
- "tree": [
- {
- "tag": "a"
- }
- ],
- "html": "<a></a>",
- "noQuirksBodyHtml": "<a></a>"
- }
- },
- {
- "data": "<table><td><td>",
- "errors": [
- "(1,11): unexpected-cell-in-table-body",
- "(1,15): expected-closing-tag-but-got-eof"
- ],
- "fragment": {
- "name": "td"
- },
- "document": {
- "props": {
- "tags": {
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- },
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<table><tbody><tr><td></td><td></td></tr></tbody></table>",
- "noQuirksBodyHtml": "<table><tbody><tr><td></td><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "</select><option>",
- "errors": [
- "(1,9): XXX-undefined-error"
- ],
- "fragment": {
- "name": "select"
- },
- "document": {
- "props": {
- "tags": {
- "option": true
- }
- },
- "tree": [
- {
- "tag": "option"
- }
- ],
- "html": "<option></option>",
- "noQuirksBodyHtml": "<option></option>"
- }
- },
- {
- "data": "<input><option>",
- "errors": [
- "(1,7): unexpected-input-in-select"
- ],
- "fragment": {
- "name": "select"
- },
- "document": {
- "props": {
- "tags": {
- "option": true
- }
- },
- "tree": [
- {
- "tag": "option"
- }
- ],
- "html": "<option></option>",
- "noQuirksBodyHtml": "<input><option></option>"
- }
- },
- {
- "data": "<keygen><option>",
- "errors": [
- "(1,8): unexpected-input-in-select"
- ],
- "fragment": {
- "name": "select"
- },
- "document": {
- "props": {
- "tags": {
- "option": true
- }
- },
- "tree": [
- {
- "tag": "option"
- }
- ],
- "html": "<option></option>",
- "noQuirksBodyHtml": "<keygen><option></option>"
- }
- },
- {
- "data": "<textarea><option>",
- "errors": [
- "(1,10): unexpected-input-in-select"
- ],
- "fragment": {
- "name": "select"
- },
- "document": {
- "props": {
- "tags": {
- "option": true
- }
- },
- "tree": [
- {
- "tag": "option"
- }
- ],
- "html": "<option></option>",
- "noQuirksBodyHtml": "<textarea><option></textarea>"
- }
- },
- {
- "data": "</html><!--abc-->",
- "errors": [
- "(1,7): unexpected-end-tag-after-body-innerhtml"
- ],
- "fragment": {
- "name": "html"
- },
- "document": {
- "props": {
- "tags": {
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- },
- {
- "comment": "abc"
- }
- ],
- "html": "<head></head><body></body><!--abc-->",
- "noQuirksBodyHtml": "<!--abc-->"
- }
- },
- {
- "data": "</frameset><frame>",
- "errors": [
- "(1,11): unexpected-frameset-in-frameset-innerhtml"
- ],
- "fragment": {
- "name": "frameset"
- },
- "document": {
- "props": {
- "tags": {
- "frame": true
- }
- },
- "tree": [
- {
- "tag": "frame"
- }
- ],
- "html": "<frame>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "",
- "errors": [],
- "fragment": {
- "name": "html"
- },
- "document": {
- "props": {
- "tags": {
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ],
- "html": "<head></head><body></body>",
- "noQuirksBodyHtml": ""
- }
- }
- ],
- "tricky01.dat": [
- {
- "data": "<b><p>Bold </b> Not bold</p>\nAlso not bold.",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,15): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "Bold "
- }
- ]
- },
- {
- "text": " Not bold"
- }
- ]
- },
- {
- "text": "\nAlso not bold."
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b></b><p><b>Bold </b> Not bold</p>\nAlso not bold.</body></html>",
- "noQuirksBodyHtml": "<b></b><p><b>Bold </b> Not bold</p>\nAlso not bold."
- }
- },
- {
- "data": "<html>\n<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=red>Red. <i>Italic and red.</p>\n<p>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</b> Only Italic </i> Plain",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(2,58): adoption-agency-1.3",
- "(3,67): unexpected-end-tag",
- "(4,23): adoption-agency-1.3",
- "(4,35): adoption-agency-1.3",
- "(5,30): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "font": true,
- "i": true,
- "p": true,
- "b": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ],
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "Italic and Red"
- }
- ]
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ],
- "children": [
- {
- "text": "Italic and Red "
- }
- ]
- },
- {
- "text": " Just italic."
- }
- ]
- },
- {
- "text": " Italic only."
- }
- ]
- },
- {
- "text": " Plain\n"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "I should not be red. "
- },
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ],
- "children": [
- {
- "text": "Red. "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "Italic and red."
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ],
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "\n"
- }
- ]
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "color",
- "value": "red"
- }
- ],
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "Italic and red. "
- }
- ]
- },
- {
- "text": " Red."
- }
- ]
- },
- {
- "text": " I should not be red."
- }
- ]
- },
- {
- "text": "\n"
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "Bold "
- },
- {
- "tag": "i",
- "children": [
- {
- "text": "Bold and italic"
- }
- ]
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " Only Italic "
- }
- ]
- },
- {
- "text": " Plain"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><font color=\"red\"><i>Italic and Red</i></font><i><p><font color=\"red\">Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=\"red\">Red. <i>Italic and red.</i></font></p><font color=\"red\"><i>\n</i></font><p><font color=\"red\"><i>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</i></b><i> Only Italic </i> Plain</body></html>",
- "noQuirksBodyHtml": "\n<font color=\"red\"><i>Italic and Red</i></font><i><p><font color=\"red\">Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=\"red\">Red. <i>Italic and red.</i></font></p><font color=\"red\"><i>\n</i></font><p><font color=\"red\"><i>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</i></b><i> Only Italic </i> Plain"
- }
- },
- {
- "data": "<html><body>\n<p><font size=\"7\">First paragraph.</p>\n<p>Second paragraph.</p></font>\n<b><p><i>Bold and Italic</b> Italic</p>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(2,38): unexpected-end-tag",
- "(4,28): adoption-agency-1.3",
- "(4,28): adoption-agency-1.3",
- "(4,39): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "font": true,
- "b": true,
- "i": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "7"
- }
- ],
- "children": [
- {
- "text": "First paragraph."
- }
- ]
- }
- ]
- },
- {
- "tag": "font",
- "attrs": [
- {
- "name": "size",
- "value": "7"
- }
- ],
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "p",
- "children": [
- {
- "text": "Second paragraph."
- }
- ]
- }
- ]
- },
- {
- "text": "\n"
- },
- {
- "tag": "b"
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "i",
- "children": [
- {
- "text": "Bold and Italic"
- }
- ]
- }
- ]
- },
- {
- "tag": "i",
- "children": [
- {
- "text": " Italic"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>\n<p><font size=\"7\">First paragraph.</font></p><font size=\"7\">\n<p>Second paragraph.</p></font>\n<b></b><p><b><i>Bold and Italic</i></b><i> Italic</i></p></body></html>",
- "noQuirksBodyHtml": "\n<p><font size=\"7\">First paragraph.</font></p><font size=\"7\">\n<p>Second paragraph.</p></font>\n<b></b><p><b><i>Bold and Italic</i></b><i> Italic</i></p>"
- }
- },
- {
- "data": "<html>\n<dl>\n<dt><b>Boo\n<dd>Goo?\n</dl>\n</html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(4,4): end-tag-too-early",
- "(5,5): end-tag-too-early",
- "(6,7): expected-one-end-tag-but-got-another"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dl": true,
- "dt": true,
- "b": true,
- "dd": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dl",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "dt",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "Boo\n"
- }
- ]
- }
- ]
- },
- {
- "tag": "dd",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "text": "Goo?\n"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "b",
- "children": [
- {
- "text": "\n"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><dl>\n<dt><b>Boo\n</b></dt><dd><b>Goo?\n</b></dd></dl><b>\n</b></body></html>",
- "noQuirksBodyHtml": "\n<dl>\n<dt><b>Boo\n</b></dt><dd><b>Goo?\n</b></dd></dl><b>\n</b>"
- }
- },
- {
- "data": "<html><body>\n<label><a><div>Hello<div>World</div></a></label> \n</body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(2,40): adoption-agency-1.3",
- "(2,48): unexpected-end-tag",
- "(3,7): expected-one-end-tag-but-got-another"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "label": true,
- "a": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "label",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "Hello"
- },
- {
- "tag": "div",
- "children": [
- {
- "text": "World"
- }
- ]
- }
- ]
- },
- {
- "text": " \n"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>\n<label><a></a><div><a>Hello<div>World</div></a> \n</div></label></body></html>",
- "noQuirksBodyHtml": "\n<label><a></a><div><a>Hello<div>World</div></a> \n</div></label>"
- }
- },
- {
- "data": "<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table>",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,15): foster-parenting-start-tag",
- "(1,16): foster-parenting-character",
- "(1,22): foster-parenting-start-tag",
- "(1,23): foster-parenting-character",
- "(1,32): foster-parenting-end-tag",
- "(1,32): end-tag-too-early",
- "(1,33): foster-parenting-character",
- "(1,38): foster-parenting-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "center": true,
- "font": true,
- "img": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "center",
- "children": [
- {
- "text": " "
- },
- {
- "tag": "font",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- },
- {
- "tag": "font",
- "children": [
- {
- "tag": "img"
- },
- {
- "text": " "
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "text": " "
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": " "
- }
- ]
- },
- {
- "text": " "
- }
- ]
- },
- {
- "text": " "
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><center> <font>a</font></center><font><img> </font><table> <tbody><tr><td> </td> </tr> </tbody></table></body></html>",
- "noQuirksBodyHtml": "<center> <font>a</font></center><font><img> </font><table> <tbody><tr><td> </td> </tr> </tbody></table>"
- }
- },
- {
- "data": "<table><tr><p><a><p>You should see this text.",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,14): unexpected-start-tag-implies-table-voodoo",
- "(1,17): unexpected-start-tag-implies-table-voodoo",
- "(1,20): unexpected-start-tag-implies-table-voodoo",
- "(1,20): closing-non-current-p-element",
- "(1,21): foster-parenting-character",
- "(1,22): foster-parenting-character",
- "(1,23): foster-parenting-character",
- "(1,24): foster-parenting-character",
- "(1,25): foster-parenting-character",
- "(1,26): foster-parenting-character",
- "(1,27): foster-parenting-character",
- "(1,28): foster-parenting-character",
- "(1,29): foster-parenting-character",
- "(1,30): foster-parenting-character",
- "(1,31): foster-parenting-character",
- "(1,32): foster-parenting-character",
- "(1,33): foster-parenting-character",
- "(1,34): foster-parenting-character",
- "(1,35): foster-parenting-character",
- "(1,36): foster-parenting-character",
- "(1,37): foster-parenting-character",
- "(1,38): foster-parenting-character",
- "(1,39): foster-parenting-character",
- "(1,40): foster-parenting-character",
- "(1,41): foster-parenting-character",
- "(1,42): foster-parenting-character",
- "(1,43): foster-parenting-character",
- "(1,44): foster-parenting-character",
- "(1,45): foster-parenting-character",
- "(1,45): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "a": true,
- "table": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "tag": "a"
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "You should see this text."
- }
- ]
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p><a></a></p><p><a>You should see this text.</a></p><table><tbody><tr></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<p><a></a></p><p><a>You should see this text.</a></p><table><tbody><tr></tr></tbody></table>"
- }
- },
- {
- "data": "<TABLE>\n<TR>\n<CENTER><CENTER><TD></TD></TR><TR>\n<FONT>\n<TABLE><tr></tr></TABLE>\n</P>\n<a></font><font></a>\nThis page contains an insanely badly-nested tag sequence.",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(3,8): unexpected-start-tag-implies-table-voodoo",
- "(3,16): unexpected-start-tag-implies-table-voodoo",
- "(4,6): unexpected-start-tag-implies-table-voodoo",
- "(4,6): unexpected character token in table (the newline)",
- "(5,7): unexpected-start-tag-implies-end-tag",
- "(6,4): unexpected p end tag",
- "(7,10): adoption-agency-1.3",
- "(7,20): adoption-agency-1.3",
- "(8,57): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "center": true,
- "font": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "p": true,
- "a": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "center",
- "children": [
- {
- "tag": "center"
- }
- ]
- },
- {
- "tag": "font",
- "children": [
- {
- "text": "\n"
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "td"
- }
- ]
- },
- {
- "tag": "tr",
- "children": [
- {
- "text": "\n"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- },
- {
- "tag": "font",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "p"
- },
- {
- "text": "\n"
- },
- {
- "tag": "a"
- }
- ]
- },
- {
- "tag": "a",
- "children": [
- {
- "tag": "font"
- }
- ]
- },
- {
- "tag": "font",
- "children": [
- {
- "text": "\nThis page contains an insanely badly-nested tag sequence."
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><center><center></center></center><font>\n</font><table>\n<tbody><tr>\n<td></td></tr><tr>\n</tr></tbody></table><table><tbody><tr></tr></tbody></table><font>\n<p></p>\n<a></a></font><a><font></font></a><font>\nThis page contains an insanely badly-nested tag sequence.</font></body></html>",
- "noQuirksBodyHtml": "<center><center></center></center><font>\n</font><table>\n<tbody><tr>\n<td></td></tr><tr>\n</tr></tbody></table><table><tbody><tr></tr></tbody></table><font>\n<p></p>\n<a></a></font><a><font></font></a><font>\nThis page contains an insanely badly-nested tag sequence.</font>"
- }
- },
- {
- "data": "<html>\n<body>\n<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n</body>\n</html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(3,56): adoption-agency-1.3",
- "(4,58): adoption-agency-1.3",
- "(5,7): expected-one-end-tag-but-got-another"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "nobr": true,
- "div": true,
- "pre": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "\n"
- },
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "This text is in a div inside a nobr"
- }
- ]
- },
- {
- "text": "More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. "
- }
- ]
- },
- {
- "tag": "pre",
- "children": [
- {
- "text": "A pre tag outside everything else."
- }
- ]
- },
- {
- "text": "\n\n"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>\n<b><nobr></nobr></b><div><b><nobr>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n\n</div></body></html>",
- "noQuirksBodyHtml": "\n\n<b><nobr></nobr></b><div><b><nobr>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n\n</div>"
- }
- }
- ],
- "webkit01.dat": [
- {
- "data": "Test",
- "errors": [
- "(1,4): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "Test"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>Test</body></html>",
- "noQuirksBodyHtml": "Test"
- }
- },
- {
- "data": "<div></div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div></div></body></html>",
- "noQuirksBodyHtml": "<div></div>"
- }
- },
- {
- "data": "<div>Test</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "Test"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>Test</div></body></html>",
- "noQuirksBodyHtml": "<div>Test</div>"
- }
- },
- {
- "data": "<di",
- "errors": [
- "(1,3): eof-in-tag-name",
- "(1,3): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "Hello"
- }
- ]
- },
- {
- "text": "\n"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "\nconsole.log(\"PASS\");\n",
- "no_escape": true
- }
- ]
- },
- {
- "text": "\n"
- },
- {
- "tag": "div",
- "children": [
- {
- "text": "Bye"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div></body></html>",
- "noQuirksBodyHtml": "<div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div>"
- }
- },
- {
- "data": "<div foo=\"bar\">Hello</div>",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "foo",
- "value": "bar"
- }
- ],
- "children": [
- {
- "text": "Hello"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div foo=\"bar\">Hello</div></body></html>",
- "noQuirksBodyHtml": "<div foo=\"bar\">Hello</div>"
- }
- },
- {
- "data": "<div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "script": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "Hello"
- }
- ]
- },
- {
- "text": "\n"
- },
- {
- "tag": "script",
- "children": [
- {
- "text": "\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n",
- "no_escape": true
- }
- ]
- },
- {
- "text": "\n"
- },
- {
- "tag": "div",
- "children": [
- {
- "text": "Bye"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div></body></html>",
- "noQuirksBodyHtml": "<div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div>"
- }
- },
- {
- "data": "<foo bar=\"baz\"></foo><potato quack=\"duck\"></potato>",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "foo": true,
- "potato": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "foo",
- "attrs": [
- {
- "name": "bar",
- "value": "baz"
- }
- ]
- },
- {
- "tag": "potato",
- "attrs": [
- {
- "name": "quack",
- "value": "duck"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><foo bar=\"baz\"></foo><potato quack=\"duck\"></potato></body></html>",
- "noQuirksBodyHtml": "<foo bar=\"baz\"></foo><potato quack=\"duck\"></potato>"
- }
- },
- {
- "data": "<foo bar=\"baz\"><potato quack=\"duck\"></potato></foo>",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "foo": true,
- "potato": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "foo",
- "attrs": [
- {
- "name": "bar",
- "value": "baz"
- }
- ],
- "children": [
- {
- "tag": "potato",
- "attrs": [
- {
- "name": "quack",
- "value": "duck"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><foo bar=\"baz\"><potato quack=\"duck\"></potato></foo></body></html>",
- "noQuirksBodyHtml": "<foo bar=\"baz\"><potato quack=\"duck\"></potato></foo>"
- }
- },
- {
- "data": "<foo></foo bar=\"baz\"><potato></potato quack=\"duck\">",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,21): attributes-in-end-tag",
- "(1,51): attributes-in-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "foo": true,
- "potato": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "foo"
- },
- {
- "tag": "potato"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><foo></foo><potato></potato></body></html>",
- "noQuirksBodyHtml": "<foo></foo><potato></potato>"
- }
- },
- {
- "data": "</ tttt>",
- "errors": [
- "(1,2): expected-closing-tag-but-got-char",
- "(1,8): expected-doctype-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "comment": " tttt"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<!-- tttt--><html><head></head><body></body></html>",
- "noQuirksBodyHtml": "<!-- tttt-->"
- }
- },
- {
- "data": "<div FOO ><img><img></div>",
- "errors": [
- "(1,10): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "img": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "foo",
- "value": ""
- }
- ],
- "children": [
- {
- "tag": "img"
- },
- {
- "tag": "img"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div foo=\"\"><img><img></div></body></html>",
- "noQuirksBodyHtml": "<div foo=\"\"><img><img></div>"
- }
- },
- {
- "data": "<p>Test</p<p>Test2</p>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,13): unexpected-end-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "children": [
- {
- "text": "TestTest2"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p>TestTest2</p></body></html>",
- "noQuirksBodyHtml": "<p>TestTest2</p>"
- }
- },
- {
- "data": "<rdar://problem/6869687>",
- "errors": [
- "(1,7): unexpected-character-after-solidus-in-tag",
- "(1,8): unexpected-character-after-solidus-in-tag",
- "(1,16): unexpected-character-after-solidus-in-tag",
- "(1,24): expected-doctype-but-got-start-tag",
- "(1,24): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "rdar:": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "rdar:",
- "attrs": [
- {
- "name": "6869687",
- "value": ""
- },
- {
- "name": "problem",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><rdar: problem=\"\" 6869687=\"\"></rdar:></body></html>",
- "noQuirksBodyHtml": "<rdar: problem=\"\" 6869687=\"\"></rdar:>"
- }
- },
- {
- "data": "<A>test< /A>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,8): expected-tag-name",
- "(1,12): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "text": "test< /A>",
- "escaped": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a>test< /A></a></body></html>",
- "noQuirksBodyHtml": "<a>test< /A></a>"
- }
- },
- {
- "data": "<",
- "errors": [
- "(1,4): expected-doctype-but-got-chars"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "escaped": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "<",
- "escaped": true
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><</body></html>",
- "noQuirksBodyHtml": "<"
- }
- },
- {
- "data": "<body foo='bar'><body foo='baz' yo='mama'>",
- "errors": [
- "(1,16): expected-doctype-but-got-start-tag",
- "(1,42): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "attrs": [
- {
- "name": "foo",
- "value": "bar"
- },
- {
- "name": "yo",
- "value": "mama"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body foo=\"bar\" yo=\"mama\"></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<body></br foo=\"bar\"></body>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,21): attributes-in-end-tag",
- "(1,21): unexpected-end-tag-treated-as"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "br": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "br"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><br></body></html>",
- "noQuirksBodyHtml": "<br>"
- }
- },
- {
- "data": "<bdy><br foo=\"bar\"></body>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,26): expected-one-end-tag-but-got-another"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "bdy": true,
- "br": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "bdy",
- "children": [
- {
- "tag": "br",
- "attrs": [
- {
- "name": "foo",
- "value": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><bdy><br foo=\"bar\"></bdy></body></html>",
- "noQuirksBodyHtml": "<bdy><br foo=\"bar\"></bdy>"
- }
- },
- {
- "data": "<body></body></br foo=\"bar\">",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,28): attributes-in-end-tag",
- "(1,28): unexpected-end-tag-after-body",
- "(1,28): unexpected-end-tag-treated-as"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "br": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "br"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><br></body></html>",
- "noQuirksBodyHtml": "<br>"
- }
- },
- {
- "data": "<bdy></body><br foo=\"bar\">",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,12): expected-one-end-tag-but-got-another",
- "(1,26): unexpected-start-tag-after-body",
- "(1,26): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "bdy": true,
- "br": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "bdy",
- "children": [
- {
- "tag": "br",
- "attrs": [
- {
- "name": "foo",
- "value": "bar"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><bdy><br foo=\"bar\"></bdy></body></html>",
- "noQuirksBodyHtml": "<bdy><br foo=\"bar\"></bdy>"
- }
- },
- {
- "data": "<html><body></body></html><!-- Hi there -->",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- },
- {
- "comment": " Hi there "
- }
- ],
- "html": "<html><head></head><body></body></html><!-- Hi there -->",
- "noQuirksBodyHtml": "<!-- Hi there -->"
- }
- },
- {
- "data": "<html><body></body></html>x<!-- Hi there -->",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,27): expected-eof-but-got-char"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- },
- {
- "comment": " Hi there "
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>x<!-- Hi there --></body></html>",
- "noQuirksBodyHtml": "x<!-- Hi there -->"
- }
- },
- {
- "data": "<html><body></body></html>x<!-- Hi there --></html><!-- Again -->",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,27): expected-eof-but-got-char"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- },
- {
- "comment": " Hi there "
- }
- ]
- }
- ]
- },
- {
- "comment": " Again "
- }
- ],
- "html": "<html><head></head><body>x<!-- Hi there --></body></html><!-- Again -->",
- "noQuirksBodyHtml": "x<!-- Hi there --><!-- Again -->"
- }
- },
- {
- "data": "<html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,27): expected-eof-but-got-char"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- },
- "comment": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "x"
- },
- {
- "comment": " Hi there "
- }
- ]
- }
- ]
- },
- {
- "comment": " Again "
- }
- ],
- "html": "<html><head></head><body>x<!-- Hi there --></body></html><!-- Again -->",
- "noQuirksBodyHtml": "x<!-- Hi there --><!-- Again -->"
- }
- },
- {
- "data": "<html><body><ruby><div><rp>xx</rp></div></ruby></body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,27): XXX-undefined-error"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "div": true,
- "rp": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "rp",
- "children": [
- {
- "text": "xx"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby><div><rp>xx</rp></div></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><div><rp>xx</rp></div></ruby>"
- }
- },
- {
- "data": "<html><body><ruby><div><rt>xx</rt></div></ruby></body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,27): XXX-undefined-error"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ruby": true,
- "div": true,
- "rt": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ruby",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "rt",
- "children": [
- {
- "text": "xx"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ruby><div><rt>xx</rt></div></ruby></body></html>",
- "noQuirksBodyHtml": "<ruby><div><rt>xx</rt></div></ruby>"
- }
- },
- {
- "data": "<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true,
- "noframes": true
- },
- "comment": true,
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset",
- "children": [
- {
- "comment": "1"
- },
- {
- "tag": "noframes",
- "children": [
- {
- "text": "A",
- "no_escape": true
- }
- ]
- },
- {
- "comment": "2"
- }
- ]
- },
- {
- "comment": "3"
- },
- {
- "tag": "noframes",
- "children": [
- {
- "text": "B",
- "no_escape": true
- }
- ]
- },
- {
- "comment": "4"
- },
- {
- "tag": "noframes",
- "children": [
- {
- "text": "C",
- "no_escape": true
- }
- ]
- }
- ]
- },
- {
- "comment": "5"
- },
- {
- "comment": "6"
- }
- ],
- "html": "<html><head></head><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--><noframes>C</noframes></html><!--5--><!--6-->",
- "noQuirksBodyHtml": "<!--1--><noframes>A</noframes><!--2--><!--3--><noframes>B</noframes><!--4--><!--5--><noframes>C</noframes><!--6-->"
- }
- },
- {
- "data": "<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>",
- "errors": [
- "(1,8): expected-doctype-but-got-start-tag",
- "(1,25): unexpected-select-in-select",
- "(1,59): unexpected-select-in-select",
- "(1,93): unexpected-select-in-select",
- "(1,127): unexpected-select-in-select"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "select": true,
- "option": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "select",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- },
- {
- "tag": "option",
- "children": [
- {
- "text": "B"
- },
- {
- "tag": "select",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "text": "C"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "option",
- "children": [
- {
- "text": "D"
- },
- {
- "tag": "select",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "text": "E"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "option",
- "children": [
- {
- "text": "F"
- },
- {
- "tag": "select",
- "children": [
- {
- "tag": "option",
- "children": [
- {
- "text": "G"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><select><option>A</option></select><option>B<select><option>C</option></select></option><option>D<select><option>E</option></select></option><option>F<select><option>G</option></select></option></body></html>",
- "noQuirksBodyHtml": "<select><option>A</option></select><option>B<select><option>C</option></select></option><option>D<select><option>E</option></select></option><option>F<select><option>G</option></select></option>"
- }
- },
- {
- "data": "<dd><dd><dt><dt><dd><li><li>",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "dd": true,
- "dt": true,
- "li": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "dd"
- },
- {
- "tag": "dd"
- },
- {
- "tag": "dt"
- },
- {
- "tag": "dt"
- },
- {
- "tag": "dd",
- "children": [
- {
- "tag": "li"
- },
- {
- "tag": "li"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><dd></dd><dd></dd><dt></dt><dt></dt><dd><li></li><li></li></dd></body></html>",
- "noQuirksBodyHtml": "<dd></dd><dd></dd><dt></dt><dt></dt><dd><li></li><li></li></dd>"
- }
- },
- {
- "data": "<div><b></div><div><nobr>a<nobr>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,14): end-tag-too-early",
- "(1,32): unexpected-start-tag-implies-end-tag",
- "(1,32): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "b": true,
- "nobr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "b"
- }
- ]
- },
- {
- "tag": "div",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "nobr",
- "children": [
- {
- "text": "a"
- }
- ]
- },
- {
- "tag": "nobr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><b></b></div><div><b><nobr>a</nobr><nobr></nobr></b></div></body></html>",
- "noQuirksBodyHtml": "<div><b></b></div><div><b><nobr>a</nobr><nobr></nobr></b></div>"
- }
- },
- {
- "data": "<head></head>\n<body></body>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "text": "\n"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head>\n<body></body></html>",
- "noQuirksBodyHtml": "\n"
- }
- },
- {
- "data": "<head></head> <style></style>ddd",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,21): unexpected-start-tag-out-of-my-head"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "style": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head",
- "children": [
- {
- "tag": "style"
- }
- ]
- },
- {
- "text": " "
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "ddd"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head><style></style></head> <body>ddd</body></html>",
- "noQuirksBodyHtml": " <style></style>ddd"
- }
- },
- {
- "data": "<kbd><table></kbd><col><select><tr>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,18): unexpected-end-tag-implies-table-voodoo",
- "(1,18): unexpected-end-tag",
- "(1,31): unexpected-start-tag-implies-table-voodoo",
- "(1,35): unexpected-table-element-start-tag-in-select-in-table",
- "(1,35): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "kbd": true,
- "select": true,
- "table": true,
- "colgroup": true,
- "col": true,
- "tbody": true,
- "tr": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "kbd",
- "children": [
- {
- "tag": "select"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- }
- ]
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table></kbd></body></html>",
- "noQuirksBodyHtml": "<kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table></kbd>"
- }
- },
- {
- "data": "<kbd><table></kbd><col><select><tr></table><div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,18): unexpected-end-tag-implies-table-voodoo",
- "(1,18): unexpected-end-tag",
- "(1,31): unexpected-start-tag-implies-table-voodoo",
- "(1,35): unexpected-table-element-start-tag-in-select-in-table",
- "(1,48): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "kbd": true,
- "select": true,
- "table": true,
- "colgroup": true,
- "col": true,
- "tbody": true,
- "tr": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "kbd",
- "children": [
- {
- "tag": "select"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "colgroup",
- "children": [
- {
- "tag": "col"
- }
- ]
- },
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr"
- }
- ]
- }
- ]
- },
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table><div></div></kbd></body></html>",
- "noQuirksBodyHtml": "<kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table><div></div></kbd>"
- }
- },
- {
- "data": "<a><li><style></style><title></title></a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,41): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "li": true,
- "style": true,
- "title": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "li",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "style"
- },
- {
- "tag": "title"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a></a><li><a><style></style><title></title></a></li></body></html>",
- "noQuirksBodyHtml": "<a></a><li><a><style></style><title></title></a></li>"
- }
- },
- {
- "data": "<font></p><p><meta><title></title></font>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,10): unexpected-end-tag",
- "(1,41): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "font": true,
- "p": true,
- "meta": true,
- "title": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "font",
- "children": [
- {
- "tag": "p"
- }
- ]
- },
- {
- "tag": "p",
- "children": [
- {
- "tag": "font",
- "children": [
- {
- "tag": "meta"
- },
- {
- "tag": "title"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><font><p></p></font><p><font><meta><title></title></font></p></body></html>",
- "noQuirksBodyHtml": "<font><p></p></font><p><font><meta><title></title></font></p>"
- }
- },
- {
- "data": "<a><center><title></title><a>",
- "errors": [
- "(1,3): expected-doctype-but-got-start-tag",
- "(1,29): unexpected-start-tag-implies-end-tag",
- "(1,29): adoption-agency-1.3",
- "(1,29): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "a": true,
- "center": true,
- "title": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "a"
- },
- {
- "tag": "center",
- "children": [
- {
- "tag": "a",
- "children": [
- {
- "tag": "title"
- }
- ]
- },
- {
- "tag": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><a></a><center><a><title></title></a><a></a></center></body></html>",
- "noQuirksBodyHtml": "<a></a><center><a><title></title></a><a></a></center>"
- }
- },
- {
- "data": "<svg><title><div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,17): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg title": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "title",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><title><div></div></title></svg></body></html>",
- "noQuirksBodyHtml": "<svg><title><div></div></title></svg>"
- }
- },
- {
- "data": "<svg><title><rect><div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,23): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg title": true,
- "rect": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "title",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "rect",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><title><rect><div></div></rect></title></svg></body></html>",
- "noQuirksBodyHtml": "<svg><title><rect><div></div></rect></title></svg>"
- }
- },
- {
- "data": "<svg><title><svg><div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,22): unexpected-html-element-in-foreign-content",
- "(1,22): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg title": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "title",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><title><svg></svg><div></div></title></svg></body></html>",
- "noQuirksBodyHtml": "<svg><title><svg><div></div></svg></title></svg>"
- }
- },
- {
- "data": "<img <=\"\" FAIL>",
- "errors": [
- "(1,6): invalid-character-in-attribute-name",
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "img": true
- },
- "attrWithFunnyChar": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "img",
- "attrs": [
- {
- "name": "<",
- "value": ""
- },
- {
- "name": "fail",
- "value": ""
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><img <=\"\" fail=\"\"></body></html>",
- "noQuirksBodyHtml": "<img <=\"\" fail=\"\">"
- }
- },
- {
- "data": "<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>",
- "errors": [
- "(1,4): expected-doctype-but-got-start-tag",
- "(1,23): non-void-element-with-trailing-solidus",
- "(1,29): end-tag-too-early"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "ul": true,
- "li": true,
- "div": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "ul",
- "children": [
- {
- "tag": "li",
- "children": [
- {
- "tag": "div",
- "attrs": [
- {
- "name": "id",
- "value": "foo"
- }
- ],
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- },
- {
- "tag": "li",
- "children": [
- {
- "text": "B"
- },
- {
- "tag": "div",
- "children": [
- {
- "text": "C"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><ul><li><div id=\"foo\">A</div></li><li>B<div>C</div></li></ul></body></html>",
- "noQuirksBodyHtml": "<ul><li><div id=\"foo\">A</div></li><li>B<div>C</div></li></ul>"
- }
- },
- {
- "data": "<svg><em><desc></em>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,9): unexpected-html-element-in-foreign-content",
- "(1,20): adoption-agency-1.3"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "em": true,
- "desc": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "em",
- "children": [
- {
- "tag": "desc"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg></svg><em><desc></desc></em></body></html>",
- "noQuirksBodyHtml": "<svg><em><desc></desc></em></svg>"
- }
- },
- {
- "data": "<table><tr><td><svg><desc><td></desc><circle>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true,
- "svg svg": true,
- "svg desc": true,
- "circle": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "desc",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- },
- {
- "tag": "td",
- "children": [
- {
- "tag": "circle"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table>"
- }
- },
- {
- "data": "<svg><tfoot></mi><td>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag",
- "(1,17): unexpected-end-tag",
- "(1,17): unexpected-end-tag",
- "(1,21): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg tfoot": true,
- "svg td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "tfoot",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "td",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><tfoot><td></td></tfoot></svg></body></html>",
- "noQuirksBodyHtml": "<svg><tfoot><td></td></tfoot></svg>"
- }
- },
- {
- "data": "<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "math math": true,
- "math mrow": true,
- "math mn": true,
- "math mi": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "math",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mrow",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mrow",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "tag": "mn",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "1"
- }
- ]
- }
- ]
- },
- {
- "tag": "mi",
- "ns": "http://www.w3.org/1998/Math/MathML",
- "children": [
- {
- "text": "a"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math></body></html>",
- "noQuirksBodyHtml": "<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>"
- }
- },
- {
- "data": "<!doctype html><input type=\"hidden\"><frameset>",
- "errors": [
- "(1,46): unexpected-start-tag",
- "(1,46): eof-in-frameset"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "frameset": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "frameset"
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
- "noQuirksBodyHtml": "<input type=\"hidden\">"
- }
- },
- {
- "data": "<!doctype html><input type=\"button\"><frameset>",
- "errors": [
- "(1,46): unexpected-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "input": true
- },
- "doctype": true
- },
- "tree": [
- {
- "doctype": "html"
- },
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "input",
- "attrs": [
- {
- "name": "type",
- "value": "button"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<!DOCTYPE html><html><head></head><body><input type=\"button\"></body></html>",
- "noQuirksBodyHtml": "<input type=\"button\">"
- }
- }
- ],
- "webkit02.dat": [
- {
- "data": "<foo bar=qux/>",
- "errors": [
- "(1,14): expected-doctype-but-got-start-tag",
- "(1,14): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "foo": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "foo",
- "attrs": [
- {
- "name": "bar",
- "value": "qux/"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><foo bar=\"qux/\"></foo></body></html>",
- "noQuirksBodyHtml": "<foo bar=\"qux/\"></foo>"
- }
- },
- {
- "data": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "script": "on",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "noscript": true,
- "span": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "attrs": [
- {
- "name": "id",
- "value": "status"
- }
- ],
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "text": "<strong>A</strong>",
- "no_escape": true
- }
- ]
- },
- {
- "tag": "span",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p></body></html>",
- "noQuirksBodyHtml": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>"
- }
- },
- {
- "data": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
- "errors": [
- "(1,15): expected-doctype-but-got-start-tag"
- ],
- "script": "off",
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "p": true,
- "noscript": true,
- "strong": true,
- "span": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "p",
- "attrs": [
- {
- "name": "id",
- "value": "status"
- }
- ],
- "children": [
- {
- "tag": "noscript",
- "children": [
- {
- "tag": "strong",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- },
- {
- "tag": "span",
- "children": [
- {
- "text": "B"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p></body></html>",
- "noQuirksBodyHtml": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>"
- }
- },
- {
- "data": "<div><sarcasm><div></div></sarcasm></div>",
- "errors": [
- "(1,5): expected-doctype-but-got-start-tag"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "div": true,
- "sarcasm": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "tag": "sarcasm",
- "children": [
- {
- "tag": "div"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><div><sarcasm><div></div></sarcasm></div></body></html>",
- "noQuirksBodyHtml": "<div><sarcasm><div></div></sarcasm></div>"
- }
- },
- {
- "data": "<html><body><img src=\"\" border=\"0\" alt=\"><div>A</div></body></html>",
- "errors": [
- "(1,6): expected-doctype-but-got-start-tag",
- "(1,67): eof-in-attribute-value-double-quote"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body"
- }
- ]
- }
- ],
- "html": "<html><head></head><body></body></html>",
- "noQuirksBodyHtml": ""
- }
- },
- {
- "data": "<table><td></tbody>A",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,20): foster-parenting-character",
- "(1,20): eof-in-table"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "text": "A"
- },
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body>A<table><tbody><tr><td></td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "A<table><tbody><tr><td></td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><td></thead>A",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,19): XXX-undefined-error",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><td></tfoot>A",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,11): unexpected-cell-in-table-body",
- "(1,19): XXX-undefined-error",
- "(1,20): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "tbody": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "tbody",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table></body></html>",
- "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>"
- }
- },
- {
- "data": "<table><thead><td></tbody>A",
- "errors": [
- "(1,7): expected-doctype-but-got-start-tag",
- "(1,18): unexpected-cell-in-table-body",
- "(1,26): XXX-undefined-error",
- "(1,27): expected-closing-tag-but-got-eof"
- ],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "table": true,
- "thead": true,
- "tr": true,
- "td": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "table",
- "children": [
- {
- "tag": "thead",
- "children": [
- {
- "tag": "tr",
- "children": [
- {
- "tag": "td",
- "children": [
- {
- "text": "A"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><table><thead><tr><td>A</td></tr></thead></table></body></html>",
- "noQuirksBodyHtml": "<table><thead><tr><td>A</td></tr></thead></table>"
- }
- },
- {
- "data": "<legend>test</legend>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "legend": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "legend",
- "children": [
- {
- "text": "test"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><legend>test</legend></body></html>",
- "noQuirksBodyHtml": "<legend>test</legend>"
- }
- },
- {
- "data": "<table><input>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "input": true,
- "table": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "input"
- },
- {
- "tag": "table"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><input><table></table></body></html>",
- "noQuirksBodyHtml": "<input><table></table>"
- }
- },
- {
- "data": "<b><em><foo><foo><aside></b>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "em": true,
- "foo": true,
- "aside": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "em",
- "children": [
- {
- "tag": "aside",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><em><foo><foo></foo></foo></em></b><em><aside><b></b></aside></em></body></html>",
- "noQuirksBodyHtml": "<b><em><foo><foo></foo></foo></em></b><em><aside><b></b></aside></em>"
- }
- },
- {
- "data": "<b><em><foo><foo><aside></b></em>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "em": true,
- "foo": true,
- "aside": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "em"
- },
- {
- "tag": "aside",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><em><foo><foo></foo></foo></em></b><em></em><aside><em><b></b></em></aside></body></html>",
- "noQuirksBodyHtml": "<b><em><foo><foo></foo></foo></em></b><em></em><aside><em><b></b></em></aside>"
- }
- },
- {
- "data": "<b><em><foo><foo><foo><aside></b>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "em": true,
- "foo": true,
- "aside": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "aside",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside></body></html>",
- "noQuirksBodyHtml": "<b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside>"
- }
- },
- {
- "data": "<b><em><foo><foo><foo><aside></b></em>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "b": true,
- "em": true,
- "foo": true,
- "aside": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "aside",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside></body></html>",
- "noQuirksBodyHtml": "<b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside>"
- }
- },
- {
- "data": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo><aside></b></em>",
- "errors": [],
- "fragment": {
- "name": "div"
- },
- "document": {
- "props": {
- "tags": {
- "b": true,
- "em": true,
- "foo": true,
- "aside": true
- }
- },
- "tree": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foo"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "aside",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ],
- "html": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></em></b><aside><b></b></aside>",
- "noQuirksBodyHtml": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></em></b><aside><b></b></aside>"
- }
- },
- {
- "data": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food><aside></b></em>",
- "errors": [],
- "fragment": {
- "name": "div"
- },
- "document": {
- "props": {
- "tags": {
- "b": true,
- "em": true,
- "foo": true,
- "foob": true,
- "fooc": true,
- "food": true,
- "aside": true
- }
- },
- "tree": [
- {
- "tag": "b",
- "children": [
- {
- "tag": "em",
- "children": [
- {
- "tag": "foo",
- "children": [
- {
- "tag": "foob",
- "children": [
- {
- "tag": "foob",
- "children": [
- {
- "tag": "foob",
- "children": [
- {
- "tag": "foob",
- "children": [
- {
- "tag": "fooc",
- "children": [
- {
- "tag": "fooc",
- "children": [
- {
- "tag": "fooc",
- "children": [
- {
- "tag": "fooc",
- "children": [
- {
- "tag": "food"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "tag": "aside",
- "children": [
- {
- "tag": "b"
- }
- ]
- }
- ],
- "html": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food></food></fooc></fooc></fooc></fooc></foob></foob></foob></foob></foo></em></b><aside><b></b></aside>",
- "noQuirksBodyHtml": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food></food></fooc></fooc></fooc></fooc></foob></foob></foob></foob></foo></em></b><aside><b></b></aside>"
- }
- },
- {
- "data": "<option><XH<optgroup></optgroup>",
- "errors": [],
- "fragment": {
- "name": "select"
- },
- "document": {
- "props": {
- "tags": {
- "option": true
- }
- },
- "tree": [
- {
- "tag": "option"
- }
- ],
- "html": "<option></option>",
- "noQuirksBodyHtml": "<option><xh<optgroup></xh<optgroup></option>"
- }
- },
- {
- "data": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg foreignObject": true,
- "div": true,
- "plaintext": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "div",
- "children": [
- {
- "text": "foo"
- }
- ]
- },
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "</foreignObject></svg><div>bar</div>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div></plaintext></foreignObject></svg></body></html>",
- "noQuirksBodyHtml": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div></plaintext></foreignObject></svg>"
- }
- },
- {
- "data": "<svg><foreignObject></foreignObject><title></svg>foo",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "svg svg": true,
- "svg foreignObject": true,
- "svg title": true
- }
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "svg",
- "ns": "http://www.w3.org/2000/svg",
- "children": [
- {
- "tag": "foreignObject",
- "ns": "http://www.w3.org/2000/svg"
- },
- {
- "tag": "title",
- "ns": "http://www.w3.org/2000/svg"
- }
- ]
- },
- {
- "text": "foo"
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><svg><foreignObject></foreignObject><title></title></svg>foo</body></html>",
- "noQuirksBodyHtml": "<svg><foreignObject></foreignObject><title></title></svg>foo"
- }
- },
- {
- "data": "</foreignObject><plaintext><div>foo</div>",
- "errors": [],
- "document": {
- "props": {
- "tags": {
- "html": true,
- "head": true,
- "body": true,
- "plaintext": true
- },
- "no_escape": true
- },
- "tree": [
- {
- "tag": "html",
- "children": [
- {
- "tag": "head"
- },
- {
- "tag": "body",
- "children": [
- {
- "tag": "plaintext",
- "children": [
- {
- "text": "<div>foo</div>",
- "no_escape": true
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- "html": "<html><head></head><body><plaintext><div>foo</div></plaintext></body></html>",
- "noQuirksBodyHtml": "<plaintext><div>foo</div></plaintext>"
- }
- }
- ]
-}
\ No newline at end of file
+++ /dev/null
-<?php
-/**
- * Tests for IP validity functions.
- *
- * Ported from /t/inc/IP.t by avar.
- *
- * @todo Test methods in this call should be split into a method and a
- * dataprovider.
- */
-
-/**
- * @group IP
- * @covers AvroValidator
- */
-class AvroValidatorTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- public function setUp() {
- if ( !class_exists( 'AvroSchema' ) ) {
- $this->markTestSkipped( 'Avro is required to run the AvroValidatorTest' );
- }
- parent::setUp();
- }
-
- public function getErrorsProvider() {
- $stringSchema = AvroSchema::parse( json_encode( [ 'type' => 'string' ] ) );
- $stringArraySchema = AvroSchema::parse( json_encode( [
- 'type' => 'array',
- 'items' => 'string',
- ] ) );
- $recordSchema = AvroSchema::parse( json_encode( [
- 'type' => 'record',
- 'name' => 'ut',
- 'fields' => [
- [ 'name' => 'id', 'type' => 'int', 'required' => true ],
- ],
- ] ) );
- $enumSchema = AvroSchema::parse( json_encode( [
- 'type' => 'record',
- 'name' => 'ut',
- 'fields' => [
- [ 'name' => 'count', 'type' => [ 'int', 'null' ] ],
- ],
- ] ) );
-
- return [
- [
- 'No errors with a simple string serialization',
- $stringSchema, 'foobar', [],
- ],
-
- [
- 'Cannot serialize integer into string',
- $stringSchema, 5, 'Expected string, but recieved integer',
- ],
-
- [
- 'Cannot serialize array into string',
- $stringSchema, [], 'Expected string, but recieved array',
- ],
-
- [
- 'allows and ignores extra fields',
- $recordSchema, [ 'id' => 4, 'foo' => 'bar' ], [],
- ],
-
- [
- 'detects missing fields',
- $recordSchema, [], [ 'id' => 'Missing expected field' ],
- ],
-
- [
- 'handles first element in enum',
- $enumSchema, [ 'count' => 4 ], [],
- ],
-
- [
- 'handles second element in enum',
- $enumSchema, [ 'count' => null ], [],
- ],
-
- [
- 'rejects element not in union',
- $enumSchema, [ 'count' => 'invalid' ], [ 'count' => [
- 'Expected any one of these to be true',
- [
- 'Expected integer, but recieved string',
- 'Expected null, but recieved string',
- ]
- ] ]
- ],
- [
- 'Empty array is accepted',
- $stringArraySchema, [], []
- ],
- [
- 'correct array element accepted',
- $stringArraySchema, [ 'fizzbuzz' ], []
- ],
- [
- 'incorrect array element rejected',
- $stringArraySchema, [ '12', 34 ], [ 'Expected string, but recieved integer' ]
- ],
- ];
- }
-
- /**
- * @dataProvider getErrorsProvider
- */
- public function testGetErrors( $message, $schema, $datum, $expected ) {
- $this->assertEquals(
- $expected,
- AvroValidator::getErrors( $schema, $datum ),
- $message
- );
- }
-}
+++ /dev/null
-<?php
-
-/**
- * @covers ClassCollector
- */
-class ClassCollectorTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- public static function provideCases() {
- return [
- [
- "class Foo {}",
- [ 'Foo' ],
- ],
- [
- "namespace Example;\nclass Foo {}\nclass Bar {}",
- [ 'Example\Foo', 'Example\Bar' ],
- ],
- [
- "class_alias( 'Foo', 'Bar' );",
- [ 'Bar' ],
- ],
- [
- "namespace Example;\nclass Foo {}\nclass_alias( 'Example\Foo', 'Foo' );",
- [ 'Example\Foo', 'Foo' ],
- ],
- [
- "namespace Example;\nclass Foo {}\nclass_alias( 'Example\Foo', 'Bar' );",
- [ 'Example\Foo', 'Bar' ],
- ],
- [
- // Support a multiline 'class' statement
- "namespace Example;\nclass Foo extends\n\tFooBase {\n\t"
- . "public function x() {}\n}\nclass_alias( 'Example\Foo', 'Bar' );",
- [ 'Example\Foo', 'Bar' ],
- ],
- [
- "class_alias( Foo::class, 'Bar' );",
- [ 'Bar' ],
- ],
- [
- // Support nested class_alias() calls
- "if ( false ) {\n\tclass_alias( Foo::class, 'Bar' );\n}",
- [ 'Bar' ],
- ],
- [
- // Namespaced class is not currently supported. Must use namespace declaration
- // earlier in the file.
- "class_alias( Example\Foo::class, 'Bar' );",
- [],
- ],
- [
- "namespace Example;\nclass Foo {}\nclass_alias( Foo::class, 'Bar' );",
- [ 'Example\Foo', 'Bar' ],
- ],
- [
- "new class() extends Foo {}",
- []
- ]
- ];
- }
-
- /**
- * @dataProvider provideCases
- */
- public function testGetClasses( $code, array $classes, $message = null ) {
- $cc = new ClassCollector();
- $this->assertEquals( $classes, $cc->getClasses( "<?php\n$code" ), $message );
- }
-}
+++ /dev/null
-<?php
-
-/**
- * @group Hash
- *
- * @covers MWCryptHash
- */
-class MWCryptHashTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- public function testHashLength() {
- if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
- $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
- }
-
- $this->assertEquals( 64, MWCryptHash::hashLength(), 'Raw hash length' );
- $this->assertEquals( 128, MWCryptHash::hashLength( false ), 'Hex hash length' );
- }
-
- public function testHash() {
- if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
- $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
- }
-
- $data = 'foobar';
- // phpcs:ignore Generic.Files.LineLength
- $hash = '9923afaec3a86f865bb231a588f453f84e8151a2deb4109aebc6de4284be5bebcff4fab82a7e51d920237340a043736e9d13bab196006dcca0fe65314d68eab9';
-
- $this->assertEquals(
- hex2bin( $hash ),
- MWCryptHash::hash( $data ),
- 'Raw hash'
- );
- $this->assertEquals(
- $hash,
- MWCryptHash::hash( $data, false ),
- 'Hex hash'
- );
- }
-
- public function testHmac() {
- if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
- $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
- }
-
- $data = 'foobar';
- $key = 'secret';
- // phpcs:ignore Generic.Files.LineLength
- $hash = 'ddc94177b2020e55ce2049199fd9cc6327f416ff6dc621cc34cb43d9bec61d73372b4790c0e24957f565ecaf2d42821e6303619093e99cbe14a3b9250bda5f81';
-
- $this->assertEquals(
- hex2bin( $hash ),
- MWCryptHash::hmac( $data, $key ),
- 'Raw hmac'
- );
- $this->assertEquals(
- $hash,
- MWCryptHash::hmac( $data, $key, false ),
- 'Hex hmac'
- );
- }
-
-}
+++ /dev/null
-<?php
-class MWRestrictionsTest extends PHPUnit\Framework\TestCase {
-
- use MediaWikiCoversValidator;
-
- protected static $restrictionsForChecks;
-
- public static function setUpBeforeClass() {
- self::$restrictionsForChecks = MWRestrictions::newFromArray( [
- 'IPAddresses' => [
- '10.0.0.0/8',
- '172.16.0.0/12',
- '2001:db8::/33',
- ]
- ] );
- }
-
- /**
- * @covers MWRestrictions::newDefault
- * @covers MWRestrictions::__construct
- */
- public function testNewDefault() {
- $ret = MWRestrictions::newDefault();
- $this->assertInstanceOf( MWRestrictions::class, $ret );
- $this->assertSame(
- '{"IPAddresses":["0.0.0.0/0","::/0"]}',
- $ret->toJson()
- );
- }
-
- /**
- * @covers MWRestrictions::newFromArray
- * @covers MWRestrictions::__construct
- * @covers MWRestrictions::loadFromArray
- * @covers MWRestrictions::toArray
- * @dataProvider provideArray
- * @param array $data
- * @param bool|InvalidArgumentException $expect True if the call succeeds,
- * otherwise the exception that should be thrown.
- */
- public function testArray( $data, $expect ) {
- if ( $expect === true ) {
- $ret = MWRestrictions::newFromArray( $data );
- $this->assertInstanceOf( MWRestrictions::class, $ret );
- $this->assertSame( $data, $ret->toArray() );
- } else {
- try {
- MWRestrictions::newFromArray( $data );
- $this->fail( 'Expected exception not thrown' );
- } catch ( InvalidArgumentException $ex ) {
- $this->assertEquals( $expect, $ex );
- }
- }
- }
-
- public static function provideArray() {
- return [
- [ [ 'IPAddresses' => [] ], true ],
- [ [ 'IPAddresses' => [ '127.0.0.1/32' ] ], true ],
- [
- [ 'IPAddresses' => [ '256.0.0.1/32' ] ],
- new InvalidArgumentException( 'Invalid IP address: 256.0.0.1/32' )
- ],
- [
- [ 'IPAddresses' => '127.0.0.1/32' ],
- new InvalidArgumentException( 'IPAddresses is not an array' )
- ],
- [
- [],
- new InvalidArgumentException( 'Array is missing required keys: IPAddresses' )
- ],
- [
- [ 'foo' => 'bar', 'bar' => 42 ],
- new InvalidArgumentException( 'Array contains invalid keys: foo, bar' )
- ],
- ];
- }
-
- /**
- * @covers MWRestrictions::newFromJson
- * @covers MWRestrictions::__construct
- * @covers MWRestrictions::loadFromArray
- * @covers MWRestrictions::toJson
- * @covers MWRestrictions::__toString
- * @dataProvider provideJson
- * @param string $json
- * @param array|InvalidArgumentException $expect
- */
- public function testJson( $json, $expect ) {
- if ( is_array( $expect ) ) {
- $ret = MWRestrictions::newFromJson( $json );
- $this->assertInstanceOf( MWRestrictions::class, $ret );
- $this->assertSame( $expect, $ret->toArray() );
-
- $this->assertSame( $json, $ret->toJson( false ) );
- $this->assertSame( $json, (string)$ret );
-
- $this->assertSame(
- FormatJson::encode( $expect, true, FormatJson::ALL_OK ),
- $ret->toJson( true )
- );
- } else {
- try {
- MWRestrictions::newFromJson( $json );
- $this->fail( 'Expected exception not thrown' );
- } catch ( InvalidArgumentException $ex ) {
- $this->assertTrue( true );
- }
- }
- }
-
- public static function provideJson() {
- return [
- [
- '{"IPAddresses":[]}',
- [ 'IPAddresses' => [] ]
- ],
- [
- '{"IPAddresses":["127.0.0.1/32"]}',
- [ 'IPAddresses' => [ '127.0.0.1/32' ] ]
- ],
- [
- '{"IPAddresses":["256.0.0.1/32"]}',
- new InvalidArgumentException( 'Invalid IP address: 256.0.0.1/32' )
- ],
- [
- '{"IPAddresses":"127.0.0.1/32"}',
- new InvalidArgumentException( 'IPAddresses is not an array' )
- ],
- [
- '{}',
- new InvalidArgumentException( 'Array is missing required keys: IPAddresses' )
- ],
- [
- '{"foo":"bar","bar":42}',
- new InvalidArgumentException( 'Array contains invalid keys: foo, bar' )
- ],
- [
- '{"IPAddresses":[]',
- new InvalidArgumentException( 'Invalid restrictions JSON' )
- ],
- [
- '"IPAddresses"',
- new InvalidArgumentException( 'Invalid restrictions JSON' )
- ],
- ];
- }
-
- /**
- * @covers MWRestrictions::checkIP
- * @dataProvider provideCheckIP
- * @param string $ip
- * @param bool $pass
- */
- public function testCheckIP( $ip, $pass ) {
- $this->assertSame( $pass, self::$restrictionsForChecks->checkIP( $ip ) );
- }
-
- public static function provideCheckIP() {
- return [
- [ '10.0.0.1', true ],
- [ '172.16.0.0', true ],
- [ '192.0.2.1', false ],
- [ '2001:db8:1::', true ],
- [ '2001:0db8:0000:0000:0000:0000:0000:0000', true ],
- [ '2001:0DB8:8000::', false ],
- ];
- }
-
- /**
- * @covers MWRestrictions::check
- * @dataProvider provideCheck
- * @param WebRequest $request
- * @param Status $expect
- */
- public function testCheck( $request, $expect ) {
- $this->assertEquals( $expect, self::$restrictionsForChecks->check( $request ) );
- }
-
- public function provideCheck() {
- $ret = [];
-
- $mockBuilder = $this->getMockBuilder( FauxRequest::class )
- ->setMethods( [ 'getIP' ] );
-
- foreach ( self::provideCheckIP() as $checkIP ) {
- $ok = [];
- $request = $mockBuilder->getMock();
-
- $request->expects( $this->any() )->method( 'getIP' )
- ->will( $this->returnValue( $checkIP[0] ) );
- $ok['ip'] = $checkIP[1];
-
- /* If we ever add more restrictions, add nested for loops here:
- * foreach ( self::provideCheckFoo() as $checkFoo ) {
- * $request->expects( $this->any() )->method( 'getFoo' )
- * ->will( $this->returnValue( $checkFoo[0] );
- * $ok['foo'] = $checkFoo[1];
- *
- * foreach ( self::provideCheckBar() as $checkBar ) {
- * $request->expects( $this->any() )->method( 'getBar' )
- * ->will( $this->returnValue( $checkBar[0] );
- * $ok['bar'] = $checkBar[1];
- *
- * // etc.
- * }
- * }
- */
-
- $status = Status::newGood();
- $status->setResult( $ok === array_filter( $ok ), $ok );
- $ret[] = [ $request, $status ];
- }
-
- return $ret;
- }
-}
--- /dev/null
+<?php
+
+/**
+ * @covers DerivativeRequest
+ */
+class DerivativeRequestTest extends MediaWikiUnitTestCase {
+
+ public function testSetIp() {
+ $original = new WebRequest();
+ $original->setIP( '1.2.3.4' );
+ $derivative = new DerivativeRequest( $original, [] );
+
+ $this->assertEquals( '1.2.3.4', $derivative->getIP() );
+
+ $derivative->setIP( '5.6.7.8' );
+
+ $this->assertEquals( '5.6.7.8', $derivative->getIP() );
+ $this->assertEquals( '1.2.3.4', $original->getIP() );
+ }
+
+}
--- /dev/null
+<?php
+
+/**
+ * @covers Sanitizer::validateEmail
+ * @todo all test methods in this class should be refactored and...
+ * use a single test method and a single data provider...
+ */
+class SanitizerValidateEmailTest extends MediaWikiUnitTestCase {
+
+ private function checkEmail( $addr, $expected = true, $msg = '' ) {
+ if ( $msg == '' ) {
+ $msg = "Testing $addr";
+ }
+
+ $this->assertEquals(
+ $expected,
+ Sanitizer::validateEmail( $addr ),
+ $msg
+ );
+ }
+
+ private function valid( $addr, $msg = '' ) {
+ $this->checkEmail( $addr, true, $msg );
+ }
+
+ private function invalid( $addr, $msg = '' ) {
+ $this->checkEmail( $addr, false, $msg );
+ }
+
+ public function testEmailWellKnownUserAtHostDotTldAreValid() {
+ $this->valid( 'user@example.com' );
+ $this->valid( 'user@example.museum' );
+ }
+
+ public function testEmailWithUpperCaseCharactersAreValid() {
+ $this->valid( 'USER@example.com' );
+ $this->valid( 'user@EXAMPLE.COM' );
+ $this->valid( 'user@Example.com' );
+ $this->valid( 'USER@eXAMPLE.com' );
+ }
+
+ public function testEmailWithAPlusInUserName() {
+ $this->valid( 'user+sub@example.com' );
+ $this->valid( 'user+@example.com' );
+ }
+
+ public function testEmailDoesNotNeedATopLevelDomain() {
+ $this->valid( "user@localhost" );
+ $this->valid( "FooBar@localdomain" );
+ $this->valid( "nobody@mycompany" );
+ }
+
+ public function testEmailWithWhiteSpacesBeforeOrAfterAreInvalids() {
+ $this->invalid( " user@host.com" );
+ $this->invalid( "user@host.com " );
+ $this->invalid( "\tuser@host.com" );
+ $this->invalid( "user@host.com\t" );
+ }
+
+ public function testEmailWithWhiteSpacesAreInvalids() {
+ $this->invalid( "User user@host" );
+ $this->invalid( "first last@mycompany" );
+ $this->invalid( "firstlast@my company" );
+ }
+
+ /**
+ * T28948 : comma were matched by an incorrect regexp range
+ */
+ public function testEmailWithCommasAreInvalids() {
+ $this->invalid( "user,foo@example.org" );
+ $this->invalid( "userfoo@ex,ample.org" );
+ }
+
+ public function testEmailWithHyphens() {
+ $this->valid( "user-foo@example.org" );
+ $this->valid( "userfoo@ex-ample.org" );
+ }
+
+ public function testEmailDomainCanNotBeginWithDot() {
+ $this->invalid( "user@." );
+ $this->invalid( "user@.localdomain" );
+ $this->invalid( "user@localdomain." );
+ $this->valid( "user.@localdomain" );
+ $this->valid( ".@localdomain" );
+ $this->invalid( ".@a............" );
+ }
+
+ public function testEmailWithFunnyCharacters() {
+ $this->valid( "\$user!ex{this}@123.com" );
+ }
+
+ public function testEmailTopLevelDomainCanBeNumerical() {
+ $this->valid( "user@example.1234" );
+ }
+
+ public function testEmailWithoutAtSignIsInvalid() {
+ $this->invalid( 'useràexample.com' );
+ }
+
+ public function testEmailWithOneCharacterDomainIsValid() {
+ $this->valid( 'user@a' );
+ }
+}
--- /dev/null
+<?php
+
+/**
+ * @group Xml
+ */
+class XmlJsTest extends MediaWikiUnitTestCase {
+
+ /**
+ * @covers XmlJsCode::__construct
+ * @dataProvider provideConstruction
+ */
+ public function testConstruction( $value ) {
+ $obj = new XmlJsCode( $value );
+ $this->assertEquals( $value, $obj->value );
+ }
+
+ public static function provideConstruction() {
+ return [
+ [ null ],
+ [ '' ],
+ ];
+ }
+
+}
--- /dev/null
+<?php
+
+/**
+ * @covers ComposerVersionNormalizer
+ *
+ * @group ComposerHooks
+ *
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+class ComposerVersionNormalizerTest extends MediaWikiUnitTestCase {
+
+ /**
+ * @dataProvider nonStringProvider
+ */
+ public function testGivenNonString_normalizeThrowsInvalidArgumentException( $nonString ) {
+ $normalizer = new ComposerVersionNormalizer();
+
+ $this->setExpectedException( InvalidArgumentException::class );
+ $normalizer->normalizeSuffix( $nonString );
+ }
+
+ public function nonStringProvider() {
+ return [
+ [ null ],
+ [ 42 ],
+ [ [] ],
+ [ new stdClass() ],
+ [ true ],
+ ];
+ }
+
+ /**
+ * @dataProvider simpleVersionProvider
+ */
+ public function testGivenSimpleVersion_normalizeSuffixReturnsAsIs( $simpleVersion ) {
+ $this->assertRemainsUnchanged( $simpleVersion );
+ }
+
+ protected function assertRemainsUnchanged( $version ) {
+ $normalizer = new ComposerVersionNormalizer();
+
+ $this->assertEquals(
+ $version,
+ $normalizer->normalizeSuffix( $version )
+ );
+ }
+
+ public function simpleVersionProvider() {
+ return [
+ [ '1.22.0' ],
+ [ '1.19.2' ],
+ [ '1.19.2.0' ],
+ [ '1.9' ],
+ [ '123.321.456.654' ],
+ ];
+ }
+
+ /**
+ * @dataProvider complexVersionProvider
+ */
+ public function testGivenComplexVersionWithoutDash_normalizeSuffixAddsDash(
+ $withoutDash, $withDash
+ ) {
+ $normalizer = new ComposerVersionNormalizer();
+
+ $this->assertEquals(
+ $withDash,
+ $normalizer->normalizeSuffix( $withoutDash )
+ );
+ }
+
+ public function complexVersionProvider() {
+ return [
+ [ '1.22.0alpha', '1.22.0-alpha' ],
+ [ '1.22.0RC', '1.22.0-RC' ],
+ [ '1.19beta', '1.19-beta' ],
+ [ '1.9RC4', '1.9-RC4' ],
+ [ '1.9.1.2RC4', '1.9.1.2-RC4' ],
+ [ '1.9.1.2RC', '1.9.1.2-RC' ],
+ [ '123.321.456.654RC9001', '123.321.456.654-RC9001' ],
+ ];
+ }
+
+ /**
+ * @dataProvider complexVersionProvider
+ */
+ public function testGivenComplexVersionWithDash_normalizeSuffixReturnsAsIs(
+ $withoutDash, $withDash
+ ) {
+ $this->assertRemainsUnchanged( $withDash );
+ }
+
+ /**
+ * @dataProvider fourLevelVersionsProvider
+ */
+ public function testGivenFourLevels_levelCountNormalizationDoesNothing( $version ) {
+ $normalizer = new ComposerVersionNormalizer();
+
+ $this->assertEquals(
+ $version,
+ $normalizer->normalizeLevelCount( $version )
+ );
+ }
+
+ public function fourLevelVersionsProvider() {
+ return [
+ [ '1.22.0.0' ],
+ [ '1.19.2.4' ],
+ [ '1.19.2.0' ],
+ [ '1.9.0.1' ],
+ [ '123.321.456.654' ],
+ [ '123.321.456.654RC4' ],
+ [ '123.321.456.654-RC4' ],
+ ];
+ }
+
+ /**
+ * @dataProvider levelNormalizationProvider
+ */
+ public function testGivenFewerLevels_levelCountNormalizationEnsuresFourLevels(
+ $expected, $version
+ ) {
+ $normalizer = new ComposerVersionNormalizer();
+
+ $this->assertEquals(
+ $expected,
+ $normalizer->normalizeLevelCount( $version )
+ );
+ }
+
+ public function levelNormalizationProvider() {
+ return [
+ [ '1.22.0.0', '1.22' ],
+ [ '1.22.0.0', '1.22.0' ],
+ [ '1.19.2.0', '1.19.2' ],
+ [ '12345.0.0.0', '12345' ],
+ [ '12345.0.0.0-RC4', '12345-RC4' ],
+ [ '12345.0.0.0-alpha', '12345-alpha' ],
+ ];
+ }
+
+ /**
+ * @dataProvider invalidVersionProvider
+ */
+ public function testGivenInvalidVersion_normalizeSuffixReturnsAsIs( $invalidVersion ) {
+ $this->assertRemainsUnchanged( $invalidVersion );
+ }
+
+ public function invalidVersionProvider() {
+ return [
+ [ '1.221-a' ],
+ [ '1.221-' ],
+ [ '1.22rc4a' ],
+ [ 'a1.22rc' ],
+ [ '.1.22rc' ],
+ [ 'a' ],
+ [ 'alpha42' ],
+ ];
+ }
+}
--- /dev/null
+<?php
+
+use Wikimedia\TestingAccessWrapper;
+
+class EtcdConfigTest extends MediaWikiUnitTestCase {
+
+ private function createConfigMock( array $options = [] ) {
+ return $this->getMockBuilder( EtcdConfig::class )
+ ->setConstructorArgs( [ $options + [
+ 'host' => 'etcd-tcp.example.net',
+ 'directory' => '/',
+ 'timeout' => 0.1,
+ ] ] )
+ ->setMethods( [ 'fetchAllFromEtcd' ] )
+ ->getMock();
+ }
+
+ private static function createEtcdResponse( array $response ) {
+ $baseResponse = [
+ 'config' => null,
+ 'error' => null,
+ 'retry' => false,
+ 'modifiedIndex' => 0,
+ ];
+ return array_merge( $baseResponse, $response );
+ }
+
+ private function createSimpleConfigMock( array $config, $index = 0 ) {
+ $mock = $this->createConfigMock();
+ $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
+ ->willReturn( self::createEtcdResponse( [
+ 'config' => $config,
+ 'modifiedIndex' => $index,
+ ] ) );
+ return $mock;
+ }
+
+ /**
+ * @covers EtcdConfig::has
+ */
+ public function testHasKnown() {
+ $config = $this->createSimpleConfigMock( [
+ 'known' => 'value'
+ ] );
+ $this->assertSame( true, $config->has( 'known' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::__construct
+ * @covers EtcdConfig::get
+ */
+ public function testGetKnown() {
+ $config = $this->createSimpleConfigMock( [
+ 'known' => 'value'
+ ] );
+ $this->assertSame( 'value', $config->get( 'known' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::has
+ */
+ public function testHasUnknown() {
+ $config = $this->createSimpleConfigMock( [
+ 'known' => 'value'
+ ] );
+ $this->assertSame( false, $config->has( 'unknown' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::get
+ */
+ public function testGetUnknown() {
+ $config = $this->createSimpleConfigMock( [
+ 'known' => 'value'
+ ] );
+ $this->setExpectedException( ConfigException::class );
+ $config->get( 'unknown' );
+ }
+
+ /**
+ * @covers EtcdConfig::getModifiedIndex
+ */
+ public function testGetModifiedIndex() {
+ $config = $this->createSimpleConfigMock(
+ [ 'some' => 'value' ],
+ 123
+ );
+ $this->assertSame( 123, $config->getModifiedIndex() );
+ }
+
+ /**
+ * @covers EtcdConfig::__construct
+ */
+ public function testConstructCacheObj() {
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get' ] )
+ ->getMock();
+ $cache->expects( $this->once() )->method( 'get' )
+ ->willReturn( [
+ 'config' => [ 'known' => 'from-cache' ],
+ 'expires' => INF,
+ 'modifiedIndex' => 123
+ ] );
+ $config = $this->createConfigMock( [ 'cache' => $cache ] );
+
+ $this->assertSame( 'from-cache', $config->get( 'known' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::__construct
+ */
+ public function testConstructCacheSpec() {
+ $config = $this->createConfigMock( [ 'cache' => [
+ 'class' => HashBagOStuff::class
+ ] ] );
+ $config->expects( $this->once() )->method( 'fetchAllFromEtcd' )
+ ->willReturn( self::createEtcdResponse(
+ [ 'config' => [ 'known' => 'from-fetch' ], ] ) );
+
+ $this->assertSame( 'from-fetch', $config->get( 'known' ) );
+ }
+
+ /**
+ * Test matrix
+ *
+ * - [x] Cache miss
+ * Result: Fetched value
+ * > cache miss | gets lock | backend succeeds
+ *
+ * - [x] Cache miss with backend error
+ * Result: ConfigException
+ * > cache miss | gets lock | backend error (no retry)
+ *
+ * - [x] Cache hit after retry
+ * Result: Cached value (populated by process holding lock)
+ * > cache miss | no lock | cache retry
+ *
+ * - [x] Cache hit
+ * Result: Cached value
+ * > cache hit
+ *
+ * - [x] Process cache hit
+ * Result: Cached value
+ * > process cache hit
+ *
+ * - [x] Cache expired
+ * Result: Fetched value
+ * > cache expired | gets lock | backend succeeds
+ *
+ * - [x] Cache expired with backend failure
+ * Result: Cached value (stale)
+ * > cache expired | gets lock | backend fails (allows retry)
+ *
+ * - [x] Cache expired and no lock
+ * Result: Cached value (stale)
+ * > cache expired | no lock
+ *
+ * Other notable scenarios:
+ *
+ * - [ ] Cache miss with backend retry
+ * Result: Fetched value
+ * > cache expired | gets lock | backend failure (allows retry)
+ */
+
+ /**
+ * @covers EtcdConfig::load
+ */
+ public function testLoadCacheMiss() {
+ // Create cache mock
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get', 'lock' ] )
+ ->getMock();
+ // .. misses cache
+ $cache->expects( $this->once() )->method( 'get' )
+ ->willReturn( false );
+ // .. gets lock
+ $cache->expects( $this->once() )->method( 'lock' )
+ ->willReturn( true );
+
+ // Create config mock
+ $mock = $this->createConfigMock( [
+ 'cache' => $cache,
+ ] );
+ $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
+ ->willReturn(
+ self::createEtcdResponse( [ 'config' => [ 'known' => 'from-fetch' ] ] ) );
+
+ $this->assertSame( 'from-fetch', $mock->get( 'known' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::load
+ */
+ public function testLoadCacheMissBackendError() {
+ // Create cache mock
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get', 'lock' ] )
+ ->getMock();
+ // .. misses cache
+ $cache->expects( $this->once() )->method( 'get' )
+ ->willReturn( false );
+ // .. gets lock
+ $cache->expects( $this->once() )->method( 'lock' )
+ ->willReturn( true );
+
+ // Create config mock
+ $mock = $this->createConfigMock( [
+ 'cache' => $cache,
+ ] );
+ $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
+ ->willReturn( self::createEtcdResponse( [ 'error' => 'Fake error', ] ) );
+
+ $this->setExpectedException( ConfigException::class );
+ $mock->get( 'key' );
+ }
+
+ /**
+ * @covers EtcdConfig::load
+ */
+ public function testLoadCacheMissWithoutLock() {
+ // Create cache mock
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get', 'lock' ] )
+ ->getMock();
+ $cache->expects( $this->exactly( 2 ) )->method( 'get' )
+ ->will( $this->onConsecutiveCalls(
+ // .. misses cache first time
+ false,
+ // .. hits cache on retry
+ [
+ 'config' => [ 'known' => 'from-cache' ],
+ 'expires' => INF,
+ 'modifiedIndex' => 123
+ ]
+ ) );
+ // .. misses lock
+ $cache->expects( $this->once() )->method( 'lock' )
+ ->willReturn( false );
+
+ // Create config mock
+ $mock = $this->createConfigMock( [
+ 'cache' => $cache,
+ ] );
+ $mock->expects( $this->never() )->method( 'fetchAllFromEtcd' );
+
+ $this->assertSame( 'from-cache', $mock->get( 'known' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::load
+ */
+ public function testLoadCacheHit() {
+ // Create cache mock
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get', 'lock' ] )
+ ->getMock();
+ $cache->expects( $this->once() )->method( 'get' )
+ // .. hits cache
+ ->willReturn( [
+ 'config' => [ 'known' => 'from-cache' ],
+ 'expires' => INF,
+ 'modifiedIndex' => 0,
+ ] );
+ $cache->expects( $this->never() )->method( 'lock' );
+
+ // Create config mock
+ $mock = $this->createConfigMock( [
+ 'cache' => $cache,
+ ] );
+ $mock->expects( $this->never() )->method( 'fetchAllFromEtcd' );
+
+ $this->assertSame( 'from-cache', $mock->get( 'known' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::load
+ */
+ public function testLoadProcessCacheHit() {
+ // Create cache mock
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get', 'lock' ] )
+ ->getMock();
+ $cache->expects( $this->once() )->method( 'get' )
+ // .. hits cache
+ ->willReturn( [
+ 'config' => [ 'known' => 'from-cache' ],
+ 'expires' => INF,
+ 'modifiedIndex' => 0,
+ ] );
+ $cache->expects( $this->never() )->method( 'lock' );
+
+ // Create config mock
+ $mock = $this->createConfigMock( [
+ 'cache' => $cache,
+ ] );
+ $mock->expects( $this->never() )->method( 'fetchAllFromEtcd' );
+
+ $this->assertSame( 'from-cache', $mock->get( 'known' ), 'Cache hit' );
+ $this->assertSame( 'from-cache', $mock->get( 'known' ), 'Process cache hit' );
+ }
+
+ /**
+ * @covers EtcdConfig::load
+ */
+ public function testLoadCacheExpiredLockFetchSucceeded() {
+ // Create cache mock
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get', 'lock' ] )
+ ->getMock();
+ $cache->expects( $this->once() )->method( 'get' )->willReturn(
+ // .. stale cache
+ [
+ 'config' => [ 'known' => 'from-cache-expired' ],
+ 'expires' => -INF,
+ 'modifiedIndex' => 0,
+ ]
+ );
+ // .. gets lock
+ $cache->expects( $this->once() )->method( 'lock' )
+ ->willReturn( true );
+
+ // Create config mock
+ $mock = $this->createConfigMock( [
+ 'cache' => $cache,
+ ] );
+ $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
+ ->willReturn( self::createEtcdResponse( [ 'config' => [ 'known' => 'from-fetch' ] ] ) );
+
+ $this->assertSame( 'from-fetch', $mock->get( 'known' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::load
+ */
+ public function testLoadCacheExpiredLockFetchFails() {
+ // Create cache mock
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get', 'lock' ] )
+ ->getMock();
+ $cache->expects( $this->once() )->method( 'get' )->willReturn(
+ // .. stale cache
+ [
+ 'config' => [ 'known' => 'from-cache-expired' ],
+ 'expires' => -INF,
+ 'modifiedIndex' => 0,
+ ]
+ );
+ // .. gets lock
+ $cache->expects( $this->once() )->method( 'lock' )
+ ->willReturn( true );
+
+ // Create config mock
+ $mock = $this->createConfigMock( [
+ 'cache' => $cache,
+ ] );
+ $mock->expects( $this->once() )->method( 'fetchAllFromEtcd' )
+ ->willReturn( self::createEtcdResponse( [ 'error' => 'Fake failure', 'retry' => true ] ) );
+
+ $this->assertSame( 'from-cache-expired', $mock->get( 'known' ) );
+ }
+
+ /**
+ * @covers EtcdConfig::load
+ */
+ public function testLoadCacheExpiredNoLock() {
+ // Create cache mock
+ $cache = $this->getMockBuilder( HashBagOStuff::class )
+ ->setMethods( [ 'get', 'lock' ] )
+ ->getMock();
+ $cache->expects( $this->once() )->method( 'get' )
+ // .. hits cache (expired value)
+ ->willReturn( [
+ 'config' => [ 'known' => 'from-cache-expired' ],
+ 'expires' => -INF,
+ 'modifiedIndex' => 0,
+ ] );
+ // .. misses lock
+ $cache->expects( $this->once() )->method( 'lock' )
+ ->willReturn( false );
+
+ // Create config mock
+ $mock = $this->createConfigMock( [
+ 'cache' => $cache,
+ ] );
+ $mock->expects( $this->never() )->method( 'fetchAllFromEtcd' );
+
+ $this->assertSame( 'from-cache-expired', $mock->get( 'known' ) );
+ }
+
+ public static function provideFetchFromServer() {
+ return [
+ '200 OK - Success' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [],
+ 'body' => json_encode( [ 'node' => [ 'nodes' => [
+ [
+ 'key' => '/example/foo',
+ 'value' => json_encode( [ 'val' => true ] ),
+ 'modifiedIndex' => 123
+ ],
+ ] ] ] ),
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'config' => [ 'foo' => true ], // data
+ 'modifiedIndex' => 123
+ ] ),
+ ],
+ '200 OK - Empty dir' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [],
+ 'body' => json_encode( [ 'node' => [ 'nodes' => [
+ [
+ 'key' => '/example/foo',
+ 'value' => json_encode( [ 'val' => true ] ),
+ 'modifiedIndex' => 123
+ ],
+ [
+ 'key' => '/example/sub',
+ 'dir' => true,
+ 'modifiedIndex' => 234,
+ 'nodes' => [],
+ ],
+ [
+ 'key' => '/example/bar',
+ 'value' => json_encode( [ 'val' => false ] ),
+ 'modifiedIndex' => 125
+ ],
+ ] ] ] ),
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'config' => [ 'foo' => true, 'bar' => false ], // data
+ 'modifiedIndex' => 125 // largest modified index
+ ] ),
+ ],
+ '200 OK - Recursive' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [],
+ 'body' => json_encode( [ 'node' => [ 'nodes' => [
+ [
+ 'key' => '/example/a',
+ 'dir' => true,
+ 'modifiedIndex' => 124,
+ 'nodes' => [
+ [
+ 'key' => 'b',
+ 'value' => json_encode( [ 'val' => true ] ),
+ 'modifiedIndex' => 123,
+
+ ],
+ [
+ 'key' => 'c',
+ 'value' => json_encode( [ 'val' => false ] ),
+ 'modifiedIndex' => 123,
+ ],
+ ],
+ ],
+ ] ] ] ),
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'config' => [ 'a/b' => true, 'a/c' => false ], // data
+ 'modifiedIndex' => 123 // largest modified index
+ ] ),
+ ],
+ '200 OK - Missing nodes at second level' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [],
+ 'body' => json_encode( [ 'node' => [ 'nodes' => [
+ [
+ 'key' => '/example/a',
+ 'dir' => true,
+ 'modifiedIndex' => 0,
+ ],
+ ] ] ] ),
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'error' => "Unexpected JSON response in dir 'a'; missing 'nodes' list.",
+ ] ),
+ ],
+ '200 OK - Directory with non-array "nodes" key' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [],
+ 'body' => json_encode( [ 'node' => [ 'nodes' => [
+ [
+ 'key' => '/example/a',
+ 'dir' => true,
+ 'nodes' => 'not an array'
+ ],
+ ] ] ] ),
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'error' => "Unexpected JSON response in dir 'a'; 'nodes' is not an array.",
+ ] ),
+ ],
+ '200 OK - Correctly encoded garbage response' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [],
+ 'body' => json_encode( [ 'foo' => 'bar' ] ),
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'error' => "Unexpected JSON response: Missing or invalid node at top level.",
+ ] ),
+ ],
+ '200 OK - Bad value' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [],
+ 'body' => json_encode( [ 'node' => [ 'nodes' => [
+ [
+ 'key' => '/example/foo',
+ 'value' => ';"broken{value',
+ 'modifiedIndex' => 123,
+ ]
+ ] ] ] ),
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'error' => "Failed to parse value for 'foo'.",
+ ] ),
+ ],
+ '200 OK - Empty node list' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [],
+ 'body' => '{"node":{"nodes":[], "modifiedIndex": 12 }}',
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'config' => [], // data
+ ] ),
+ ],
+ '200 OK - Invalid JSON' => [
+ 'http' => [
+ 'code' => 200,
+ 'reason' => 'OK',
+ 'headers' => [ 'content-length' => 0 ],
+ 'body' => '',
+ 'error' => '(curl error: no status set)',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'error' => "Error unserializing JSON response.",
+ ] ),
+ ],
+ '404 Not Found' => [
+ 'http' => [
+ 'code' => 404,
+ 'reason' => 'Not Found',
+ 'headers' => [ 'content-length' => 0 ],
+ 'body' => '',
+ 'error' => '',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'error' => 'HTTP 404 (Not Found)',
+ ] ),
+ ],
+ '400 Bad Request - custom error' => [
+ 'http' => [
+ 'code' => 400,
+ 'reason' => 'Bad Request',
+ 'headers' => [ 'content-length' => 0 ],
+ 'body' => '',
+ 'error' => 'No good reason',
+ ],
+ 'expect' => self::createEtcdResponse( [
+ 'error' => 'No good reason',
+ 'retry' => true, // retry
+ ] ),
+ ],
+ ];
+ }
+
+ /**
+ * @covers EtcdConfig::fetchAllFromEtcdServer
+ * @covers EtcdConfig::unserialize
+ * @covers EtcdConfig::parseResponse
+ * @covers EtcdConfig::parseDirectory
+ * @covers EtcdConfigParseError
+ * @dataProvider provideFetchFromServer
+ */
+ public function testFetchFromServer( array $httpResponse, array $expected ) {
+ $http = $this->getMockBuilder( MultiHttpClient::class )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $http->expects( $this->once() )->method( 'run' )
+ ->willReturn( array_values( $httpResponse ) );
+
+ $conf = $this->getMockBuilder( EtcdConfig::class )
+ ->disableOriginalConstructor()
+ ->getMock();
+ // Access for protected member and method
+ $conf = TestingAccessWrapper::newFromObject( $conf );
+ $conf->http = $http;
+
+ $this->assertSame(
+ $expected,
+ $conf->fetchAllFromEtcdServer( 'etcd-tcp.example.net' )
+ );
+ }
+}
--- /dev/null
+<?php
+
+class DatabaseOracleTest extends MediaWikiUnitTestCase {
+
+ /**
+ * @return PHPUnit_Framework_MockObject_MockObject|DatabaseOracle
+ */
+ private function getMockDb() {
+ return $this->getMockBuilder( DatabaseOracle::class )
+ ->disableOriginalConstructor()
+ ->setMethods( null )
+ ->getMock();
+ }
+
+ public function provideBuildSubstring() {
+ yield [ 'someField', 1, 2, 'SUBSTR(someField,1,2)' ];
+ yield [ 'someField', 1, null, 'SUBSTR(someField,1)' ];
+ }
+
+ /**
+ * @covers DatabaseOracle::buildSubstring
+ * @dataProvider provideBuildSubstring
+ */
+ public function testBuildSubstring( $input, $start, $length, $expected ) {
+ $mockDb = $this->getMockDb();
+ $output = $mockDb->buildSubstring( $input, $start, $length );
+ $this->assertSame( $expected, $output );
+ }
+
+ public function provideBuildSubstring_invalidParams() {
+ yield [ -1, 1 ];
+ yield [ 1, -1 ];
+ yield [ 1, 'foo' ];
+ yield [ 'foo', 1 ];
+ yield [ null, 1 ];
+ yield [ 0, 1 ];
+ }
+
+ /**
+ * @covers DatabaseOracle::buildSubstring
+ * @dataProvider provideBuildSubstring_invalidParams
+ */
+ public function testBuildSubstring_invalidParams( $start, $length ) {
+ $mockDb = $this->getMockDb();
+ $this->setExpectedException( InvalidArgumentException::class );
+ $mockDb->buildSubstring( 'foo', $start, $length );
+ }
+
+}
--- /dev/null
+<?php
+
+namespace MediaWiki\Logger\Monolog;
+
+class LogstashFormatterTest extends \MediaWikiUnitTestCase {
+ /**
+ * @dataProvider provideV1
+ * @covers MediaWiki\Logger\Monolog\LogstashFormatter::formatV1
+ * @param array $record The input record.
+ * @param array $expected Associative array of expected keys and their values.
+ * @param array $notExpected List of keys that should not exist.
+ */
+ public function testV1( array $record, array $expected, array $notExpected ) {
+ $formatter = new LogstashFormatter( 'app', 'system', null, null, LogstashFormatter::V1 );
+ $formatted = json_decode( $formatter->format( $record ), true );
+ foreach ( $expected as $key => $value ) {
+ $this->assertArrayHasKey( $key, $formatted );
+ $this->assertSame( $value, $formatted[$key] );
+ }
+ foreach ( $notExpected as $key ) {
+ $this->assertArrayNotHasKey( $key, $formatted );
+ }
+ }
+
+ public function provideV1() {
+ return [
+ [
+ [ 'extra' => [ 'foo' => 1 ], 'context' => [ 'bar' => 2 ] ],
+ [ 'foo' => 1, 'bar' => 2 ],
+ [ 'logstash_formatter_key_conflict' ],
+ ],
+ [
+ [ 'extra' => [ 'url' => 1 ], 'context' => [ 'url' => 2 ] ],
+ [ 'url' => 1, 'c_url' => 2, 'logstash_formatter_key_conflict' => [ 'url' ] ],
+ [],
+ ],
+ [
+ [ 'channel' => 'x', 'context' => [ 'channel' => 'y' ] ],
+ [ 'channel' => 'x', 'c_channel' => 'y',
+ 'logstash_formatter_key_conflict' => [ 'channel' ] ],
+ [],
+ ],
+ ];
+ }
+
+ /**
+ * @covers MediaWiki\Logger\Monolog\LogstashFormatter::formatV1
+ */
+ public function testV1WithPrefix() {
+ $formatter = new LogstashFormatter( 'app', 'system', null, 'ctx_', LogstashFormatter::V1 );
+ $record = [ 'extra' => [ 'url' => 1 ], 'context' => [ 'url' => 2 ] ];
+ $formatted = json_decode( $formatter->format( $record ), true );
+ $this->assertArrayHasKey( 'url', $formatted );
+ $this->assertSame( 1, $formatted['url'] );
+ $this->assertArrayHasKey( 'ctx_url', $formatted );
+ $this->assertSame( 2, $formatted['ctx_url'] );
+ $this->assertArrayNotHasKey( 'c_url', $formatted );
+ }
+}
--- /dev/null
+<?php
+
+/**
+ * @covers MWCallableUpdate
+ */
+class MWCallableUpdateTest extends MediaWikiUnitTestCase {
+
+ public function testDoUpdate() {
+ $ran = 0;
+ $update = new MWCallableUpdate( function () use ( &$ran ) {
+ $ran++;
+ } );
+ $this->assertSame( 0, $ran );
+ $update->doUpdate();
+ $this->assertSame( 1, $ran );
+ }
+
+ public function testCancel() {
+ // Prepare update and DB
+ $db = new DatabaseTestHelper( __METHOD__ );
+ $db->begin( __METHOD__ );
+ $ran = 0;
+ $update = new MWCallableUpdate( function () use ( &$ran ) {
+ $ran++;
+ }, __METHOD__, $db );
+
+ // Emulate rollback
+ $db->rollback( __METHOD__ );
+
+ $update->doUpdate();
+
+ // Ensure it was cancelled
+ $this->assertSame( 0, $ran );
+ }
+
+ public function testCancelSome() {
+ // Prepare update and DB
+ $db1 = new DatabaseTestHelper( __METHOD__ );
+ $db1->begin( __METHOD__ );
+ $db2 = new DatabaseTestHelper( __METHOD__ );
+ $db2->begin( __METHOD__ );
+ $ran = 0;
+ $update = new MWCallableUpdate( function () use ( &$ran ) {
+ $ran++;
+ }, __METHOD__, [ $db1, $db2 ] );
+
+ // Emulate rollback
+ $db1->rollback( __METHOD__ );
+
+ $update->doUpdate();
+
+ // Prevents: "Notice: DB transaction writes or callbacks still pending"
+ $db2->rollback( __METHOD__ );
+
+ // Ensure it was cancelled
+ $this->assertSame( 0, $ran );
+ }
+
+ public function testCancelAll() {
+ // Prepare update and DB
+ $db1 = new DatabaseTestHelper( __METHOD__ );
+ $db1->begin( __METHOD__ );
+ $db2 = new DatabaseTestHelper( __METHOD__ );
+ $db2->begin( __METHOD__ );
+ $ran = 0;
+ $update = new MWCallableUpdate( function () use ( &$ran ) {
+ $ran++;
+ }, __METHOD__, [ $db1, $db2 ] );
+
+ // Emulate rollbacks
+ $db1->rollback( __METHOD__ );
+ $db2->rollback( __METHOD__ );
+
+ $update->doUpdate();
+
+ // Ensure it was cancelled
+ $this->assertSame( 0, $ran );
+ }
+
+}
--- /dev/null
+<?php
+
+/**
+ * @covers TransactionRoundDefiningUpdate
+ */
+class TransactionRoundDefiningUpdateTest extends MediaWikiUnitTestCase {
+
+ public function testDoUpdate() {
+ $ran = 0;
+ $update = new TransactionRoundDefiningUpdate( function () use ( &$ran ) {
+ $ran++;
+ } );
+ $this->assertSame( 0, $ran );
+ $update->doUpdate();
+ $this->assertSame( 1, $ran );
+ }
+}
--- /dev/null
+<?php
+
+use Wikimedia\TestingAccessWrapper;
+
+/**
+ * @group BagOStuff
+ */
+class RedisBagOStuffTest extends MediaWikiUnitTestCase {
+
+ /** @var RedisBagOStuff */
+ private $cache;
+
+ protected function setUp() {
+ parent::setUp();
+ $cache = $this->getMockBuilder( RedisBagOStuff::class )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->cache = TestingAccessWrapper::newFromObject( $cache );
+ }
+
+ /**
+ * @covers RedisBagOStuff::unserialize
+ * @dataProvider unserializeProvider
+ */
+ public function testUnserialize( $expected, $input, $message ) {
+ $actual = $this->cache->unserialize( $input );
+ $this->assertSame( $expected, $actual, $message );
+ }
+
+ public function unserializeProvider() {
+ return [
+ [
+ -1,
+ '-1',
+ 'String representation of \'-1\'',
+ ],
+ [
+ 0,
+ '0',
+ 'String representation of \'0\'',
+ ],
+ [
+ 1,
+ '1',
+ 'String representation of \'1\'',
+ ],
+ [
+ -1.0,
+ 'd:-1;',
+ 'Serialized negative double',
+ ],
+ [
+ 'foo',
+ 's:3:"foo";',
+ 'Serialized string',
+ ]
+ ];
+ }
+
+ /**
+ * @covers RedisBagOStuff::serialize
+ * @dataProvider serializeProvider
+ */
+ public function testSerialize( $expected, $input, $message ) {
+ $actual = $this->cache->serialize( $input );
+ $this->assertSame( $expected, $actual, $message );
+ }
+
+ public function serializeProvider() {
+ return [
+ [
+ -1,
+ -1,
+ '-1 as integer',
+ ],
+ [
+ 0,
+ 0,
+ '0 as integer',
+ ],
+ [
+ 1,
+ 1,
+ '1 as integer',
+ ],
+ [
+ 'd:-1;',
+ -1.0,
+ 'Negative double',
+ ],
+ [
+ 's:3:"2.1";',
+ '2.1',
+ 'Decimal string',
+ ],
+ [
+ 's:1:"1";',
+ '1',
+ 'String representation of 1',
+ ],
+ [
+ 's:3:"foo";',
+ 'foo',
+ 'String',
+ ],
+ ];
+ }
+}
--- /dev/null
+<?php
+
+/**
+ * @covers VersionChecker
+ */
+class VersionCheckerTest extends MediaWikiUnitTestCase {
+
+ /**
+ * @dataProvider provideMediaWikiCheck
+ */
+ public function testMediaWikiCheck( $coreVersion, $constraint, $expected ) {
+ $checker = new VersionChecker( $coreVersion, '7.0.0', [] );
+ $this->assertEquals( $expected, !(bool)$checker->checkArray( [
+ 'FakeExtension' => [
+ 'MediaWiki' => $constraint,
+ ],
+ ] ) );
+ }
+
+ public static function provideMediaWikiCheck() {
+ return [
+ // [ $wgVersion, constraint, expected ]
+ [ '1.25alpha', '>= 1.26', false ],
+ [ '1.25.0', '>= 1.26', false ],
+ [ '1.26alpha', '>= 1.26', true ],
+ [ '1.26alpha', '>= 1.26.0', true ],
+ [ '1.26alpha', '>= 1.26.0-stable', false ],
+ [ '1.26.0', '>= 1.26.0-stable', true ],
+ [ '1.26.1', '>= 1.26.0-stable', true ],
+ [ '1.27.1', '>= 1.26.0-stable', true ],
+ [ '1.26alpha', '>= 1.26.1', false ],
+ [ '1.26alpha', '>= 1.26alpha', true ],
+ [ '1.26alpha', '>= 1.25', true ],
+ [ '1.26.0-alpha.14', '>= 1.26.0-alpha.15', false ],
+ [ '1.26.0-alpha.14', '>= 1.26.0-alpha.10', true ],
+ [ '1.26.1', '>= 1.26.2, <=1.26.0', false ],
+ [ '1.26.1', '^1.26.2', false ],
+ // Accept anything for un-parsable version strings
+ [ '1.26mwf14', '== 1.25alpha', true ],
+ [ 'totallyinvalid', '== 1.0', true ],
+ ];
+ }
+
+ /**
+ * @dataProvider providePhpValidCheck
+ */
+ public function testPhpValidCheck( $phpVersion, $constraint, $expected ) {
+ $checker = new VersionChecker( '1.0.0', $phpVersion, [] );
+ $this->assertEquals( $expected, !(bool)$checker->checkArray( [
+ 'FakeExtension' => [
+ 'platform' => [
+ 'php' => $constraint,
+ ],
+ ],
+ ] ) );
+ }
+
+ public static function providePhpValidCheck() {
+ return [
+ // [ phpVersion, constraint, expected ]
+ [ '7.0.23', '>= 7.0.0', true ],
+ [ '7.0.23', '^7.1.0', false ],
+ [ '7.0.23', '7.0.23', true ],
+ ];
+ }
+
+ /**
+ * @expectedException UnexpectedValueException
+ */
+ public function testPhpInvalidConstraint() {
+ $checker = new VersionChecker( '1.0.0', '7.0.0', [] );
+ $checker->checkArray( [
+ 'FakeExtension' => [
+ 'platform' => [
+ 'php' => 'totallyinvalid',
+ ],
+ ],
+ ] );
+ }
+
+ /**
+ * @dataProvider providePhpInvalidVersion
+ * @expectedException UnexpectedValueException
+ */
+ public function testPhpInvalidVersion( $phpVersion ) {
+ $checker = new VersionChecker( '1.0.0', $phpVersion, [] );
+ }
+
+ public static function providePhpInvalidVersion() {
+ return [
+ // [ phpVersion ]
+ [ '7.abc' ],
+ [ '5.a.x' ],
+ ];
+ }
+
+ /**
+ * @dataProvider provideType
+ */
+ public function testType( $given, $expected ) {
+ $checker = new VersionChecker(
+ '1.0.0',
+ '7.0.0',
+ [ 'phpLoadedExtension' ],
+ [
+ 'presentAbility' => true,
+ 'presentAbilityWithMessage' => true,
+ 'missingAbility' => false,
+ 'missingAbilityWithMessage' => false,
+ ],
+ [
+ 'presentAbilityWithMessage' => 'Present.',
+ 'missingAbilityWithMessage' => 'Missing.',
+ ]
+ );
+ $checker->setLoadedExtensionsAndSkins( [
+ 'FakeDependency' => [
+ 'version' => '1.0.0',
+ ],
+ 'NoVersionGiven' => [],
+ ] );
+ $this->assertEquals( $expected, $checker->checkArray( [
+ 'FakeExtension' => $given,
+ ] ) );
+ }
+
+ public static function provideType() {
+ return [
+ // valid type
+ [
+ [
+ 'extensions' => [
+ 'FakeDependency' => '1.0.0',
+ ],
+ ],
+ [],
+ ],
+ [
+ [
+ 'MediaWiki' => '1.0.0',
+ ],
+ [],
+ ],
+ [
+ [
+ 'extensions' => [
+ 'NoVersionGiven' => '*',
+ ],
+ ],
+ [],
+ ],
+ [
+ [
+ 'extensions' => [
+ 'NoVersionGiven' => '1.0',
+ ],
+ ],
+ [
+ [
+ 'incompatible' => 'FakeExtension',
+ 'type' => 'incompatible-extensions',
+ 'msg' => 'NoVersionGiven does not expose its version, but FakeExtension requires: 1.0.',
+ ],
+ ],
+ ],
+ [
+ [
+ 'extensions' => [
+ 'Missing' => '*',
+ ],
+ ],
+ [
+ [
+ 'missing' => 'Missing',
+ 'type' => 'missing-extensions',
+ 'msg' => 'FakeExtension requires Missing to be installed.',
+ ],
+ ],
+ ],
+ [
+ [
+ 'extensions' => [
+ 'FakeDependency' => '2.0.0',
+ ],
+ ],
+ [
+ [
+ 'incompatible' => 'FakeExtension',
+ 'type' => 'incompatible-extensions',
+ // phpcs:ignore Generic.Files.LineLength.TooLong
+ 'msg' => 'FakeExtension is not compatible with the current installed version of FakeDependency (1.0.0), it requires: 2.0.0.',
+ ],
+ ],
+ ],
+ [
+ [
+ 'skins' => [
+ 'FakeSkin' => '*',
+ ],
+ ],
+ [
+ [
+ 'missing' => 'FakeSkin',
+ 'type' => 'missing-skins',
+ 'msg' => 'FakeExtension requires FakeSkin to be installed.',
+ ],
+ ],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ext-phpLoadedExtension' => '*',
+ ],
+ ],
+ [],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ext-phpMissingExtension' => '*',
+ ],
+ ],
+ [
+ [
+ 'missing' => 'phpMissingExtension',
+ 'type' => 'missing-phpExtension',
+ // phpcs:ignore Generic.Files.LineLength.TooLong
+ 'msg' => 'FakeExtension requires phpMissingExtension PHP extension to be installed.',
+ ],
+ ],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ability-presentAbility' => true,
+ ],
+ ],
+ [],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ability-presentAbilityWithMessage' => true,
+ ],
+ ],
+ [],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ability-presentAbility' => false,
+ ],
+ ],
+ [],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ability-presentAbilityWithMessage' => false,
+ ],
+ ],
+ [],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ability-missingAbility' => true,
+ ],
+ ],
+ [
+ [
+ 'missing' => 'missingAbility',
+ 'type' => 'missing-ability',
+ 'msg' => 'FakeExtension requires "missingAbility" ability',
+ ],
+ ],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ability-missingAbilityWithMessage' => true,
+ ],
+ ],
+ [
+ [
+ 'missing' => 'missingAbilityWithMessage',
+ 'type' => 'missing-ability',
+ // phpcs:ignore Generic.Files.LineLength.TooLong
+ 'msg' => 'FakeExtension requires "missingAbilityWithMessage" ability: Missing.',
+ ],
+ ],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ability-missingAbility' => false,
+ ],
+ ],
+ [],
+ ],
+ [
+ [
+ 'platform' => [
+ 'ability-missingAbilityWithMessage' => false,
+ ],
+ ],
+ [],
+ ],
+ ];
+ }
+
+ /**
+ * Check, if a non-parsable version constraint does not throw an exception or
+ * returns any error message.
+ */
+ public function testInvalidConstraint() {
+ $checker = new VersionChecker( '1.0.0', '7.0.0', [] );
+ $checker->setLoadedExtensionsAndSkins( [
+ 'FakeDependency' => [
+ 'version' => 'not really valid',
+ ],
+ ] );
+ $this->assertEquals( [
+ [
+ 'type' => 'invalid-version',
+ 'msg' => "FakeDependency does not have a valid version string.",
+ ],
+ ], $checker->checkArray( [
+ 'FakeExtension' => [
+ 'extensions' => [
+ 'FakeDependency' => '1.24.3',
+ ],
+ ],
+ ] ) );
+
+ $checker = new VersionChecker( '1.0.0', '7.0.0', [] );
+ $checker->setLoadedExtensionsAndSkins( [
+ 'FakeDependency' => [
+ 'version' => '1.24.3',
+ ],
+ ] );
+
+ $this->setExpectedException( UnexpectedValueException::class );
+ $checker->checkArray( [
+ 'FakeExtension' => [
+ 'FakeDependency' => 'not really valid',
+ ],
+ ] );
+ }
+
+ public function provideInvalidDependency() {
+ return [
+ [
+ [
+ 'FakeExtension' => [
+ 'platform' => [
+ 'undefinedPlatformDependency' => '*',
+ ],
+ ],
+ ],
+ 'undefinedPlatformDependency',
+ ],
+ [
+ [
+ 'FakeExtension' => [
+ 'platform' => [
+ 'phpLoadedExtension' => '*',
+ ],
+ ],
+ ],
+ 'phpLoadedExtension',
+ ],
+ [
+ [
+ 'FakeExtension' => [
+ 'platform' => [
+ 'ability-invalidAbility' => true,
+ ],
+ ],
+ ],
+ 'ability-invalidAbility',
+ ],
+ [
+ [
+ 'FakeExtension' => [
+ 'platform' => [
+ 'presentAbility' => true,
+ ],
+ ],
+ ],
+ 'presentAbility',
+ ],
+ [
+ [
+ 'FakeExtension' => [
+ 'undefinedDependencyType' => '*',
+ ],
+ ],
+ 'undefinedDependencyType',
+ ],
+ // T197478
+ [
+ [
+ 'FakeExtension' => [
+ 'skin' => [
+ 'FakeSkin' => '*',
+ ],
+ ],
+ ],
+ 'skin',
+ ],
+ ];
+ }
+
+ /**
+ * @dataProvider provideInvalidDependency
+ */
+ public function testInvalidDependency( $depencency, $type ) {
+ $checker = new VersionChecker(
+ '1.0.0',
+ '7.0.0',
+ [ 'phpLoadedExtension' ],
+ [
+ 'presentAbility' => true,
+ 'missingAbility' => false,
+ ]
+ );
+ $this->setExpectedException(
+ UnexpectedValueException::class,
+ "Dependency type $type unknown in FakeExtension"
+ );
+ $checker->checkArray( $depencency );
+ }
+
+ public function testInvalidPhpExtensionConstraint() {
+ $checker = new VersionChecker( '1.0.0', '7.0.0', [ 'phpLoadedExtension' ] );
+ $this->setExpectedException(
+ UnexpectedValueException::class,
+ 'Version constraints for PHP extensions are not supported in FakeExtension'
+ );
+ $checker->checkArray( [
+ 'FakeExtension' => [
+ 'platform' => [
+ 'ext-phpLoadedExtension' => '1.0.0',
+ ],
+ ],
+ ] );
+ }
+
+ /**
+ * @dataProvider provideInvalidAbilityType
+ */
+ public function testInvalidAbilityType( $value ) {
+ $checker = new VersionChecker( '1.0.0', '7.0.0', [], [ 'presentAbility' => true ] );
+ $this->setExpectedException(
+ UnexpectedValueException::class,
+ 'Only booleans are allowed to to indicate the presence of abilities in FakeExtension'
+ );
+ $checker->checkArray( [
+ 'FakeExtension' => [
+ 'platform' => [
+ 'ability-presentAbility' => $value,
+ ],
+ ],
+ ] );
+ }
+
+ public function provideInvalidAbilityType() {
+ return [
+ [ null ],
+ [ 1 ],
+ [ '1' ],
+ ];
+ }
+
+}
--- /dev/null
+<?php
+
+/**
+ * Test for filter utilities.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+class SearchSuggestionSetTest extends \MediaWikiUnitTestCase {
+ /**
+ * Test that adding a new suggestion at the end
+ * will keep proper score ordering
+ * @covers SearchSuggestionSet::append
+ */
+ public function testAppend() {
+ $set = SearchSuggestionSet::emptySuggestionSet();
+ $this->assertEquals( 0, $set->getSize() );
+ $set->append( new SearchSuggestion( 3 ) );
+ $this->assertEquals( 3, $set->getWorstScore() );
+ $this->assertEquals( 3, $set->getBestScore() );
+
+ $suggestion = new SearchSuggestion( 4 );
+ $set->append( $suggestion );
+ $this->assertEquals( 2, $set->getWorstScore() );
+ $this->assertEquals( 3, $set->getBestScore() );
+ $this->assertEquals( 2, $suggestion->getScore() );
+
+ $suggestion = new SearchSuggestion( 2 );
+ $set->append( $suggestion );
+ $this->assertEquals( 1, $set->getWorstScore() );
+ $this->assertEquals( 3, $set->getBestScore() );
+ $this->assertEquals( 1, $suggestion->getScore() );
+
+ $scores = $set->map( function ( $s ) {
+ return $s->getScore();
+ } );
+ $sorted = $scores;
+ asort( $sorted );
+ $this->assertEquals( $sorted, $scores );
+ }
+
+ /**
+ * Test that adding a new best suggestion will keep proper score
+ * ordering
+ * @covers SearchSuggestionSet::getWorstScore
+ * @covers SearchSuggestionSet::getBestScore
+ * @covers SearchSuggestionSet::prepend
+ */
+ public function testInsertBest() {
+ $set = SearchSuggestionSet::emptySuggestionSet();
+ $this->assertEquals( 0, $set->getSize() );
+ $set->prepend( new SearchSuggestion( 3 ) );
+ $this->assertEquals( 3, $set->getWorstScore() );
+ $this->assertEquals( 3, $set->getBestScore() );
+
+ $suggestion = new SearchSuggestion( 4 );
+ $set->prepend( $suggestion );
+ $this->assertEquals( 3, $set->getWorstScore() );
+ $this->assertEquals( 4, $set->getBestScore() );
+ $this->assertEquals( 4, $suggestion->getScore() );
+
+ $suggestion = new SearchSuggestion( 0 );
+ $set->prepend( $suggestion );
+ $this->assertEquals( 3, $set->getWorstScore() );
+ $this->assertEquals( 5, $set->getBestScore() );
+ $this->assertEquals( 5, $suggestion->getScore() );
+
+ $suggestion = new SearchSuggestion( 2 );
+ $set->prepend( $suggestion );
+ $this->assertEquals( 3, $set->getWorstScore() );
+ $this->assertEquals( 6, $set->getBestScore() );
+ $this->assertEquals( 6, $suggestion->getScore() );
+
+ $scores = $set->map( function ( $s ) {
+ return $s->getScore();
+ } );
+ $sorted = $scores;
+ asort( $sorted );
+ $this->assertEquals( $sorted, $scores );
+ }
+
+ /**
+ * @covers SearchSuggestionSet::shrink
+ */
+ public function testShrink() {
+ $set = SearchSuggestionSet::emptySuggestionSet();
+ for ( $i = 0; $i < 100; $i++ ) {
+ $set->append( new SearchSuggestion( 0 ) );
+ }
+ $set->shrink( 10 );
+ $this->assertEquals( 10, $set->getSize() );
+
+ $set->shrink( 0 );
+ $this->assertEquals( 0, $set->getSize() );
+ }
+
+ // TODO: test for fromTitles
+}
--- /dev/null
+<?php
+
+use MediaWiki\Shell\Command;
+use MediaWiki\Shell\CommandFactory;
+use MediaWiki\Shell\FirejailCommand;
+use Psr\Log\NullLogger;
+use Wikimedia\TestingAccessWrapper;
+
+/**
+ * @group Shell
+ */
+class CommandFactoryTest extends MediaWikiUnitTestCase {
+
+ /**
+ * @covers MediaWiki\Shell\CommandFactory::create
+ */
+ public function testCreate() {
+ $logger = new NullLogger();
+ $cgroup = '/sys/fs/cgroup/memory/mygroup';
+ $limits = [
+ 'filesize' => 1000,
+ 'memory' => 1000,
+ 'time' => 30,
+ 'walltime' => 40,
+ ];
+
+ $factory = new CommandFactory( $limits, $cgroup, false );
+ $factory->setLogger( $logger );
+ $factory->logStderr();
+ $command = $factory->create();
+ $this->assertInstanceOf( Command::class, $command );
+
+ $wrapper = TestingAccessWrapper::newFromObject( $command );
+ $this->assertSame( $logger, $wrapper->logger );
+ $this->assertSame( $cgroup, $wrapper->cgroup );
+ $this->assertSame( $limits, $wrapper->limits );
+ $this->assertTrue( $wrapper->doLogStderr );
+ }
+
+ /**
+ * @covers MediaWiki\Shell\CommandFactory::create
+ */
+ public function testFirejailCreate() {
+ $factory = new CommandFactory( [], false, 'firejail' );
+ $factory->setLogger( new NullLogger() );
+ $this->assertInstanceOf( FirejailCommand::class, $factory->create() );
+ }
+}
--- /dev/null
+<?php
+
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @ingroup Site
+ * @ingroup Test
+ *
+ * @group Site
+ *
+ * @covers SiteExporter
+ *
+ * @author Daniel Kinzler
+ */
+class SiteExporterTest extends MediaWikiUnitTestCase {
+
+ public function testConstructor_InvalidArgument() {
+ $this->setExpectedException( InvalidArgumentException::class );
+
+ new SiteExporter( 'Foo' );
+ }
+
+ public function testExportSites() {
+ $foo = Site::newForType( Site::TYPE_UNKNOWN );
+ $foo->setGlobalId( 'Foo' );
+
+ $acme = Site::newForType( Site::TYPE_UNKNOWN );
+ $acme->setGlobalId( 'acme.com' );
+ $acme->setGroup( 'Test' );
+ $acme->addLocalId( Site::ID_INTERWIKI, 'acme' );
+ $acme->setPath( Site::PATH_LINK, 'http://acme.com/' );
+
+ $tmp = tmpfile();
+ $exporter = new SiteExporter( $tmp );
+
+ $exporter->exportSites( [ $foo, $acme ] );
+
+ fseek( $tmp, 0 );
+ $xml = fread( $tmp, 16 * 1024 );
+
+ $this->assertContains( '<sites ', $xml );
+ $this->assertContains( '<site>', $xml );
+ $this->assertContains( '<globalid>Foo</globalid>', $xml );
+ $this->assertContains( '</site>', $xml );
+ $this->assertContains( '<globalid>acme.com</globalid>', $xml );
+ $this->assertContains( '<group>Test</group>', $xml );
+ $this->assertContains( '<localid type="interwiki">acme</localid>', $xml );
+ $this->assertContains( '<path type="link">http://acme.com/</path>', $xml );
+ $this->assertContains( '</sites>', $xml );
+
+ // NOTE: HHVM (at least on wmf Jenkins) doesn't like file URLs.
+ $xsdFile = __DIR__ . '/../../../../../docs/sitelist-1.0.xsd';
+ $xsdData = file_get_contents( $xsdFile );
+
+ $document = new DOMDocument();
+ $document->loadXML( $xml, LIBXML_NONET );
+ $document->schemaValidateSource( $xsdData );
+ }
+
+ private function newSiteStore( SiteList $sites ) {
+ $store = $this->getMockBuilder( SiteStore::class )->getMock();
+
+ $store->expects( $this->once() )
+ ->method( 'saveSites' )
+ ->will( $this->returnCallback( function ( $moreSites ) use ( $sites ) {
+ foreach ( $moreSites as $site ) {
+ $sites->setSite( $site );
+ }
+ } ) );
+
+ $store->expects( $this->any() )
+ ->method( 'getSites' )
+ ->will( $this->returnValue( new SiteList() ) );
+
+ return $store;
+ }
+
+ public function provideRoundTrip() {
+ $foo = Site::newForType( Site::TYPE_UNKNOWN );
+ $foo->setGlobalId( 'Foo' );
+
+ $acme = Site::newForType( Site::TYPE_UNKNOWN );
+ $acme->setGlobalId( 'acme.com' );
+ $acme->setGroup( 'Test' );
+ $acme->addLocalId( Site::ID_INTERWIKI, 'acme' );
+ $acme->setPath( Site::PATH_LINK, 'http://acme.com/' );
+
+ $dewiki = Site::newForType( Site::TYPE_MEDIAWIKI );
+ $dewiki->setGlobalId( 'dewiki' );
+ $dewiki->setGroup( 'wikipedia' );
+ $dewiki->setForward( true );
+ $dewiki->addLocalId( Site::ID_INTERWIKI, 'wikipedia' );
+ $dewiki->addLocalId( Site::ID_EQUIVALENT, 'de' );
+ $dewiki->setPath( Site::PATH_LINK, 'http://de.wikipedia.org/w/' );
+ $dewiki->setPath( MediaWikiSite::PATH_PAGE, 'http://de.wikipedia.org/wiki/' );
+ $dewiki->setSource( 'meta.wikimedia.org' );
+
+ return [
+ 'empty' => [
+ new SiteList()
+ ],
+
+ 'some' => [
+ new SiteList( [ $foo, $acme, $dewiki ] ),
+ ],
+ ];
+ }
+
+ /**
+ * @dataProvider provideRoundTrip()
+ */
+ public function testRoundTrip( SiteList $sites ) {
+ $tmp = tmpfile();
+ $exporter = new SiteExporter( $tmp );
+
+ $exporter->exportSites( $sites );
+
+ fseek( $tmp, 0 );
+ $xml = fread( $tmp, 16 * 1024 );
+
+ $actualSites = new SiteList();
+ $store = $this->newSiteStore( $actualSites );
+
+ $importer = new SiteImporter( $store );
+ $importer->importFromXML( $xml );
+
+ $this->assertEquals( $sites, $actualSites );
+ }
+
+}
--- /dev/null
+<?php
+
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @ingroup Site
+ * @ingroup Test
+ *
+ * @group Site
+ *
+ * @covers SiteImporter
+ *
+ * @author Daniel Kinzler
+ */
+class SiteImporterTest extends MediaWikiUnitTestCase {
+
+ private function newSiteImporter( array $expectedSites, $errorCount ) {
+ $store = $this->getMockBuilder( SiteStore::class )->getMock();
+
+ $store->expects( $this->once() )
+ ->method( 'saveSites' )
+ ->will( $this->returnCallback( function ( $sites ) use ( $expectedSites ) {
+ $this->assertSitesEqual( $expectedSites, $sites );
+ } ) );
+
+ $store->expects( $this->any() )
+ ->method( 'getSites' )
+ ->will( $this->returnValue( new SiteList() ) );
+
+ $errorHandler = $this->getMockBuilder( Psr\Log\LoggerInterface::class )->getMock();
+ $errorHandler->expects( $this->exactly( $errorCount ) )
+ ->method( 'error' );
+
+ $importer = new SiteImporter( $store );
+ $importer->setExceptionCallback( [ $errorHandler, 'error' ] );
+
+ return $importer;
+ }
+
+ public function assertSitesEqual( $expected, $actual, $message = '' ) {
+ $this->assertEquals(
+ $this->getSerializedSiteList( $expected ),
+ $this->getSerializedSiteList( $actual ),
+ $message
+ );
+ }
+
+ public function provideImportFromXML() {
+ $foo = Site::newForType( Site::TYPE_UNKNOWN );
+ $foo->setGlobalId( 'Foo' );
+
+ $acme = Site::newForType( Site::TYPE_UNKNOWN );
+ $acme->setGlobalId( 'acme.com' );
+ $acme->setGroup( 'Test' );
+ $acme->addLocalId( Site::ID_INTERWIKI, 'acme' );
+ $acme->setPath( Site::PATH_LINK, 'http://acme.com/' );
+
+ $dewiki = Site::newForType( Site::TYPE_MEDIAWIKI );
+ $dewiki->setGlobalId( 'dewiki' );
+ $dewiki->setGroup( 'wikipedia' );
+ $dewiki->setForward( true );
+ $dewiki->addLocalId( Site::ID_INTERWIKI, 'wikipedia' );
+ $dewiki->addLocalId( Site::ID_EQUIVALENT, 'de' );
+ $dewiki->setPath( Site::PATH_LINK, 'http://de.wikipedia.org/w/' );
+ $dewiki->setPath( MediaWikiSite::PATH_PAGE, 'http://de.wikipedia.org/wiki/' );
+ $dewiki->setSource( 'meta.wikimedia.org' );
+
+ return [
+ 'empty' => [
+ '<sites></sites>',
+ [],
+ ],
+ 'no sites' => [
+ '<sites><Foo><globalid>Foo</globalid></Foo><Bar><quux>Bla</quux></Bar></sites>',
+ [],
+ ],
+ 'minimal' => [
+ '<sites>' .
+ '<site><globalid>Foo</globalid></site>' .
+ '</sites>',
+ [ $foo ],
+ ],
+ 'full' => [
+ '<sites>' .
+ '<site><globalid>Foo</globalid></site>' .
+ '<site>' .
+ '<globalid>acme.com</globalid>' .
+ '<localid type="interwiki">acme</localid>' .
+ '<group>Test</group>' .
+ '<path type="link">http://acme.com/</path>' .
+ '</site>' .
+ '<site type="mediawiki">' .
+ '<source>meta.wikimedia.org</source>' .
+ '<globalid>dewiki</globalid>' .
+ '<localid type="interwiki">wikipedia</localid>' .
+ '<localid type="equivalent">de</localid>' .
+ '<group>wikipedia</group>' .
+ '<forward/>' .
+ '<path type="link">http://de.wikipedia.org/w/</path>' .
+ '<path type="page_path">http://de.wikipedia.org/wiki/</path>' .
+ '</site>' .
+ '</sites>',
+ [ $foo, $acme, $dewiki ],
+ ],
+ 'skip' => [
+ '<sites>' .
+ '<site><globalid>Foo</globalid></site>' .
+ '<site><barf>Foo</barf></site>' .
+ '<site>' .
+ '<globalid>acme.com</globalid>' .
+ '<localid type="interwiki">acme</localid>' .
+ '<silly>boop!</silly>' .
+ '<group>Test</group>' .
+ '<path type="link">http://acme.com/</path>' .
+ '</site>' .
+ '</sites>',
+ [ $foo, $acme ],
+ 1
+ ],
+ ];
+ }
+
+ /**
+ * @dataProvider provideImportFromXML
+ */
+ public function testImportFromXML( $xml, array $expectedSites, $errorCount = 0 ) {
+ $importer = $this->newSiteImporter( $expectedSites, $errorCount );
+ $importer->importFromXML( $xml );
+ }
+
+ public function testImportFromXML_malformed() {
+ $this->setExpectedException( Exception::class );
+
+ $store = $this->getMockBuilder( SiteStore::class )->getMock();
+ $importer = new SiteImporter( $store );
+ $importer->importFromXML( 'THIS IS NOT XML' );
+ }
+
+ public function testImportFromFile() {
+ $foo = Site::newForType( Site::TYPE_UNKNOWN );
+ $foo->setGlobalId( 'Foo' );
+
+ $acme = Site::newForType( Site::TYPE_UNKNOWN );
+ $acme->setGlobalId( 'acme.com' );
+ $acme->setGroup( 'Test' );
+ $acme->addLocalId( Site::ID_INTERWIKI, 'acme' );
+ $acme->setPath( Site::PATH_LINK, 'http://acme.com/' );
+
+ $dewiki = Site::newForType( Site::TYPE_MEDIAWIKI );
+ $dewiki->setGlobalId( 'dewiki' );
+ $dewiki->setGroup( 'wikipedia' );
+ $dewiki->setForward( true );
+ $dewiki->addLocalId( Site::ID_INTERWIKI, 'wikipedia' );
+ $dewiki->addLocalId( Site::ID_EQUIVALENT, 'de' );
+ $dewiki->setPath( Site::PATH_LINK, 'http://de.wikipedia.org/w/' );
+ $dewiki->setPath( MediaWikiSite::PATH_PAGE, 'http://de.wikipedia.org/wiki/' );
+ $dewiki->setSource( 'meta.wikimedia.org' );
+
+ $importer = $this->newSiteImporter( [ $foo, $acme, $dewiki ], 0 );
+
+ $file = __DIR__ . '/SiteImporterTest.xml';
+ $importer->importFromFile( $file );
+ }
+
+ /**
+ * @param Site[] $sites
+ *
+ * @return array[]
+ */
+ private function getSerializedSiteList( $sites ) {
+ $serialized = [];
+
+ foreach ( $sites as $site ) {
+ $key = $site->getGlobalId();
+ $data = unserialize( $site->serialize() );
+
+ $serialized[$key] = $data;
+ }
+
+ return $serialized;
+ }
+}
--- /dev/null
+<sites version="1.0" xmlns="http://www.mediawiki.org/xml/sitelist-1.0/">
+ <site><globalid>Foo</globalid></site>
+ <site>
+ <globalid>acme.com</globalid>
+ <localid type="interwiki">acme</localid>
+ <group>Test</group>
+ <path type="link">http://acme.com/</path>
+ </site>
+ <site type="mediawiki">
+ <source>meta.wikimedia.org</source>
+ <globalid>dewiki</globalid>
+ <localid type="interwiki">wikipedia</localid>
+ <localid type="equivalent">de</localid>
+ <group>wikipedia</group>
+ <forward/>
+ <path type="link">http://de.wikipedia.org/w/</path>
+ <path type="page_path">http://de.wikipedia.org/wiki/</path>
+ </site>
+</sites>
--- /dev/null
+<?php
+
+class RemexDriverTest extends MediaWikiUnitTestCase {
+ private static $remexTidyTestData = [
+ [
+ 'Empty string',
+ "",
+ ""
+ ],
+ [
+ 'Simple p-wrap',
+ "x",
+ "<p>x</p>"
+ ],
+ [
+ 'No p-wrap of blank node',
+ " ",
+ " "
+ ],
+ [
+ 'p-wrap terminated by div',
+ "x<div></div>",
+ "<p>x</p><div></div>"
+ ],
+ [
+ 'p-wrap not terminated by span',
+ "x<span></span>",
+ "<p>x<span></span></p>"
+ ],
+ [
+ 'An element is non-blank and so gets p-wrapped',
+ "<span></span>",
+ "<p><span></span></p>"
+ ],
+ [
+ 'The blank flag is set after a block-level element',
+ "<div></div> ",
+ "<div></div> "
+ ],
+ [
+ 'Blank detection between two block-level elements',
+ "<div></div> <div></div>",
+ "<div></div> <div></div>"
+ ],
+ [
+ 'But p-wrapping of non-blank content works after an element',
+ "<div></div>x",
+ "<div></div><p>x</p>"
+ ],
+ [
+ 'p-wrapping between two block-level elements',
+ "<div></div>x<div></div>",
+ "<div></div><p>x</p><div></div>"
+ ],
+ [
+ 'p-wrap inside blockquote',
+ "<blockquote>x</blockquote>",
+ "<blockquote><p>x</p></blockquote>"
+ ],
+ [
+ 'A comment is blank for p-wrapping purposes',
+ "<!-- x -->",
+ "<!-- x -->"
+ ],
+ [
+ 'A comment is blank even when a p-wrap was opened by a text node',
+ " <!-- x -->",
+ " <!-- x -->"
+ ],
+ [
+ 'A comment does not open a p-wrap',
+ "<!-- x -->x",
+ "<!-- x --><p>x</p>"
+ ],
+ [
+ 'A comment does not close a p-wrap',
+ "x<!-- x -->",
+ "<p>x<!-- x --></p>"
+ ],
+ [
+ 'Empty li',
+ "<ul><li></li></ul>",
+ "<ul><li class=\"mw-empty-elt\"></li></ul>"
+ ],
+ [
+ 'li with element',
+ "<ul><li><span></span></li></ul>",
+ "<ul><li><span></span></li></ul>"
+ ],
+ [
+ 'li with text',
+ "<ul><li>x</li></ul>",
+ "<ul><li>x</li></ul>"
+ ],
+ [
+ 'Empty tr',
+ "<table><tbody><tr></tr></tbody></table>",
+ "<table><tbody><tr class=\"mw-empty-elt\"></tr></tbody></table>"
+ ],
+ [
+ 'Empty p',
+ "<p>\n</p>",
+ "<p class=\"mw-empty-elt\">\n</p>"
+ ],
+ [
+ 'No p-wrapping of an inline element which contains a block element (T150317)',
+ "<small><div>x</div></small>",
+ "<small><div>x</div></small>"
+ ],
+ [
+ 'p-wrapping of an inline element which contains an inline element',
+ "<small><b>x</b></small>",
+ "<p><small><b>x</b></small></p>"
+ ],
+ [
+ 'p-wrapping is enabled in a blockquote in an inline element',
+ "<small><blockquote>x</blockquote></small>",
+ "<small><blockquote><p>x</p></blockquote></small>"
+ ],
+ [
+ 'All bare text should be p-wrapped even when surrounded by block tags',
+ "<small><blockquote>x</blockquote></small>y<div></div>z",
+ "<small><blockquote><p>x</p></blockquote></small><p>y</p><div></div><p>z</p>"
+ ],
+ [
+ 'Split tag stack 1',
+ "<small>x<div>y</div>z</small>",
+ "<p><small>x</small></p><small><div>y</div></small><p><small>z</small></p>"
+ ],
+ [
+ 'Split tag stack 2',
+ "<small><div>y</div>z</small>",
+ "<small><div>y</div></small><p><small>z</small></p>"
+ ],
+ [
+ 'Split tag stack 3',
+ "<small>x<div>y</div></small>",
+ "<p><small>x</small></p><small><div>y</div></small>"
+ ],
+ [
+ 'Split tag stack 4 (modified to use splittable tag)',
+ "a<code>b<i>c<div>d</div></i>e</code>",
+ "<p>a<code>b<i>c</i></code></p><code><i><div>d</div></i></code><p><code>e</code></p>"
+ ],
+ [
+ "Split tag stack regression check 1",
+ "x<span><div>y</div></span>",
+ "<p>x</p><span><div>y</div></span>"
+ ],
+ [
+ "Split tag stack regression check 2 (modified to use splittable tag)",
+ "a<code><i><div>d</div></i>e</code>",
+ "<p>a</p><code><i><div>d</div></i></code><p><code>e</code></p>"
+ ],
+ // Simple tests from pwrap.js
+ [
+ 'Simple pwrap test 1',
+ 'a',
+ '<p>a</p>'
+ ],
+ [
+ '<span> is not a splittable tag, but gets p-wrapped in simple wrapping scenarios',
+ '<span>a</span>',
+ '<p><span>a</span></p>'
+ ],
+ [
+ 'Simple pwrap test 3',
+ 'x <div>a</div> <div>b</div> y',
+ '<p>x </p><div>a</div> <div>b</div><p> y</p>'
+ ],
+ [
+ 'Simple pwrap test 4',
+ 'x<!--c--> <div>a</div> <div>b</div> <!--c-->y',
+ '<p>x<!--c--> </p><div>a</div> <div>b</div> <!--c--><p>y</p>'
+ ],
+ // Complex tests from pwrap.js
+ [
+ 'Complex pwrap test 1',
+ '<i>x<div>a</div>y</i>',
+ '<p><i>x</i></p><i><div>a</div></i><p><i>y</i></p>'
+ ],
+ [
+ 'Complex pwrap test 2',
+ 'a<small>b</small><i>c<div>d</div>e</i>f',
+ '<p>a<small>b</small><i>c</i></p><i><div>d</div></i><p><i>e</i>f</p>'
+ ],
+ [
+ 'Complex pwrap test 3',
+ 'a<small>b<i>c<div>d</div></i>e</small>',
+ '<p>a<small>b<i>c</i></small></p><small><i><div>d</div></i></small><p><small>e</small></p>'
+ ],
+ [
+ 'Complex pwrap test 4',
+ 'x<small><div>y</div></small>',
+ '<p>x</p><small><div>y</div></small>'
+ ],
+ [
+ 'Complex pwrap test 5',
+ 'a<small><i><div>d</div></i>e</small>',
+ '<p>a</p><small><i><div>d</div></i></small><p><small>e</small></p>'
+ ],
+ // phpcs:disable Generic.Files.LineLength
+ [
+ 'Complex pwrap test 6',
+ '<i>a<div>b</div>c<b>d<div>e</div>f</b>g</i>',
+ // PHP 5 does not allow concatenation in initialisation of a class static variable
+ '<p><i>a</i></p><i><div>b</div></i><p><i>c<b>d</b></i></p><i><b><div>e</div></b></i><p><i><b>f</b>g</i></p>'
+ ],
+ // phpcs:enable
+ /* FIXME the second <b> causes a stack split which clones the <i> even
+ * though no <p> is actually generated
+ [
+ 'Complex pwrap test 7',
+ '<i><b><font><div>x</div></font></b><div>y</div><b><font><div>z</div></font></b></i>',
+ '<i><b><font><div>x</div></font></b><div>y</div><b><font><div>z</div></font></b></i>'
+ ],
+ */
+ // New local tests
+ [
+ 'Blank text node after block end',
+ '<small>x<div>y</div> <b>z</b></small>',
+ '<p><small>x</small></p><small><div>y</div></small><p><small> <b>z</b></small></p>'
+ ],
+ [
+ 'Text node fostering (FIXME: wrap missing)',
+ '<table>x</table>',
+ 'x<table></table>'
+ ],
+ [
+ 'Blockquote fostering',
+ '<table><blockquote>x</blockquote></table>',
+ '<blockquote><p>x</p></blockquote><table></table>'
+ ],
+ [
+ 'Block element fostering',
+ '<table><div>x',
+ '<div>x</div><table></table>'
+ ],
+ [
+ 'Formatting element fostering (FIXME: wrap missing)',
+ '<table><b>x',
+ '<b>x</b><table></table>'
+ ],
+ [
+ 'AAA clone of p-wrapped element (FIXME: empty b)',
+ '<b>x<p>y</b>z</p>',
+ '<p><b>x</b></p><b></b><p><b>y</b>z</p>',
+ ],
+ [
+ 'AAA with fostering (FIXME: wrap missing)',
+ '<table><b>1<p>2</b>3</p>',
+ '<b>1</b><p><b>2</b>3</p><table></table>'
+ ],
+ [
+ 'AAA causes reparent of p-wrapped text node (T178632)',
+ '<i><blockquote>x</i></blockquote>',
+ '<i></i><blockquote><p><i>x</i></p></blockquote>',
+ ],
+ [
+ 'p-wrap ended by reparenting (T200827)',
+ '<i><blockquote><p></i>',
+ '<i></i><blockquote><p><i></i></p><p><i></i></p></blockquote>',
+ ],
+ [
+ 'style tag isn\'t p-wrapped (T186965)',
+ '<style>/* ... */</style>',
+ '<style>/* ... */</style>',
+ ],
+ [
+ 'link tag isn\'t p-wrapped (T186965)',
+ '<link rel="foo" href="bar" />',
+ '<link rel="foo" href="bar" />',
+ ],
+ [
+ 'style tag doesn\'t split p-wrapping (T208901)',
+ 'foo <style>/* ... */</style> bar',
+ '<p>foo <style>/* ... */</style> bar</p>',
+ ],
+ [
+ 'link tag doesn\'t split p-wrapping (T208901)',
+ 'foo <link rel="foo" href="bar" /> bar',
+ '<p>foo <link rel="foo" href="bar" /> bar</p>',
+ ],
+ ];
+
+ public function provider() {
+ return self::$remexTidyTestData;
+ }
+
+ /**
+ * @dataProvider provider
+ * @covers MediaWiki\Tidy\RemexCompatFormatter
+ * @covers MediaWiki\Tidy\RemexCompatMunger
+ * @covers MediaWiki\Tidy\RemexDriver
+ * @covers MediaWiki\Tidy\RemexMungerData
+ */
+ public function testTidy( $desc, $input, $expected ) {
+ $r = new MediaWiki\Tidy\RemexDriver( [] );
+ $result = $r->tidy( $input );
+ $this->assertEquals( $expected, $result, $desc );
+ }
+
+ public function html5libProvider() {
+ $files = json_decode( file_get_contents( __DIR__ . '/html5lib-tests.json' ), true );
+ $tests = [];
+ foreach ( $files as $file => $fileTests ) {
+ foreach ( $fileTests as $i => $test ) {
+ $tests[] = [ "$file:$i", $test['data'] ];
+ }
+ }
+ return $tests;
+ }
+
+ /**
+ * This is a quick and dirty test to make sure none of the html5lib tests
+ * generate exceptions. We don't really know what the expected output is.
+ *
+ * @dataProvider html5libProvider
+ * @coversNothing
+ */
+ public function testHtml5Lib( $desc, $input ) {
+ $r = new MediaWiki\Tidy\RemexDriver( [] );
+ $result = $r->tidy( $input );
+ $this->assertTrue( true, $desc );
+ }
+}
--- /dev/null
+{
+ "adoption01.dat": [
+ {
+ "data": "<a><p></a></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,10): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><p><a></a></p></body></html>",
+ "noQuirksBodyHtml": "<a></a><p><a></a></p>"
+ }
+ },
+ {
+ "data": "<a>1<p>2</a>3</p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,12): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><p><a>2</a>3</p></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><p><a>2</a>3</p>"
+ }
+ },
+ {
+ "data": "<a>1<button>2</a>3</button>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,17): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><button><a>2</a>3</button></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><button><a>2</a>3</button>"
+ }
+ },
+ {
+ "data": "<a>1<b>2</a>3</b>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,12): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1<b>2</b></a><b>3</b></body></html>",
+ "noQuirksBodyHtml": "<a>1<b>2</b></a><b>3</b>"
+ }
+ },
+ {
+ "data": "<a>1<div>2<div>3</a>4</div>5</div>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,20): adoption-agency-1.3",
+ "(1,20): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "text": "4"
+ }
+ ]
+ },
+ {
+ "text": "5"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><div><a>2</a><div><a>3</a>4</div>5</div></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><div><a>2</a><div><a>3</a>4</div>5</div>"
+ }
+ },
+ {
+ "data": "<table><a>1<p>2</a>3</p>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,11): unexpected-character-implies-table-voodoo",
+ "(1,14): unexpected-start-tag-implies-table-voodoo",
+ "(1,15): unexpected-character-implies-table-voodoo",
+ "(1,19): unexpected-end-tag-implies-table-voodoo",
+ "(1,19): adoption-agency-1.3",
+ "(1,20): unexpected-character-implies-table-voodoo",
+ "(1,24): unexpected-end-tag-implies-table-voodoo",
+ "(1,24): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><p><a>2</a>3</p><table></table></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><p><a>2</a>3</p><table></table>"
+ }
+ },
+ {
+ "data": "<b><b><a><p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): adoption-agency-1.3",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><b><a></a><p><a></a></p></b></b></body></html>",
+ "noQuirksBodyHtml": "<b><b><a></a><p><a></a></p></b></b>"
+ }
+ },
+ {
+ "data": "<b><a><b><p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): adoption-agency-1.3",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><a><b></b></a><b><p><a></a></p></b></b></body></html>",
+ "noQuirksBodyHtml": "<b><a><b></b></a><b><p><a></a></p></b></b>"
+ }
+ },
+ {
+ "data": "<a><b><b><p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): adoption-agency-1.3",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b><b></b></b></a><b><b><p><a></a></p></b></b></body></html>",
+ "noQuirksBodyHtml": "<a><b><b></b></b></a><b><b><p><a></a></p></b></b>"
+ }
+ },
+ {
+ "data": "<p>1<s id=\"A\">2<b id=\"B\">3</p>4</s>5</b>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,30): unexpected-end-tag",
+ "(1,35): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "s": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "s",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "A"
+ }
+ ],
+ "children": [
+ {
+ "text": "2"
+ },
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "B"
+ }
+ ],
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "s",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "A"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "B"
+ }
+ ],
+ "children": [
+ {
+ "text": "4"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "B"
+ }
+ ],
+ "children": [
+ {
+ "text": "5"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p>1<s id=\"A\">2<b id=\"B\">3</b></s></p><s id=\"A\"><b id=\"B\">4</b></s><b id=\"B\">5</b></body></html>",
+ "noQuirksBodyHtml": "<p>1<s id=\"A\">2<b id=\"B\">3</b></s></p><s id=\"A\"><b id=\"B\">4</b></s><b id=\"B\">5</b>"
+ }
+ },
+ {
+ "data": "<table><a>1<td>2</td>3</table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,11): unexpected-character-implies-table-voodoo",
+ "(1,15): unexpected-cell-in-table-body",
+ "(1,30): unexpected-implied-end-tag-in-table-view"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>1</a><a>3</a><table><tbody><tr><td>2</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<a>1</a><a>3</a><table><tbody><tr><td>2</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table>A<td>B</td>C</table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,8): unexpected-character-implies-table-voodoo",
+ "(1,12): unexpected-cell-in-table-body",
+ "(1,22): unexpected-character-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "AC"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>AC<table><tbody><tr><td>B</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "AC<table><tbody><tr><td>B</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<a><svg><tr><input></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-end-tag",
+ "(1,23): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "svg svg": true,
+ "svg tr": true,
+ "svg input": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "tr",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "input",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><svg><tr><input></input></tr></svg></a></body></html>",
+ "noQuirksBodyHtml": "<a><svg><tr><input></input></tr></svg></a>"
+ }
+ },
+ {
+ "data": "<div><a><b><div><div><div><div><div><div><div><div><div><div></a>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): adoption-agency-1.3",
+ "(1,65): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "a": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><a><b></b></a><b><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a><div><div></div></div></a></div></div></div></div></div></div></div></div></b></div></body></html>",
+ "noQuirksBodyHtml": "<div><a><b></b></a><b><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a><div><div></div></div></a></div></div></div></div></div></div></div></div></b></div>"
+ }
+ },
+ {
+ "data": "<div><a><b><u><i><code><div></a>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,32): adoption-agency-1.3",
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "a": true,
+ "b": true,
+ "u": true,
+ "i": true,
+ "code": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "u",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "code"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "u",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "code",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><a><b><u><i><code></code></i></u></b></a><u><i><code><div><a></a></div></code></i></u></div></body></html>",
+ "noQuirksBodyHtml": "<div><a><b><u><i><code></code></i></u></b></a><u><i><code><div><a></a></div></code></i></u></div>"
+ }
+ },
+ {
+ "data": "<b><b><b><b>x</b></b></b></b>y",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "y"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><b><b><b>x</b></b></b></b>y</body></html>",
+ "noQuirksBodyHtml": "<b><b><b><b>x</b></b></b></b>y"
+ }
+ },
+ {
+ "data": "<p><b><b><b><b><p>x",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-end-tag",
+ "(1,19): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b><b><b><b></b></b></b></b></p><p><b><b><b>x</b></b></b></p></body></html>",
+ "noQuirksBodyHtml": "<p><b><b><b><b></b></b></b></b></p><p><b><b><b>x</b></b></b></p>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foob><fooc><aside></b></em>",
+ "errors": [
+ "(1,35): adoption-agency-1.3",
+ "(1,40): adoption-agency-1.3",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "em": true,
+ "foo": true,
+ "foob": true,
+ "fooc": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "fooc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ],
+ "html": "<b><em><foo><foob><fooc></fooc></foob></foo></em></b><aside><b></b></aside>",
+ "noQuirksBodyHtml": "<b><em><foo><foob><fooc></fooc></foob></foo></em></b><aside><b></b></aside>"
+ }
+ }
+ ],
+ "adoption02.dat": [
+ {
+ "data": "<b>1<i>2<p>3</b>4",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): adoption-agency-1.3",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "text": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>1<i>2</i></b><i><p><b>3</b>4</p></i></body></html>",
+ "noQuirksBodyHtml": "<b>1<i>2</i></b><i><p><b>3</b>4</p></i>"
+ }
+ },
+ {
+ "data": "<a><div><style></style><address><a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,35): unexpected-start-tag-implies-end-tag",
+ "(1,35): adoption-agency-1.3",
+ "(1,35): adoption-agency-1.3",
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "div": true,
+ "style": true,
+ "address": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "style"
+ }
+ ]
+ },
+ {
+ "tag": "address",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><div><a><style></style></a><address><a></a><a></a></address></div></body></html>",
+ "noQuirksBodyHtml": "<a></a><div><a><style></style></a><address><a></a><a></a></address></div>"
+ }
+ }
+ ],
+ "comments01.dat": [
+ {
+ "data": "FOO<!-- BAR -->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR "
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR --!>BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-bang-after-double-dash-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR "
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR -- >BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-char-in-comment",
+ "(1,21): eof-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR -- >BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -- >BAZ--></body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -- >BAZ-->"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-char-in-comment",
+ "(1,24): unexpected-char-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR -- <QUX> -- MUX "
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR -- <QUX> -- MUX --!>BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-char-in-comment",
+ "(1,24): unexpected-char-in-comment",
+ "(1,31): unexpected-bang-after-double-dash-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR -- <QUX> -- MUX "
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-- BAR -- <QUX> -- MUX -- >BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): unexpected-char-in-comment",
+ "(1,24): unexpected-char-in-comment",
+ "(1,31): unexpected-char-in-comment",
+ "(1,35): eof-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": " BAR -- <QUX> -- MUX -- >BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -- >BAZ--></body></html>",
+ "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -- >BAZ-->"
+ }
+ },
+ {
+ "data": "FOO<!---->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": ""
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!---->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!--->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,9): incorrect-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": ""
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!---->BAZ"
+ }
+ },
+ {
+ "data": "FOO<!-->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,8): incorrect-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": ""
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!---->BAZ"
+ }
+ },
+ {
+ "data": "<?xml version=\"1.0\">Hi",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,22): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?xml version=\"1.0\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hi"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!--?xml version=\"1.0\"--><html><head></head><body>Hi</body></html>",
+ "noQuirksBodyHtml": "<!--?xml version=\"1.0\"-->Hi"
+ }
+ },
+ {
+ "data": "<?xml version=\"1.0\">",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,20): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?xml version=\"1.0\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?xml version=\"1.0\"--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?xml version=\"1.0\"-->"
+ }
+ },
+ {
+ "data": "<?xml version",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,13): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?xml version"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?xml version--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?xml version-->"
+ }
+ },
+ {
+ "data": "FOO<!----->BAZ",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,10): unexpected-dash-after-double-dash-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "comment": "-"
+ },
+ {
+ "text": "BAZ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<!----->BAZ</body></html>",
+ "noQuirksBodyHtml": "FOO<!----->BAZ"
+ }
+ },
+ {
+ "data": "<html><!-- comment --><title>Comment before head</title>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "comment": " comment "
+ },
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "Comment before head"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><!-- comment --><head><title>Comment before head</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- comment --><title>Comment before head</title>"
+ }
+ }
+ ],
+ "doctype01.dat": [
+ {
+ "data": "<!DOCTYPE html>Hello",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!dOctYpE HtMl>Hello",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPEhtml>Hello",
+ "errors": [
+ "(1,9): need-space-after-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE>Hello",
+ "errors": [
+ "(1,9): need-space-after-doctype",
+ "(1,10): expected-doctype-name-but-got-right-bracket",
+ "(1,10): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE ><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE >Hello",
+ "errors": [
+ "(1,11): expected-doctype-name-but-got-right-bracket",
+ "(1,11): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE ><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato>Hello",
+ "errors": [
+ "(1,17): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato >Hello",
+ "errors": [
+ "(1,18): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato taco>Hello",
+ "errors": [
+ "(1,17): expected-space-or-right-bracket-in-doctype",
+ "(1,22): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato taco \"ddd>Hello",
+ "errors": [
+ "(1,17): expected-space-or-right-bracket-in-doctype",
+ "(1,27): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato sYstEM>Hello",
+ "errors": [
+ "(1,24): unexpected-char-in-doctype",
+ "(1,24): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato sYstEM >Hello",
+ "errors": [
+ "(1,28): unexpected-char-in-doctype",
+ "(1,28): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato sYstEM ggg>Hello",
+ "errors": [
+ "(1,34): unexpected-char-in-doctype",
+ "(1,37): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEM taco >Hello",
+ "errors": [
+ "(1,25): unexpected-char-in-doctype",
+ "(1,31): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEM 'taco\"'>Hello",
+ "errors": [
+ "(1,32): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"\" \"taco\"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEM \"taco\">Hello",
+ "errors": [
+ "(1,31): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"\" \"taco\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEM \"tai'co\">Hello",
+ "errors": [
+ "(1,33): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"\" \"tai'co\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato SYSTEMtaco \"ddd\">Hello",
+ "errors": [
+ "(1,24): unexpected-char-in-doctype",
+ "(1,34): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato grass SYSTEM taco>Hello",
+ "errors": [
+ "(1,17): expected-space-or-right-bracket-in-doctype",
+ "(1,35): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato pUbLIc>Hello",
+ "errors": [
+ "(1,24): unexpected-end-of-doctype",
+ "(1,24): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato pUbLIc >Hello",
+ "errors": [
+ "(1,25): unexpected-end-of-doctype",
+ "(1,25): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato pUbLIcgoof>Hello",
+ "errors": [
+ "(1,24): unexpected-char-in-doctype",
+ "(1,28): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC goof>Hello",
+ "errors": [
+ "(1,25): unexpected-char-in-doctype",
+ "(1,29): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC \"go'of\">Hello",
+ "errors": [
+ "(1,32): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"go'of\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC 'go'of'>Hello",
+ "errors": [
+ "(1,29): unexpected-char-in-doctype",
+ "(1,32): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"go\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC 'go:hh of' >Hello",
+ "errors": [
+ "(1,38): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"go:hh of\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE potato PUBLIC \"W3C-//dfdf\" SYSTEM ggg>Hello",
+ "errors": [
+ "(1,38): unexpected-char-in-doctype",
+ "(1,48): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "potato \"W3C-//dfdf\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n \"http://www.w3.org/TR/html4/strict.dtd\">Hello",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE ...>Hello",
+ "errors": [
+ "(1,14): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "..."
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE ...><html><head></head><body>Hello</body></html>",
+ "noQuirksBodyHtml": "Hello"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">",
+ "errors": [
+ "(2,58): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">",
+ "errors": [
+ "(2,54): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] \"uri\" [ \n<!-- internal declarations -->\n]>",
+ "errors": [
+ "(1,23): expected-space-or-right-bracket-in-doctype",
+ "(2,30): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "root-element"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "]>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE root-element><html><head></head><body>]></body></html>",
+ "noQuirksBodyHtml": "\n]>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html PUBLIC\n \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\"\n \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\">",
+ "errors": [
+ "(3,53): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\" \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML SYSTEM \"http://www.w3.org/DTD/HTML4-strict.dtd\"><body><b>Mine!</b></body>",
+ "errors": [
+ "(1,63): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"\" \"http://www.w3.org/DTD/HTML4-strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Mine!"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b>Mine!</b></body></html>",
+ "noQuirksBodyHtml": "<b>Mine!</b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\"http://www.w3.org/TR/html4/strict.dtd\">",
+ "errors": [
+ "(1,50): unexpected-char-in-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"'http://www.w3.org/TR/html4/strict.dtd'>",
+ "errors": [
+ "(1,50): unexpected-char-in-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC\"-//W3C//DTD HTML 4.01//EN\"'http://www.w3.org/TR/html4/strict.dtd'>",
+ "errors": [
+ "(1,21): unexpected-char-in-doctype",
+ "(1,49): unexpected-char-in-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'>",
+ "errors": [
+ "(1,21): unexpected-char-in-doctype",
+ "(1,49): unexpected-char-in-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "domjs-unsafe.dat": [
+ {
+ "data": "<svg><![CDATA[foo\nbar]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(2,6): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo\nbar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[foo\rbar]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(2,6): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo\nbar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[foo\r\nbar]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(2,6): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo\nbar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+ }
+ },
+ {
+ "data": "<script>a='\u0000'</script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "a='�'",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script>a='�'</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script>a='�'</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--\u0000</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,25): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--�</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--�</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--foo\u0000</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,28): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--foo�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--foo�</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--foo�</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-\u0000</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,30): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-�</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-�</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo--\u0000</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,31): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo--�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo--�</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo--�</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,29): expected-script-data-but-got-eof",
+ "(1,29): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-<</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-<</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-<S",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,31): expected-script-data-but-got-eof",
+ "(1,31): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-<S",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-<S</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-<S</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!-- foo-</SCRIPT>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!-- foo-",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!-- foo-</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-</script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<p></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<p>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<p></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<p></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script></script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script></script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script></script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script></script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script>\u0000</script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,33): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script>�</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script>�</script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script>�</script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script>-\u0000</script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,34): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script>-�</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script>-�</script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script>-�</script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script>--\u0000</script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag",
+ "(1,35): invalid-codepoint"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script>--�</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script>--�</script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script>--�</script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script>---</script></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script>---</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script>---</script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script>---</script></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script></scrip></SCRIPT>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script></scrip></SCRIPT></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script></scrip </SCRIPT>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script></scrip </SCRIPT></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--<script></scrip/</SCRIPT>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--<script></scrip/</SCRIPT></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"></scrip/></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "</scrip/>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"></scrip/></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"></scrip/></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"></scrip ></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "</scrip >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"></scrip ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"></scrip ></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--</scrip></script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--</scrip>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--</scrip></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip></script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--</scrip </script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--</scrip ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--</scrip </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip </script>"
+ }
+ },
+ {
+ "data": "<script type=\"data\"><!--</scrip/</script>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "data"
+ }
+ ],
+ "children": [
+ {
+ "text": "<!--</scrip/",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script type=\"data\"><!--</scrip/</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip/</script>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!DOCTYPE html>",
+ "errors": [
+ "(1,30): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><!DOCTYPE html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head><!DOCTYPE html></head>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></head><!DOCTYPE html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,34): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body></body><!DOCTYPE html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><!DOCTYPE html></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table></table></body></html>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "<select><!DOCTYPE html></select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<table><colgroup><!DOCTYPE html></colgroup></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,32): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup><!--test--></colgroup></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "comment": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><!--test--></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><!--test--></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup><html></colgroup></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,23): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup> foo</colgroup></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,32): foster-parenting-character-in-table",
+ "(1,32): foster-parenting-character-in-table",
+ "(1,32): foster-parenting-character-in-table",
+ "(1,32): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>foo<table><colgroup> </colgroup></table></body></html>",
+ "noQuirksBodyHtml": "foo<table><colgroup> </colgroup></table>"
+ }
+ },
+ {
+ "data": "<select><!--test--></select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "comment": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><!--test--></select></body></html>",
+ "noQuirksBodyHtml": "<select><!--test--></select>"
+ }
+ },
+ {
+ "data": "<select><html></select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<frameset><html></frameset>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,16): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<frameset></frameset><html>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,27): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<frameset></frameset><!DOCTYPE html>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,36): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><body></body></html><!DOCTYPE html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,41): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<svg><!DOCTYPE html></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<svg><font></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><font></font></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><font></font></svg>"
+ }
+ },
+ {
+ "data": "<svg><font id=foo></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><font id=\"foo\"></font></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><font id=\"foo\"></font></svg>"
+ }
+ },
+ {
+ "data": "<svg><font size=4></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-html-element-in-foreign-content",
+ "(1,31): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg><font size=\"4\"></font></body></html>",
+ "noQuirksBodyHtml": "<svg><font size=\"4\"></font></svg>"
+ }
+ },
+ {
+ "data": "<svg><font color=red></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-html-element-in-foreign-content",
+ "(1,34): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg><font color=\"red\"></font></body></html>",
+ "noQuirksBodyHtml": "<svg><font color=\"red\"></font></svg>"
+ }
+ },
+ {
+ "data": "<svg><font font=sans></font></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "font",
+ "value": "sans"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><font font=\"sans\"></font></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><font font=\"sans\"></font></svg>"
+ }
+ }
+ ],
+ "entities01.dat": [
+ {
+ "data": "FOO>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO>BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO>BAR"
+ }
+ },
+ {
+ "data": "FOO>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,6): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO>BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO>BAR"
+ }
+ },
+ {
+ "data": "FOO> BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,6): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO> BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO> BAR</body></html>",
+ "noQuirksBodyHtml": "FOO> BAR"
+ }
+ },
+ {
+ "data": "FOO>;;BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO>;;BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO>;;BAR</body></html>",
+ "noQuirksBodyHtml": "FOO>;;BAR"
+ }
+ },
+ {
+ "data": "I'm ¬it; I tell you",
+ "errors": [
+ "(1,4): expected-doctype-but-got-chars",
+ "(1,9): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "I'm ¬it; I tell you"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>I'm ¬it; I tell you</body></html>",
+ "noQuirksBodyHtml": "I'm ¬it; I tell you"
+ }
+ },
+ {
+ "data": "I'm ∉ I tell you",
+ "errors": [
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "I'm ∉ I tell you"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>I'm ∉ I tell you</body></html>",
+ "noQuirksBodyHtml": "I'm ∉ I tell you"
+ }
+ },
+ {
+ "data": "FOO& BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO& BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO& BAR</body></html>",
+ "noQuirksBodyHtml": "FOO& BAR"
+ }
+ },
+ {
+ "data": "FOO&<BAR>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,9): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bar": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&",
+ "escaped": true
+ },
+ {
+ "tag": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&<bar></bar></body></html>",
+ "noQuirksBodyHtml": "FOO&<bar></bar>"
+ }
+ },
+ {
+ "data": "FOO&&&>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&&&>BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&&&>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&&&>BAR"
+ }
+ },
+ {
+ "data": "FOO)BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO)BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO)BAR</body></html>",
+ "noQuirksBodyHtml": "FOO)BAR"
+ }
+ },
+ {
+ "data": "FOOABAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOABAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOABAR</body></html>",
+ "noQuirksBodyHtml": "FOOABAR"
+ }
+ },
+ {
+ "data": "FOOABAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOABAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOABAR</body></html>",
+ "noQuirksBodyHtml": "FOOABAR"
+ }
+ },
+ {
+ "data": "FOO&#BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,5): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&#BAR",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&#BAR</body></html>",
+ "noQuirksBodyHtml": "FOO&#BAR"
+ }
+ },
+ {
+ "data": "FOO&#ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,5): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&#ZOO",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&#ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO&#ZOO"
+ }
+ },
+ {
+ "data": "FOOºR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,7): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOºR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOºR</body></html>",
+ "noQuirksBodyHtml": "FOOºR"
+ }
+ },
+ {
+ "data": "FOO&#xZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,6): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&#xZOO",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&#xZOO</body></html>",
+ "noQuirksBodyHtml": "FOO&#xZOO"
+ }
+ },
+ {
+ "data": "FOO&#XZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,6): expected-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO&#XZOO",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO&#XZOO</body></html>",
+ "noQuirksBodyHtml": "FOO&#XZOO"
+ }
+ },
+ {
+ "data": "FOO)BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,7): numeric-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO)BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO)BAR</body></html>",
+ "noQuirksBodyHtml": "FOO)BAR"
+ }
+ },
+ {
+ "data": "FOO䆺R",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,10): numeric-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO䆺R"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO䆺R</body></html>",
+ "noQuirksBodyHtml": "FOO䆺R"
+ }
+ },
+ {
+ "data": "FOOAZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,8): numeric-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOAZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOAZOO</body></html>",
+ "noQuirksBodyHtml": "FOOAZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOOxZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOxZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOxZOO</body></html>",
+ "noQuirksBodyHtml": "FOOxZOO"
+ }
+ },
+ {
+ "data": "FOOyZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOyZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOyZOO</body></html>",
+ "noQuirksBodyHtml": "FOOyZOO"
+ }
+ },
+ {
+ "data": "FOO€ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO€ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO€ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO€ZOO"
+ }
+ },
+ {
+ "data": "FOOZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO\81ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO\81ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO\81ZOO"
+ }
+ },
+ {
+ "data": "FOO‚ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‚ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‚ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‚ZOO"
+ }
+ },
+ {
+ "data": "FOOƒZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOƒZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOƒZOO</body></html>",
+ "noQuirksBodyHtml": "FOOƒZOO"
+ }
+ },
+ {
+ "data": "FOO„ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO„ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO„ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO„ZOO"
+ }
+ },
+ {
+ "data": "FOO…ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO…ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO…ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO…ZOO"
+ }
+ },
+ {
+ "data": "FOO†ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO†ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO†ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO†ZOO"
+ }
+ },
+ {
+ "data": "FOO‡ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‡ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‡ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‡ZOO"
+ }
+ },
+ {
+ "data": "FOOˆZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOˆZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOˆZOO</body></html>",
+ "noQuirksBodyHtml": "FOOˆZOO"
+ }
+ },
+ {
+ "data": "FOO‰ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‰ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‰ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‰ZOO"
+ }
+ },
+ {
+ "data": "FOOŠZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOŠZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOŠZOO</body></html>",
+ "noQuirksBodyHtml": "FOOŠZOO"
+ }
+ },
+ {
+ "data": "FOO‹ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‹ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‹ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‹ZOO"
+ }
+ },
+ {
+ "data": "FOOŒZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOŒZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOŒZOO</body></html>",
+ "noQuirksBodyHtml": "FOOŒZOO"
+ }
+ },
+ {
+ "data": "FOOZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO\8dZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO\8dZOO</body></html>",
+ "noQuirksBodyHtml": "FOO\8dZOO"
+ }
+ },
+ {
+ "data": "FOOŽZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOŽZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOŽZOO</body></html>",
+ "noQuirksBodyHtml": "FOOŽZOO"
+ }
+ },
+ {
+ "data": "FOOZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO\8fZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO\8fZOO</body></html>",
+ "noQuirksBodyHtml": "FOO\8fZOO"
+ }
+ },
+ {
+ "data": "FOOZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO\90ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO\90ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO\90ZOO"
+ }
+ },
+ {
+ "data": "FOO‘ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO‘ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO‘ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO‘ZOO"
+ }
+ },
+ {
+ "data": "FOO’ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO’ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO’ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO’ZOO"
+ }
+ },
+ {
+ "data": "FOO“ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO“ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO“ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO“ZOO"
+ }
+ },
+ {
+ "data": "FOO”ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO”ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO”ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO”ZOO"
+ }
+ },
+ {
+ "data": "FOO•ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO•ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO•ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO•ZOO"
+ }
+ },
+ {
+ "data": "FOO–ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO–ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO–ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO–ZOO"
+ }
+ },
+ {
+ "data": "FOO—ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO—ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO—ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO—ZOO"
+ }
+ },
+ {
+ "data": "FOO˜ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO˜ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO˜ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO˜ZOO"
+ }
+ },
+ {
+ "data": "FOO™ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO™ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO™ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO™ZOO"
+ }
+ },
+ {
+ "data": "FOOšZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOšZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOšZOO</body></html>",
+ "noQuirksBodyHtml": "FOOšZOO"
+ }
+ },
+ {
+ "data": "FOO›ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO›ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO›ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO›ZOO"
+ }
+ },
+ {
+ "data": "FOOœZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOœZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOœZOO</body></html>",
+ "noQuirksBodyHtml": "FOOœZOO"
+ }
+ },
+ {
+ "data": "FOOZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO\9dZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO\9dZOO</body></html>",
+ "noQuirksBodyHtml": "FOO\9dZOO"
+ }
+ },
+ {
+ "data": "FOOžZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOžZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOžZOO</body></html>",
+ "noQuirksBodyHtml": "FOOžZOO"
+ }
+ },
+ {
+ "data": "FOOŸZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOŸZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOŸZOO</body></html>",
+ "noQuirksBodyHtml": "FOOŸZOO"
+ }
+ },
+ {
+ "data": "FOO ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO ZOO",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO ZOO"
+ }
+ },
+ {
+ "data": "FOO퟿ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOOZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOOZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO􈟔ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOOZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOOZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOOZOO</body></html>",
+ "noQuirksBodyHtml": "FOOZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO�",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity",
+ "(1,13): eof-in-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�</body></html>",
+ "noQuirksBodyHtml": "FOO�"
+ }
+ },
+ {
+ "data": "FOO�",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity",
+ "(1,13): eof-in-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�</body></html>",
+ "noQuirksBodyHtml": "FOO�"
+ }
+ },
+ {
+ "data": "FOO�",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,13): illegal-codepoint-for-numeric-entity",
+ "(1,13): eof-in-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�</body></html>",
+ "noQuirksBodyHtml": "FOO�"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,16): numeric-entity-without-semicolon",
+ "(1,16): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,15): numeric-entity-without-semicolon",
+ "(1,15): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ },
+ {
+ "data": "FOO�ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,17): numeric-entity-without-semicolon",
+ "(1,17): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO�ZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO�ZOO</body></html>",
+ "noQuirksBodyHtml": "FOO�ZOO"
+ }
+ }
+ ],
+ "entities02.dat": [
+ {
+ "data": "<div bar=\"ZZ>YY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>YY"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ>YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ>YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&\"></div>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&\"></div>"
+ }
+ },
+ {
+ "data": "<div bar='ZZ&'></div>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=ZZ&></div>",
+ "errors": [
+ "(1,13): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ>=YY\"></div>",
+ "errors": [
+ "(1,15): named-entity-without-semicolon",
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>=YY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&gt=YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&gt=YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ>0YY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>0YY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&gt0YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&gt0YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ>9YY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>9YY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&gt9YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&gt9YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ>aYY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>aYY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&gtaYY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&gtaYY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ>ZYY\"></div>",
+ "errors": [
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>ZYY",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&gtZYY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&gtZYY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ> YY\"></div>",
+ "errors": [
+ "(1,15): named-entity-without-semicolon",
+ "(1,20): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ> YY"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ> YY\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ> YY\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ>\"></div>",
+ "errors": [
+ "(1,15): named-entity-without-semicolon",
+ "(1,17): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+ }
+ },
+ {
+ "data": "<div bar='ZZ>'></div>",
+ "errors": [
+ "(1,15): named-entity-without-semicolon",
+ "(1,17): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=ZZ>></div>",
+ "errors": [
+ "(1,14): named-entity-without-semicolon",
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ>"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ£_id=23\"></div>",
+ "errors": [
+ "(1,18): named-entity-without-semicolon",
+ "(1,26): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ£_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ£_id=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ£_id=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&prod_id=23\"></div>",
+ "errors": [
+ "(1,25): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&prod_id=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&prod_id=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&prod_id=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ£_id=23\"></div>",
+ "errors": [
+ "(1,27): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ£_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ£_id=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ£_id=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ∏_id=23\"></div>",
+ "errors": [
+ "(1,26): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ∏_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ∏_id=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ∏_id=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ£=23\"></div>",
+ "errors": [
+ "(1,18): named-entity-without-semicolon",
+ "(1,23): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ£=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&pound=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&pound=23\"></div>"
+ }
+ },
+ {
+ "data": "<div bar=\"ZZ&prod=23\"></div>",
+ "errors": [
+ "(1,22): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "ZZ&prod=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div bar=\"ZZ&prod=23\"></div></body></html>",
+ "noQuirksBodyHtml": "<div bar=\"ZZ&prod=23\"></div>"
+ }
+ },
+ {
+ "data": "<div>ZZ£_id=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,13): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ£_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ£_id=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ£_id=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&prod_id=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ&prod_id=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ&prod_id=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ&prod_id=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ£_id=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ£_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ£_id=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ£_id=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ∏_id=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ∏_id=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ∏_id=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ∏_id=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ£=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,13): named-entity-without-semicolon"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ£=23"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ£=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ£=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZ&prod=23</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZ&prod=23",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZ&prod=23</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZ&prod=23</div>"
+ }
+ },
+ {
+ "data": "<div>ZZÆ=</div>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "ZZÆ="
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>ZZÆ=</div></body></html>",
+ "noQuirksBodyHtml": "<div>ZZÆ=</div>"
+ }
+ }
+ ],
+ "foreign-fragment.dat": [
+ {
+ "data": "<nobr>X",
+ "errors": [
+ "6: HTML start tag “nobr” in a foreign namespace context.",
+ "7: End of file seen and there were open elements.",
+ "6: Unclosed element “nobr”."
+ ],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg nobr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "nobr",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<nobr>X</nobr>",
+ "noQuirksBodyHtml": "<nobr>X</nobr>"
+ }
+ },
+ {
+ "data": "<font color></font>X",
+ "errors": [
+ "12: HTML start tag “font” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "color",
+ "value": ""
+ }
+ ]
+ },
+ {
+ "text": "X"
+ }
+ ],
+ "html": "<font color=\"\"></font>X",
+ "noQuirksBodyHtml": "<font color=\"\"></font>X"
+ }
+ },
+ {
+ "data": "<font></font>X",
+ "errors": [],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "font",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "text": "X"
+ }
+ ],
+ "html": "<font></font>X",
+ "noQuirksBodyHtml": "<font></font>X"
+ }
+ },
+ {
+ "data": "<g></path>X",
+ "errors": [
+ "10: End tag “path” did not match the name of the current open element (“g”).",
+ "11: End of file seen and there were open elements.",
+ "3: Unclosed element “g”."
+ ],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg g": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<g>X</g>",
+ "noQuirksBodyHtml": "<g>X</g>"
+ }
+ },
+ {
+ "data": "</path>X",
+ "errors": [
+ "5: Stray end tag “path”."
+ ],
+ "fragment": {
+ "name": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</foreignObject>X",
+ "errors": [
+ "5: Stray end tag “foreignobject”."
+ ],
+ "fragment": {
+ "name": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</desc>X",
+ "errors": [
+ "5: Stray end tag “desc”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</title>X",
+ "errors": [
+ "5: Stray end tag “title”."
+ ],
+ "fragment": {
+ "name": "title",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</svg>X",
+ "errors": [
+ "5: Stray end tag “svg”."
+ ],
+ "fragment": {
+ "name": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mfenced>X",
+ "errors": [
+ "5: Stray end tag “mfenced”."
+ ],
+ "fragment": {
+ "name": "mfenced",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</malignmark>X",
+ "errors": [
+ "5: Stray end tag “malignmark”."
+ ],
+ "fragment": {
+ "name": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</math>X",
+ "errors": [
+ "5: Stray end tag “math”."
+ ],
+ "fragment": {
+ "name": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</annotation-xml>X",
+ "errors": [
+ "5: Stray end tag “annotation-xml”."
+ ],
+ "fragment": {
+ "name": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mtext>X",
+ "errors": [
+ "5: Stray end tag “mtext”."
+ ],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mi>X",
+ "errors": [
+ "5: Stray end tag “mi”."
+ ],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mo>X",
+ "errors": [
+ "5: Stray end tag “mo”."
+ ],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</mn>X",
+ "errors": [
+ "5: Stray end tag “mn”."
+ ],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "</ms>X",
+ "errors": [
+ "5: Stray end tag “ms”."
+ ],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><ms/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “ms”."
+ ],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "ms": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "ms",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><ms>X</ms>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><ms>X</ms></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mn/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “mn”."
+ ],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "mn": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "mn",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mn>X</mn>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mn>X</mn></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mo/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “mo”."
+ ],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "mo",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mo>X</mo>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mo>X</mo></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mi/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “mi”."
+ ],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "mi": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "mi",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mi>X</mi>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mi>X</mi></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mtext/>X",
+ "errors": [
+ "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "52: End of file seen and there were open elements.",
+ "51: Unclosed element “mtext”."
+ ],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "math mglyph": true,
+ "i": true,
+ "math malignmark": true,
+ "u": true,
+ "mtext": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "u"
+ },
+ {
+ "tag": "mtext",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mtext>X</mtext>",
+ "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mtext>X</mtext></malignmark></mglyph>"
+ }
+ },
+ {
+ "data": "<malignmark></malignmark>",
+ "errors": [],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<malignmark></malignmark>",
+ "noQuirksBodyHtml": "<malignmark></malignmark>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "5: HTML start tag “div” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "5: HTML start tag “div” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "title",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "title",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<div><h1>X</h1></div>",
+ "errors": [
+ "5: HTML start tag “div” in a foreign namespace context.",
+ "9: HTML start tag “h1” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg div": true,
+ "svg h1": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "h1",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<div><h1>X</h1></div>",
+ "noQuirksBodyHtml": "<div><h1>X</h1></div>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "5: HTML start tag “div” in a foreign namespace context."
+ ],
+ "fragment": {
+ "name": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "svg div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<figure></figure>",
+ "errors": [],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "figure": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "figure"
+ }
+ ],
+ "html": "<figure></figure>",
+ "noQuirksBodyHtml": "<figure></figure>"
+ }
+ },
+ {
+ "data": "<plaintext><foo>",
+ "errors": [
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "<foo>",
+ "no_escape": true
+ }
+ ]
+ }
+ ],
+ "html": "<plaintext><foo></plaintext>",
+ "noQuirksBodyHtml": "<plaintext><foo></plaintext>"
+ }
+ },
+ {
+ "data": "<frameset>X",
+ "errors": [
+ "6: Stray start tag “frameset”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<head>X",
+ "errors": [
+ "6: Stray start tag “head”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<body>X",
+ "errors": [
+ "6: Stray start tag “body”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<html>X",
+ "errors": [
+ "6: Stray start tag “html”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<html class=\"foo\">X",
+ "errors": [
+ "6: Stray start tag “html”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<body class=\"foo\">X",
+ "errors": [
+ "6: Stray start tag “body”."
+ ],
+ "fragment": {
+ "name": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "X"
+ }
+ ],
+ "html": "X",
+ "noQuirksBodyHtml": "X"
+ }
+ }
+ ],
+ "html5test-com.dat": [
+ {
+ "data": "<div<div>",
+ "errors": [
+ "(1,9): expected-doctype-but-got-start-tag",
+ "(1,9): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div<div": true
+ },
+ "tagWithLt": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div<div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div<div></div<div></body></html>",
+ "noQuirksBodyHtml": "<div<div></div<div>"
+ }
+ },
+ {
+ "data": "<div foo<bar=''>",
+ "errors": [
+ "(1,9): invalid-character-in-attribute-name",
+ "(1,16): expected-doctype-but-got-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "attrWithFunnyChar": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "foo<bar",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div foo<bar=\"\"></div></body></html>",
+ "noQuirksBodyHtml": "<div foo<bar=\"\"></div>"
+ }
+ },
+ {
+ "data": "<div foo=`bar`>",
+ "errors": [
+ "(1,10): equals-in-unquoted-attribute-value",
+ "(1,14): unexpected-character-in-unquoted-attribute-value",
+ "(1,15): expected-doctype-but-got-start-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "`bar`"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div foo=\"`bar`\"></div></body></html>",
+ "noQuirksBodyHtml": "<div foo=\"`bar`\"></div>"
+ }
+ },
+ {
+ "data": "<div \\\"foo=''>",
+ "errors": [
+ "(1,7): invalid-character-in-attribute-name",
+ "(1,14): expected-doctype-but-got-start-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "attrWithFunnyChar": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "\\\"foo",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div \\\"foo=\"\"></div></body></html>",
+ "noQuirksBodyHtml": "<div \\\"foo=\"\"></div>"
+ }
+ },
+ {
+ "data": "<a href='\\nbar'></a>",
+ "errors": [
+ "(1,16): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "\\nbar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"\\nbar\"></a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"\\nbar\"></a>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "⟨⟩",
+ "errors": [
+ "(1,6): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "⟨⟩"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>⟨⟩</body></html>",
+ "noQuirksBodyHtml": "⟨⟩"
+ }
+ },
+ {
+ "data": "'",
+ "errors": [
+ "(1,6): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "'"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>'</body></html>",
+ "noQuirksBodyHtml": "'"
+ }
+ },
+ {
+ "data": "ⅈ",
+ "errors": [
+ "(1,12): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "ⅈ"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>ⅈ</body></html>",
+ "noQuirksBodyHtml": "ⅈ"
+ }
+ },
+ {
+ "data": "𝕂",
+ "errors": [
+ "(1,6): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "𝕂"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>𝕂</body></html>",
+ "noQuirksBodyHtml": "𝕂"
+ }
+ },
+ {
+ "data": "∉",
+ "errors": [
+ "(1,9): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "∉"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>∉</body></html>",
+ "noQuirksBodyHtml": "∉"
+ }
+ },
+ {
+ "data": "<?import namespace=\"foo\" implementation=\"#bar\">",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,47): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?import namespace=\"foo\" implementation=\"#bar\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?import namespace=\"foo\" implementation=\"#bar\"--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?import namespace=\"foo\" implementation=\"#bar\"-->"
+ }
+ },
+ {
+ "data": "<!--foo--bar-->",
+ "errors": [
+ "(1,10): unexpected-char-in-comment",
+ "(1,15): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "foo--bar"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--foo--bar--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--foo--bar-->"
+ }
+ },
+ {
+ "data": "<![CDATA[x]]>",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,13): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "[CDATA[x]]"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--[CDATA[x]]--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--[CDATA[x]]-->"
+ }
+ },
+ {
+ "data": "<textarea><!--</textarea>--></textarea>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,39): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<!--",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea><!--</textarea>--></body></html>",
+ "noQuirksBodyHtml": "<textarea><!--</textarea>-->"
+ }
+ },
+ {
+ "data": "<textarea><!--</textarea>-->",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<!--",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea><!--</textarea>--></body></html>",
+ "noQuirksBodyHtml": "<textarea><!--</textarea>-->"
+ }
+ },
+ {
+ "data": "<style><!--</style>--></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,30): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--</style></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<style><!--</style>-->"
+ }
+ },
+ {
+ "data": "<style><!--</style>-->",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--</style></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<style><!--</style>-->"
+ }
+ },
+ {
+ "data": "<ul><li>A </li> <li>B</li></ul>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "A "
+ }
+ ]
+ },
+ {
+ "text": " "
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ul><li>A </li> <li>B</li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li>A </li> <li>B</li></ul>"
+ }
+ },
+ {
+ "data": "<table><form><input type=hidden><input></form><div></div></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-form-in-table",
+ "(1,32): unexpected-hidden-input-in-table",
+ "(1,39): unexpected-start-tag-implies-table-voodoo",
+ "(1,46): unexpected-end-tag-implies-table-voodoo",
+ "(1,46): unexpected-end-tag",
+ "(1,51): unexpected-start-tag-implies-table-voodoo",
+ "(1,57): unexpected-end-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true,
+ "div": true,
+ "table": true,
+ "form": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "form"
+ },
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidden"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><input><div></div><table><form></form><input type=\"hidden\"></table></body></html>",
+ "noQuirksBodyHtml": "<input><div></div><table><form></form><input type=\"hidden\"></table>"
+ }
+ },
+ {
+ "data": "<i>A<b>B<p></i>C</b>D",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,15): adoption-agency-1.3",
+ "(1,20): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i"
+ },
+ {
+ "text": "C"
+ }
+ ]
+ },
+ {
+ "text": "D"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><i>A<b>B</b></i><b></b><p><b><i></i>C</b>D</p></body></html>",
+ "noQuirksBodyHtml": "<i>A<b>B</b></i><b></b><p><b><i></i>C</b>D</p>"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<svg></svg>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<math></math>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math></math></body></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ }
+ ],
+ "inbody01.dat": [
+ {
+ "data": "<button>1</foo>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-end-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><button>1</button></body></html>",
+ "noQuirksBodyHtml": "<button>1</button>"
+ }
+ },
+ {
+ "data": "<foo>1<p>2</foo>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-end-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo>1<p>2</p></foo></body></html>",
+ "noQuirksBodyHtml": "<foo>1<p>2</p></foo>"
+ }
+ },
+ {
+ "data": "<dd>1</foo>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dd": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><dd>1</dd></body></html>",
+ "noQuirksBodyHtml": "<dd>1</dd>"
+ }
+ },
+ {
+ "data": "<foo>1<dd>2</foo>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-end-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "dd": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo>1<dd>2</dd></foo></body></html>",
+ "noQuirksBodyHtml": "<foo>1<dd>2</dd></foo>"
+ }
+ }
+ ],
+ "isindex.dat": [
+ {
+ "data": "<isindex>",
+ "errors": [
+ "(1,9): expected-doctype-but-got-start-tag",
+ "(1,9): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "isindex": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "isindex"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><isindex></isindex></body></html>",
+ "noQuirksBodyHtml": "<isindex></isindex>"
+ }
+ },
+ {
+ "data": "<isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\">",
+ "errors": [
+ "(1,48): expected-doctype-but-got-start-tag",
+ "(1,48): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "isindex": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "isindex",
+ "attrs": [
+ {
+ "name": "action",
+ "value": "B"
+ },
+ {
+ "name": "foo",
+ "value": "D"
+ },
+ {
+ "name": "name",
+ "value": "A"
+ },
+ {
+ "name": "prompt",
+ "value": "C"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\"></isindex></body></html>",
+ "noQuirksBodyHtml": "<isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\"></isindex>"
+ }
+ },
+ {
+ "data": "<form><isindex>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true,
+ "isindex": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form",
+ "children": [
+ {
+ "tag": "isindex"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><form><isindex></isindex></form></body></html>",
+ "noQuirksBodyHtml": "<form><isindex></isindex></form>"
+ }
+ },
+ {
+ "data": "<!doctype html><isindex>x</isindex>x",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "isindex": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "isindex",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><isindex>x</isindex>x</body></html>",
+ "noQuirksBodyHtml": "<isindex>x</isindex>x"
+ }
+ }
+ ],
+ "main-element.dat": [
+ {
+ "data": "<!doctype html><p>foo<main>bar<p>baz",
+ "errors": [
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "main": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "main",
+ "children": [
+ {
+ "text": "bar"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p>foo</p><main>bar<p>baz</p></main></body></html>",
+ "noQuirksBodyHtml": "<p>foo</p><main>bar<p>baz</p></main>"
+ }
+ },
+ {
+ "data": "<!doctype html><main><p>foo</main>bar",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "main": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "main",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><main><p>foo</p></main>bar</body></html>",
+ "noQuirksBodyHtml": "<main><p>foo</p></main>bar"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>xxx<svg><x><g><a><main><b>",
+ "errors": [
+ " * (1,42) unexpected HTML-like start tag token in foreign content",
+ " * (1,42) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg x": true,
+ "svg g": true,
+ "svg a": true,
+ "svg main": true,
+ "b": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "xxx"
+ },
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "x",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "a",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "main",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>xxx<svg><x><g><a><main></main></a></g></x></svg><b></b></body></html>",
+ "noQuirksBodyHtml": "xxx<svg><x><g><a><main><b></b></main></a></g></x></svg>"
+ }
+ }
+ ],
+ "math.dat": [
+ {
+ "data": "<math><tr><td><mo><tr>",
+ "errors": [],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tr": true,
+ "math td": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tr",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "td",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tr><td><mo></mo></td></tr></math>",
+ "noQuirksBodyHtml": "<math><tr><td><mo></mo></td></tr></math>"
+ }
+ },
+ {
+ "data": "<math><tr><td><mo><tr>",
+ "errors": [],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tr": true,
+ "math td": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tr",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "td",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tr><td><mo></mo></td></tr></math>",
+ "noQuirksBodyHtml": "<math><tr><td><mo></mo></td></tr></math>"
+ }
+ },
+ {
+ "data": "<math><thead><mo><tbody>",
+ "errors": [],
+ "fragment": {
+ "name": "thead"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math thead": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "thead",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><thead><mo></mo></thead></math>",
+ "noQuirksBodyHtml": "<math><thead><mo></mo></thead></math>"
+ }
+ },
+ {
+ "data": "<math><tfoot><mo><tbody>",
+ "errors": [],
+ "fragment": {
+ "name": "tfoot"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tfoot": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tfoot",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tfoot><mo></mo></tfoot></math>",
+ "noQuirksBodyHtml": "<math><tfoot><mo></mo></tfoot></math>"
+ }
+ },
+ {
+ "data": "<math><tbody><mo><tfoot>",
+ "errors": [],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tbody": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tbody",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tbody><mo></mo></tbody></math>",
+ "noQuirksBodyHtml": "<math><tbody><mo></mo></tbody></math>"
+ }
+ },
+ {
+ "data": "<math><tbody><mo></table>",
+ "errors": [],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tbody": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tbody",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tbody><mo></mo></tbody></math>",
+ "noQuirksBodyHtml": "<math><tbody><mo></mo></tbody></math>"
+ }
+ },
+ {
+ "data": "<math><thead><mo></table>",
+ "errors": [],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math thead": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "thead",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><thead><mo></mo></thead></math>",
+ "noQuirksBodyHtml": "<math><thead><mo></mo></thead></math>"
+ }
+ },
+ {
+ "data": "<math><tfoot><mo></table>",
+ "errors": [],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "math math": true,
+ "math tfoot": true,
+ "math mo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "tfoot",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<math><tfoot><mo></mo></tfoot></math>",
+ "noQuirksBodyHtml": "<math><tfoot><mo></mo></tfoot></math>"
+ }
+ }
+ ],
+ "menuitem-element.dat": [
+ {
+ "data": "<menuitem>",
+ "errors": [
+ "10: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><menuitem></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem></menuitem>"
+ }
+ },
+ {
+ "data": "</menuitem>",
+ "errors": [
+ "11: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.",
+ "11: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><menuitem>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem>A</menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><menuitem>A<menuitem>B",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ },
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><menuitem>B</menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem>A</menuitem><menuitem>B</menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><menuitem>A<menu>B</menu>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "menu": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ },
+ {
+ "tag": "menu",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><menu>B</menu></body></html>",
+ "noQuirksBodyHtml": "<menuitem>A</menuitem><menu>B</menu>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><menuitem>A<hr>B",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "hr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ },
+ {
+ "tag": "hr"
+ },
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</menuitem><hr>B</body></html>",
+ "noQuirksBodyHtml": "<menuitem>A</menuitem><hr>B"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><li><menuitem><li>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "li": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><li><menuitem></menuitem></li><li></li></body></html>",
+ "noQuirksBodyHtml": "<li><menuitem></menuitem></li><li></li>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><p></menuitem>x",
+ "errors": [
+ "39: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><p>x</p></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem><p>x</p></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><p><b></p><menuitem>",
+ "errors": [
+ "25: End tag “p” seen, but there were open elements.",
+ "21: Unclosed element “b”.",
+ "35: End of file seen and there were open elements."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><b></b></p><b><menuitem></menuitem></b></body></html>",
+ "noQuirksBodyHtml": "<p><b></b></p><b><menuitem></menuitem></b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><asdf></menuitem>x",
+ "errors": [
+ "40: End tag “menuitem” seen, but there were open elements.",
+ "31: Unclosed element “asdf”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "asdf": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "asdf"
+ }
+ ]
+ },
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><asdf></asdf></menuitem>x</body></html>",
+ "noQuirksBodyHtml": "<menuitem><asdf></asdf></menuitem>x"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html></menuitem>",
+ "errors": [
+ "26: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html></menuitem>",
+ "errors": [
+ "26: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><head></menuitem>",
+ "errors": [
+ "26: Stray end tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><menuitem></select>",
+ "errors": [
+ "33: Stray start tag “menuitem”."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><option><menuitem>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "option": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><option><menuitem></menuitem></option></body></html>",
+ "noQuirksBodyHtml": "<option><menuitem></menuitem></option>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><option>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><option></option></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem><option></option></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem></body>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><p>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><p></p></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem><p></p></menuitem>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><menuitem><li>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "menuitem": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "menuitem",
+ "children": [
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><menuitem><li></li></menuitem></body></html>",
+ "noQuirksBodyHtml": "<menuitem><li></li></menuitem>"
+ }
+ }
+ ],
+ "namespace-sensitivity.dat": [
+ {
+ "data": "<body><table><tr><td><svg><td><foreignObject><span></td>Foo",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg td": true,
+ "svg foreignObject": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Foo"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "td",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>Foo<table><tbody><tr><td><svg><td><foreignObject><span></span></foreignObject></td></svg></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "Foo<table><tbody><tr><td><svg><td><foreignObject><span></span></foreignObject></td></svg></td></tr></tbody></table>"
+ }
+ }
+ ],
+ "noscript01.dat": [
+ {
+ "data": "<head><noscript><!doctype html><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 31 Unexpected DOCTYPE. Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><html class=\"foo\"><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 34 html needs to be the first start tag."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "class",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html class=\"foo\"><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript></noscript>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript> </noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": " ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript> </noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript> </noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><!--foo--></noscript>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><basefont><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "basefont": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "basefont"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><basefont><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><basefont><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><bgsound><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "bgsound": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "bgsound"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><bgsound><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><bgsound><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><link><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "link": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "link"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><link><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><link><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><meta><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "meta": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><meta><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><meta><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><noframes>XXX</noscript></noframes></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "noframes": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "XXX</noscript>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><noframes>XXX</noscript></noframes></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><noframes>XXX</noscript></noframes></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><style>XXX</style></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "XXX",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><style>XXX</style></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><style>XXX</style></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript></br><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 21 Element br not allowed in a inhead-noscript context",
+ "Line: 1 Col: 21 Unexpected end tag (br). Treated as br element.",
+ "Line: 1 Col: 42 Unexpected end tag (noscript). Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true,
+ "br": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body><br><!--foo--></body></html>",
+ "noQuirksBodyHtml": "<noscript><br><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><head class=\"foo\"><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 34 Unexpected start tag (head)."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><noscript class=\"foo\"><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 34 Unexpected start tag (noscript)."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><noscript class=\"foo\"><!--foo--></noscript></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript></p><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 20 Unexpected end tag (p). Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--foo--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><p></p><!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript><p><!--foo--></noscript>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 19 Element p not allowed in a inhead-noscript context",
+ "Line: 1 Col: 40 Unexpected end tag (noscript). Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true,
+ "p": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body><p><!--foo--></p></body></html>",
+ "noQuirksBodyHtml": "<noscript><p><!--foo--></p></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript>XXX<!--foo--></noscript></head>",
+ "errors": [
+ "Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.",
+ "Line: 1 Col: 19 Unexpected non-space character. Expected inhead-noscript content",
+ "Line: 1 Col: 30 Unexpected end tag (noscript). Ignored.",
+ "Line: 1 Col: 37 Unexpected end tag (head). Ignored."
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "XXX"
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body>XXX<!--foo--></body></html>",
+ "noQuirksBodyHtml": "<noscript>XXX<!--foo--></noscript>"
+ }
+ },
+ {
+ "data": "<head><noscript>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-tag",
+ "(1,6): eof-in-head-noscript"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript></noscript>"
+ }
+ }
+ ],
+ "pending-spec-changes-plain-text-unsafe.dat": [
+ {
+ "data": "<body><table>\u0000filler\u0000text\u0000",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,14): invalid-codepoint",
+ "(1,14): invalid-codepoint-in-table-text",
+ "(1,21): invalid-codepoint",
+ "(1,21): invalid-codepoint-in-table-text",
+ "(1,26): invalid-codepoint",
+ "(1,26): invalid-codepoint-in-table-text",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): foster-parenting-character-in-table",
+ "(1,26): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "fillertext"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>fillertext<table></table></body></html>",
+ "noQuirksBodyHtml": "fillertext<table></table>"
+ }
+ }
+ ],
+ "pending-spec-changes.dat": [
+ {
+ "data": "<input type=\"hidden\"><frameset>",
+ "errors": [
+ "(1,21): expected-doctype-but-got-start-tag",
+ "(1,31): unexpected-start-tag",
+ "(1,31): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<input type=\"hidden\">"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><caption><svg>foo</table>bar",
+ "errors": [
+ "(1,47): unexpected-end-tag",
+ "(1,47): end-table-tag-in-caption"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg>foo</svg></caption></table>bar</body></html>",
+ "noQuirksBodyHtml": "<table><caption><svg>foo</svg></caption></table>bar"
+ }
+ },
+ {
+ "data": "<table><tr><td><svg><desc><td></desc><circle>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,30): unexpected-cell-end-tag",
+ "(1,37): unexpected-end-tag",
+ "(1,45): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg desc": true,
+ "circle": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "circle"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table>"
+ }
+ }
+ ],
+ "plain-text-unsafe.dat": [
+ {
+ "data": "FOO
ZOO",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,11): illegal-codepoint-for-numeric-entity"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO\rZOO"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO\rZOO</body></html>",
+ "noQuirksBodyHtml": "FOO\rZOO"
+ }
+ },
+ {
+ "data": "<html>\u0000<frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,7): invalid-codepoint",
+ "(1,7): invalid-codepoint-in-body",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html> \u0000 <frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,8): invalid-codepoint",
+ "(1,8): invalid-codepoint-in-body",
+ "(1,19): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<html>a\u0000a<frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,8): invalid-codepoint",
+ "(1,8): invalid-codepoint-in-body",
+ "(1,19): unexpected-start-tag",
+ "(1,30): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "aa"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>aa</body></html>",
+ "noQuirksBodyHtml": "aa"
+ }
+ },
+ {
+ "data": "<html>\u0000\u0000<frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,7): invalid-codepoint",
+ "(1,7): invalid-codepoint-in-body",
+ "(1,8): invalid-codepoint",
+ "(1,8): invalid-codepoint-in-body",
+ "(1,18): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html>\u0000\n <frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,7): invalid-codepoint",
+ "(1,7): invalid-codepoint-in-body",
+ "(2,11): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "\n "
+ }
+ },
+ {
+ "data": "<html><select>\u0000",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,15): invalid-codepoint",
+ "(1,15): invalid-codepoint-in-select",
+ "(1,15): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "\u0000",
+ "errors": [
+ "(1,1): invalid-codepoint",
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,1): invalid-codepoint-in-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body>\u0000",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,7): invalid-codepoint",
+ "(1,7): invalid-codepoint-in-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<plaintext>\u0000filler\u0000text\u0000",
+ "errors": [
+ "(1,11): expected-doctype-but-got-start-tag",
+ "(1,12): invalid-codepoint",
+ "(1,19): invalid-codepoint",
+ "(1,24): invalid-codepoint",
+ "(1,24): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "�filler�text�",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><plaintext>�filler�text�</plaintext></body></html>",
+ "noQuirksBodyHtml": "<plaintext>�filler�text�</plaintext>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[\u0000filler\u0000text\u0000]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,30): invalid-codepoint",
+ "(1,30): invalid-codepoint",
+ "(1,30): invalid-codepoint",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�filler�text�"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�filler�text�</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�filler�text�</svg>"
+ }
+ },
+ {
+ "data": "<body><!\u0000>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,8): expected-dashes-or-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "comment": "�"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><!--�--></body></html>",
+ "noQuirksBodyHtml": "<!--�-->"
+ }
+ },
+ {
+ "data": "<body><!\u0000filler\u0000text>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,8): expected-dashes-or-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "comment": "�filler�text"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><!--�filler�text--></body></html>",
+ "noQuirksBodyHtml": "<!--�filler�text-->"
+ }
+ },
+ {
+ "data": "<body><svg><foreignObject>\u0000filler\u0000text",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,34): invalid-codepoint",
+ "(1,34): invalid-codepoint-in-body",
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "fillertext"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><foreignObject>fillertext</foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject>fillertext</foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000filler\u0000text",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,13): invalid-codepoint",
+ "(1,13): invalid-codepoint-in-foreign-content",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�filler�text"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�filler�text</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�filler�text</svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000<frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�"
+ },
+ {
+ "tag": "frameset",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�<frameset></frameset></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�<frameset></frameset></svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000 <frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "� "
+ },
+ {
+ "tag": "frameset",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>� <frameset></frameset></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>� <frameset></frameset></svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000a<frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�a"
+ },
+ {
+ "tag": "frameset",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�a<frameset></frameset></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�a<frameset></frameset></svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000</svg><frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,22): unexpected-start-tag",
+ "(1,22): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg>�</svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000 </svg><frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,23): unexpected-start-tag",
+ "(1,23): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg>� </svg>"
+ }
+ },
+ {
+ "data": "<svg>\u0000a</svg><frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,6): invalid-codepoint",
+ "(1,6): invalid-codepoint-in-foreign-content",
+ "(1,23): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "�a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>�a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>�a</svg>"
+ }
+ },
+ {
+ "data": "<svg><path></path></svg><frameset>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,34): unexpected-start-tag",
+ "(1,34): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg><path></path></svg>"
+ }
+ },
+ {
+ "data": "<svg><p><frameset>",
+ "errors": [
+ "(1, 5) expected-doctype-but-got-start-tag",
+ "(1, 8) unexpected-html-element-in-foreign-content",
+ "(1, 18) unexpected-start-tag",
+ "(1, 18) eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg><p><frameset></frameset></p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><pre>\r\n\r\nA</pre>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "\nA"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>\nA</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><pre>\r\rA</pre>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "\nA"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>\nA</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><pre>\rA</pre>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>A</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>A</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td><math><mtext>\u0000a",
+ "errors": [
+ "(1,44): invalid-codepoint",
+ "(1,44): invalid-codepoint-in-body",
+ "(1,45): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "math math": true,
+ "math mtext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mtext>a</mtext></math></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><math><mtext>a</mtext></math></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td><svg><foreignObject>\u0000a",
+ "errors": [
+ "(1,51): invalid-codepoint",
+ "(1,51): invalid-codepoint-in-body",
+ "(1,52): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg foreignObject": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><foreignObject>a</foreignObject></svg></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><foreignObject>a</foreignObject></svg></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mi>a\u0000b",
+ "errors": [
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>ab</mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi>ab</mi></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mo>a\u0000b",
+ "errors": [
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mo": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mo>ab</mo></math></body></html>",
+ "noQuirksBodyHtml": "<math><mo>ab</mo></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mn>a\u0000b",
+ "errors": [
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mn": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mn>ab</mn></math></body></html>",
+ "noQuirksBodyHtml": "<math><mn>ab</mn></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><ms>a\u0000b",
+ "errors": [
+ "(1,27): invalid-codepoint",
+ "(1,27): invalid-codepoint-in-body",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math ms": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><ms>ab</ms></math></body></html>",
+ "noQuirksBodyHtml": "<math><ms>ab</ms></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mtext>a\u0000b",
+ "errors": [
+ "(1,30): invalid-codepoint",
+ "(1,30): invalid-codepoint-in-body",
+ "(1,31): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "ab"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mtext>ab</mtext></math></body></html>",
+ "noQuirksBodyHtml": "<math><mtext>ab</mtext></math>"
+ }
+ }
+ ],
+ "ruby.dat": [
+ {
+ "data": "<html><ruby>a<rb>b<rb></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rb"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rb></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rb></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<rtc></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "rtc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rtc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rtc></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rtc></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<rp></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rp></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rp></rp></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<span></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,31): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b<span></span></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b<span></span></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rb></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rb"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rb></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rb></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rtc></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true,
+ "rtc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rtc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rtc></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rtc></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rp></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rp></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rp></rp></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<span></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,31): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b<span></span></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b<span></span></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rb></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rb"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b</rtc><rb></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b</rtc><rb></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rt>c<rt>d</ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b<rt>c</rt><rt>d</rt></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b<rt>c</rt><rt>d</rt></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rtc></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rtc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b</rtc><rtc></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b</rtc><rtc></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rp></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b<rp></rp></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b<rp></rp></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<span></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b<span></span></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b<span></span></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rb></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rb"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rb></rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rb></rb></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rtc></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "rtc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rtc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rtc></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rtc></rtc></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rp></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rp></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rp></rp></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<span></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,31): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b<span></span></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b<span></span></rp></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby><rtc><ruby>a<rb>b<rt></ruby></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rb": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby><rtc><ruby>a<rb>b</rb><rt></rt></ruby></rtc></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><rtc><ruby>a<rb>b</rb><rt></rt></ruby></rtc></ruby>"
+ }
+ }
+ ],
+ "scriptdata01.dat": [
+ {
+ "data": "FOO<script>'Hello'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'Hello'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'Hello'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'Hello'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script></script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script></script >BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script></script/>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,21): self-closing-flag-on-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script></script/ >BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,20): unexpected-character-after-solidus-in-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\"></scriptx>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,42): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "</scriptx>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\"></scriptx>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\"></scriptx>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script></script foo=\">\" dd>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,31): attributes-in-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script"
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script></script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!--'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!--'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!--'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!--'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!---'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!---'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!---'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!---'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-->'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-->'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-->'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-->'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-->'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-->'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-->'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-->'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-- potato'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-- potato'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-- potato'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-- potato'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-- <sCrIpt'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-- <sCrIpt'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-- <sCrIpt'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,56): expected-script-data-but-got-eof",
+ "(1,56): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt>'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,58): expected-script-data-but-got-eof",
+ "(1,58): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> -'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,59): expected-script-data-but-got-eof",
+ "(1,59): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> --'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script>'<!-- <sCrIpt> -->'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> -->'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script>'<!-- <sCrIpt> -->'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script>'<!-- <sCrIpt> -->'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,61): expected-script-data-but-got-eof",
+ "(1,61): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> --!>'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,61): expected-script-data-but-got-eof",
+ "(1,61): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt> -- >'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,56): expected-script-data-but-got-eof",
+ "(1,56): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt '</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars",
+ "(1,56): expected-script-data-but-got-eof",
+ "(1,56): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt/'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script></body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt\\'",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "BAR"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR</body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR"
+ }
+ },
+ {
+ "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/plain"
+ }
+ ],
+ "children": [
+ {
+ "text": "'<!-- <sCrIpt/'</script>BAR",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "QUX"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX</body></html>",
+ "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX"
+ }
+ },
+ {
+ "data": "FOO<script><!--<script>-></script>--></script>QUX",
+ "errors": [
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "FOO"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script>-></script>-->",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "QUX"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>FOO<script><!--<script>-></script>--></script>QUX</body></html>",
+ "noQuirksBodyHtml": "FOO<script><!--<script>-></script>--></script>QUX"
+ }
+ }
+ ],
+ "tables01.dat": [
+ {
+ "data": "<table><th>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "th": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "th"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><th></th></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><th></th></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><col foo='bar'>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><col foo=\"bar\"></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><col foo=\"bar\"></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup></html>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,27): foster-parenting-character-in-table",
+ "(1,27): foster-parenting-character-in-table",
+ "(1,27): foster-parenting-character-in-table",
+ "(1,27): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>foo<table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "foo<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table></table><p>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table></table><p>foo</p></body></html>",
+ "noQuirksBodyHtml": "<table></table><p>foo</p>"
+ }
+ },
+ {
+ "data": "<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,30): unexpected-end-tag",
+ "(1,41): unexpected-end-tag",
+ "(1,48): unexpected-end-tag",
+ "(1,56): unexpected-end-tag",
+ "(1,61): unexpected-end-tag",
+ "(1,69): unexpected-end-tag",
+ "(1,74): unexpected-end-tag",
+ "(1,82): unexpected-end-tag",
+ "(1,87): unexpected-end-tag",
+ "(1,91): unexpected-cell-in-table-body",
+ "(1,91): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><select><option>3</select></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option>3</option></select><table></table></body></html>",
+ "noQuirksBodyHtml": "<select><option>3</option></select><table></table>"
+ }
+ },
+ {
+ "data": "<table><select><table></table></select></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-table-voodoo",
+ "(1,22): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,22): unexpected-start-tag-implies-end-tag",
+ "(1,39): unexpected-end-tag",
+ "(1,47): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select><table></table><table></table></body></html>",
+ "noQuirksBodyHtml": "<select></select><table></table><table></table>"
+ }
+ },
+ {
+ "data": "<table><select></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-table-voodoo",
+ "(1,23): unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select><table></table></body></html>",
+ "noQuirksBodyHtml": "<select></select><table></table>"
+ }
+ },
+ {
+ "data": "<table><select><option>A<tr><td>B</td></tr></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-table-voodoo",
+ "(1,28): unexpected-table-element-start-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option>A</option></select><table><tbody><tr><td>B</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select><option>A</option></select><table><tbody><tr><td>B</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td></body></caption></col></colgroup></html>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,18): unexpected-end-tag",
+ "(1,28): unexpected-end-tag",
+ "(1,34): unexpected-end-tag",
+ "(1,45): unexpected-end-tag",
+ "(1,52): unexpected-end-tag",
+ "(1,55): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>foo</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>foo</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td>A</table>B",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table>B</body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>B"
+ }
+ },
+ {
+ "data": "<table><tr><caption>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "caption": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "caption"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr></tr></tbody><caption></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody><caption></caption></table>"
+ }
+ },
+ {
+ "data": "<table><tr></body></caption></col></colgroup></html></td></th><td>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-end-tag-in-table-row",
+ "(1,28): unexpected-end-tag-in-table-row",
+ "(1,34): unexpected-end-tag-in-table-row",
+ "(1,45): unexpected-end-tag-in-table-row",
+ "(1,52): unexpected-end-tag-in-table-row",
+ "(1,57): unexpected-end-tag-in-table-row",
+ "(1,62): unexpected-end-tag-in-table-row",
+ "(1,69): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>foo</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>foo</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td><tr>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,15): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td><button><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,23): unexpected-cell-end-tag",
+ "(1,23): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "button"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><button></button></td><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><button></button></td><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tr><td><svg><desc><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,30): unexpected-cell-end-tag",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg desc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td></td></tr></tbody></table>"
+ }
+ }
+ ],
+ "template.dat": [
+ {
+ "data": "<body><template>Hello</template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template>Hello</template></body></html>",
+ "noQuirksBodyHtml": "<template>Hello</template>"
+ }
+ },
+ {
+ "data": "<template>Hello</template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template>Hello</template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template>Hello</template>"
+ }
+ },
+ {
+ "data": "<template></template><div></div>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template></template></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<template></template><div></div>"
+ }
+ },
+ {
+ "data": "<html><template>Hello</template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template>Hello</template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template>Hello</template>"
+ }
+ },
+ {
+ "data": "<head><template><div></div></template></head>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><div></div></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><div></div></template>"
+ }
+ },
+ {
+ "data": "<div><template><div><span></template><b>",
+ "errors": [
+ " * (1,6) missing DOCTYPE",
+ " * (1,38) mismatched template end tag",
+ " * (1,41) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "template": true,
+ "span": true,
+ "b": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><template><div><span></span></div></template><b></b></div></body></html>",
+ "noQuirksBodyHtml": "<div><template><div><span></span></div></template><b></b></div>"
+ }
+ },
+ {
+ "data": "<div><template></div>Hello",
+ "errors": [
+ " * (1,6) missing DOCTYPE",
+ " * (1,22) unexpected token in template",
+ " * (1,27) unexpected end of file in template",
+ " * (1,27) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><template>Hello</template></div></body></html>",
+ "noQuirksBodyHtml": "<div><template>Hello</template></div>"
+ }
+ },
+ {
+ "data": "<div></template></div>",
+ "errors": [
+ " * (1,6) missing DOCTYPE",
+ " * (1,17) unexpected template end tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><template></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template></template></table>"
+ }
+ },
+ {
+ "data": "<table><template></template></div>",
+ "errors": [
+ " * (1,8) missing DOCTYPE",
+ " * (1,35) unexpected token in table - foster parenting",
+ " * (1,35) unexpected end tag",
+ " * (1,35) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template></template></table>"
+ }
+ },
+ {
+ "data": "<table><div><template></template></div>",
+ "errors": [
+ " * (1,8) missing DOCTYPE",
+ " * (1,13) unexpected token in table - foster parenting",
+ " * (1,40) unexpected token in table - foster parenting",
+ " * (1,40) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "template": true,
+ "table": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><template></template></div><table></table></body></html>",
+ "noQuirksBodyHtml": "<div><template></template></div><table></table>"
+ }
+ },
+ {
+ "data": "<table><template></template><div></div>",
+ "errors": [
+ "no doctype",
+ "bad div in table",
+ "bad /div in table",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "table": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div><table><template></template></table></body></html>",
+ "noQuirksBodyHtml": "<div></div><table><template></template></table>"
+ }
+ },
+ {
+ "data": "<table> <template></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table> <template></template></table></body></html>",
+ "noQuirksBodyHtml": "<table> <template></template></table>"
+ }
+ },
+ {
+ "data": "<table><tbody><template></template></tbody>",
+ "errors": [
+ "no doctype",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tbody><template></tbody></template>",
+ "errors": [
+ "no doctype",
+ "bad /tbody",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tbody><template></template></tbody></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><thead><template></template></thead>",
+ "errors": [
+ "no doctype",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "thead": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><thead><template></template></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><thead><template></template></thead></table>"
+ }
+ },
+ {
+ "data": "<table><tfoot><template></template></tfoot>",
+ "errors": [
+ "no doctype",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tfoot": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tfoot",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tfoot><template></template></tfoot></table></body></html>",
+ "noQuirksBodyHtml": "<table><tfoot><template></template></tfoot></table>"
+ }
+ },
+ {
+ "data": "<select><template></template></select>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><template></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><template></template></select>"
+ }
+ },
+ {
+ "data": "<select><template><option></option></template></select>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "template": true,
+ "option": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><template><option></option></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><template><option></option></template></select>"
+ }
+ },
+ {
+ "data": "<template><option></option></select><option></option></template>",
+ "errors": [
+ "no doctype",
+ "bad /select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "option": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><option></option><option></option></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><option></option><option></option></template>"
+ }
+ },
+ {
+ "data": "<select><template></template><option></select>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "template": true,
+ "option": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><template></template><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><template></template><option></option></select>"
+ }
+ },
+ {
+ "data": "<select><option><template></template></select>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option><template></template></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option><template></template></option></select>"
+ }
+ },
+ {
+ "data": "<select><template>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><template></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><template></template></select>"
+ }
+ },
+ {
+ "data": "<select><option></option><template>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option></option><template></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option><template></template></select>"
+ }
+ },
+ {
+ "data": "<select><option></option><template><option>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option></option><template><option></option></template></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option><template><option></option></template></select>"
+ }
+ },
+ {
+ "data": "<table><thead><template><td></template></table>",
+ "errors": [
+ " * (1,8) missing DOCTYPE"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "thead": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><thead><template><td></td></template></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><thead><template><td></td></template></thead></table>"
+ }
+ },
+ {
+ "data": "<table><template><thead></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "thead": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><thead></thead></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><thead></thead></template></table>"
+ }
+ },
+ {
+ "data": "<body><table><template><td></tr><div></template></table>",
+ "errors": [
+ "no doctype",
+ "bad </tr>",
+ "missing </div>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "td": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><td><div></div></td></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><td><div></div></td></template></table>"
+ }
+ },
+ {
+ "data": "<table><template><thead></template></thead></table>",
+ "errors": [
+ "no doctype",
+ "bad /thead after /template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "thead": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><thead></thead></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><thead></thead></template></table>"
+ }
+ },
+ {
+ "data": "<table><thead><template><tr></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "thead": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><thead><template><tr></tr></template></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><thead><template><tr></tr></template></thead></table>"
+ }
+ },
+ {
+ "data": "<table><template><tr></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><tr></tr></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><tr></tr></template></table>"
+ }
+ },
+ {
+ "data": "<table><tr><template><td>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><template><td></td></template></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><template><td></td></template></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><template><tr><template><td></template></tr></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><tr><template><td></td></template></tr></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><tr><template><td></td></template></tr></template></table>"
+ }
+ },
+ {
+ "data": "<table><template><tr><template><td></td></template></tr></template></table>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><tr><template><td></td></template></tr></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><tr><template><td></td></template></tr></template></table>"
+ }
+ },
+ {
+ "data": "<table><template><td></template>",
+ "errors": [
+ "no doctype",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><template><td></td></template></table></body></html>",
+ "noQuirksBodyHtml": "<table><template><td></td></template></table>"
+ }
+ },
+ {
+ "data": "<body><template><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><template><tr></tr></template><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><template><tr></tr></template><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><template><tr></tr></template><td></td></template>"
+ }
+ },
+ {
+ "data": "<table><colgroup><template><col>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><template><col></template></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><template><col></template></colgroup></table>"
+ }
+ },
+ {
+ "data": "<frameset><template><frame></frame></template></frameset>",
+ "errors": [
+ " * (1,11) missing DOCTYPE",
+ " * (1,21) unexpected start tag token",
+ " * (1,36) unexpected end tag token",
+ " * (1,47) unexpected end tag token"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<template><frame></frame></frameset><frame></frame></template>",
+ "errors": [
+ " * (1,11) missing DOCTYPE",
+ " * (1,18) unexpected start tag",
+ " * (1,26) unexpected end tag",
+ " * (1,37) unexpected end tag",
+ " * (1,44) unexpected start tag",
+ " * (1,52) unexpected end tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<template><div><frameset><span></span></div><span></span></template>",
+ "errors": [
+ "no doctype",
+ "bad frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "span": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><div><span></span></div><span></span></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><div><span></span></div><span></span></template>"
+ }
+ },
+ {
+ "data": "<body><template><div><frameset><span></span></div><span></span></template></body>",
+ "errors": [
+ "no doctype",
+ "bad frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "div": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><div><span></span></div><span></span></template></body></html>",
+ "noQuirksBodyHtml": "<template><div><span></span></div><span></span></template>"
+ }
+ },
+ {
+ "data": "<body><template><script>var i = 1;</script><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "script": true,
+ "td": true
+ },
+ "template": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "var i = 1;",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><script>var i = 1;</script><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><script>var i = 1;</script><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr><div></div></tr></template>",
+ "errors": [
+ "no doctype",
+ "foster-parented div",
+ "foster-parented /div"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><div></div></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><div></div></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr><td></td></template>",
+ "errors": [
+ "no doctype",
+ "unexpected <td>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><tr><td></td></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><tr><td></td></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td></tr><td></td></template>",
+ "errors": [
+ "no doctype",
+ "bad </tr>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td><tbody><td></td></template>",
+ "errors": [
+ "no doctype",
+ "bad <tbody>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td><caption></caption><td></td></template>",
+ "errors": [
+ " * (1,7) missing DOCTYPE",
+ " * (1,35) unexpected start tag in table row",
+ " * (1,45) unexpected end tag in table row"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td><colgroup></caption><td></td></template>",
+ "errors": [
+ " * (1,7) missing DOCTYPE",
+ " * (1,36) unexpected start tag in table row",
+ " * (1,46) unexpected end tag in table row"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><td></td></table><td></td></template>",
+ "errors": [
+ "no doctype",
+ "bad </table>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr><tbody><tr></tr></template>",
+ "errors": [
+ "no doctype",
+ "bad <tbody>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr><caption><tr></tr></template>",
+ "errors": [
+ "no doctype",
+ "bad <caption>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr></table><tr></tr></template>",
+ "errors": [
+ "no doctype",
+ "bad </table>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><thead></thead><caption></caption><tbody></tbody></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "thead": true,
+ "caption": true,
+ "tbody": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ },
+ {
+ "tag": "caption"
+ },
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><thead></thead><caption></caption><tbody></tbody></template></body></html>",
+ "noQuirksBodyHtml": "<template><thead></thead><caption></caption><tbody></tbody></template>"
+ }
+ },
+ {
+ "data": "<body><template><thead></thead></table><tbody></tbody></template></body>",
+ "errors": [
+ "no doctype",
+ "bad </table>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "thead": true,
+ "tbody": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ },
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><thead></thead><tbody></tbody></template></body></html>",
+ "noQuirksBodyHtml": "<template><thead></thead><tbody></tbody></template>"
+ }
+ },
+ {
+ "data": "<body><template><div><tr></tr></div></template>",
+ "errors": [
+ "no doctype",
+ "bad tr",
+ "bad /tr"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><div></div></template></body></html>",
+ "noQuirksBodyHtml": "<template><div></div></template>"
+ }
+ },
+ {
+ "data": "<body><template><em>Hello</em></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "em": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><em>Hello</em></template></body></html>",
+ "noQuirksBodyHtml": "<template><em>Hello</em></template>"
+ }
+ },
+ {
+ "data": "<body><template><!--comment--></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true
+ },
+ "template": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "comment": "comment"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><!--comment--></template></body></html>",
+ "noQuirksBodyHtml": "<template><!--comment--></template>"
+ }
+ },
+ {
+ "data": "<body><template><style></style><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "style": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "style"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><style></style><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><style></style><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><meta><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "meta": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><meta><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><meta><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><link><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "link": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "link"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><link><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><link><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><template><template><tr></tr></template><td></td></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><template><tr></tr></template><td></td></template></body></html>",
+ "noQuirksBodyHtml": "<template><template><tr></tr></template><td></td></template>"
+ }
+ },
+ {
+ "data": "<body><table><colgroup><template><col></col></template></colgroup></table></body>",
+ "errors": [
+ "no doctype",
+ "bad /col"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><template><col></template></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><template><col></template></colgroup></table>"
+ }
+ },
+ {
+ "data": "<body a=b><template><div></div><body c=d><div></div></body></template></body>",
+ "errors": [
+ "no doctype",
+ "bad <body>",
+ "bad </body>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body a=\"b\"><template><div></div><div></div></template></body></html>",
+ "noQuirksBodyHtml": "<template><div></div><div></div></template>"
+ }
+ },
+ {
+ "data": "<html a=b><template><div><html b=c><span></template>",
+ "errors": [
+ "no doctype",
+ "bad <html>",
+ "missing end tags in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "span": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html a=\"b\"><head><template><div><span></span></div></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><div><span></span></div></template>"
+ }
+ },
+ {
+ "data": "<html a=b><template><col></col><html b=c><col></col></template>",
+ "errors": [
+ "no doctype",
+ "bad /col",
+ "bad html",
+ "bad /col"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "col": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ },
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html a=\"b\"><head><template><col><col></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><col><col></template>"
+ }
+ },
+ {
+ "data": "<html a=b><template><frame></frame><html b=c><frame></frame></template>",
+ "errors": [
+ "no doctype",
+ "bad frame",
+ "bad /frame",
+ "bad html",
+ "bad frame",
+ "bad /frame"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html a=\"b\"><head><template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<body><template><tr></tr><template></template><td></td></template>",
+ "errors": [
+ "no doctype",
+ "unexpected <td>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><tr></tr><template></template><tr><td></td></tr></template></body></html>",
+ "noQuirksBodyHtml": "<template><tr></tr><template></template><tr><td></td></tr></template>"
+ }
+ },
+ {
+ "data": "<body><template><thead></thead><template><tr></tr></template><tr></tr><tfoot></tfoot></template>",
+ "errors": [
+ "no doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "thead": true,
+ "tr": true,
+ "tbody": true,
+ "tfoot": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "thead"
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "tfoot"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><thead></thead><template><tr></tr></template><tbody><tr></tr></tbody><tfoot></tfoot></template></body></html>",
+ "noQuirksBodyHtml": "<template><thead></thead><template><tr></tr></template><tbody><tr></tr></tbody><tfoot></tfoot></template>"
+ }
+ },
+ {
+ "data": "<body><template><template><b><template></template></template>text</template>",
+ "errors": [
+ "no doctype",
+ "missing </b>"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "b": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "text"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><template><b><template></template></b></template>text</template></body></html>",
+ "noQuirksBodyHtml": "<template><template><b><template></template></b></template>text</template>"
+ }
+ },
+ {
+ "data": "<body><template><col><colgroup>",
+ "errors": [
+ "no doctype",
+ "bad colgroup",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col></colgroup>",
+ "errors": [
+ "no doctype",
+ "bogus /colgroup",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col><colgroup></template></body>",
+ "errors": [
+ "no doctype",
+ "bad colgroup"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col><div>",
+ "errors": [
+ " * (1,7) missing DOCTYPE",
+ " * (1,27) unexpected token",
+ " * (1,27) unexpected end of file in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col></div>",
+ "errors": [
+ "no doctype",
+ "bad /div",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><col>Hello",
+ "errors": [
+ "no doctype",
+ "unexpected text",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "col": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><col></template></body></html>",
+ "noQuirksBodyHtml": "<template><col></template>"
+ }
+ },
+ {
+ "data": "<body><template><i><menu>Foo</i>",
+ "errors": [
+ "no doctype",
+ "mising /menu",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "i": true,
+ "menu": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "menu",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><i></i><menu><i>Foo</i></menu></template></body></html>",
+ "noQuirksBodyHtml": "<template><i></i><menu><i>Foo</i></menu></template>"
+ }
+ },
+ {
+ "data": "<body><template></div><div>Foo</div><template></template><tr></tr>",
+ "errors": [
+ "no doctype",
+ "bogus /div",
+ "bogus tr",
+ "bogus /tr",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true,
+ "div": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ },
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template><div>Foo</div><template></template></template></body></html>",
+ "noQuirksBodyHtml": "<template><div>Foo</div><template></template></template>"
+ }
+ },
+ {
+ "data": "<body><div><template></div><tr><td>Foo</td></tr></template>",
+ "errors": [
+ " * (1,7) missing DOCTYPE",
+ " * (1,28) unexpected token in template",
+ " * (1,60) unexpected end of file"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "template": true,
+ "tr": true,
+ "td": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><template><tr><td>Foo</td></tr></template></div></body></html>",
+ "noQuirksBodyHtml": "<div><template><tr><td>Foo</td></tr></template></div>"
+ }
+ },
+ {
+ "data": "<template></figcaption><sub><table></table>",
+ "errors": [
+ "no doctype",
+ "bad /figcaption",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "sub": true,
+ "table": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "sub",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><sub><table></table></sub></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><sub><table></table></sub></template>"
+ }
+ },
+ {
+ "data": "<template><template>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template></template></template>"
+ }
+ },
+ {
+ "data": "<template><div>",
+ "errors": [
+ "no doctype",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><div></div></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><div></div></template>"
+ }
+ },
+ {
+ "data": "<template><template><div>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "div": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><div></div></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><div></div></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><table>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "table": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><table></table></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><table></table></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><tbody>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "tbody": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><tbody></tbody></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><tbody></tbody></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><tr>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "tr": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><tr></tr></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><tr></tr></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><td>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "td": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><td></td></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><td></td></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><caption>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "caption": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "caption"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><caption></caption></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><caption></caption></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><colgroup>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "colgroup": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><colgroup></colgroup></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><colgroup></colgroup></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><col>",
+ "errors": [
+ "no doctype",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "col": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><col></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><col></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><tbody><select>",
+ "errors": [
+ " * (1,11) missing DOCTYPE",
+ " * (1,36) unexpected token in table - foster parenting",
+ " * (1,36) unexpected end of file in template",
+ " * (1,36) unexpected end of file in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "tbody": true,
+ "select": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "tbody"
+ },
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><tbody></tbody><select></select></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><tbody></tbody><select></select></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><table>Foo",
+ "errors": [
+ "no doctype",
+ "foster-parenting text F",
+ "foster-parenting text o",
+ "foster-parenting text o",
+ "eof",
+ "eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "table": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Foo"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template>Foo<table></table></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template>Foo<table></table></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><frame>",
+ "errors": [
+ "no doctype",
+ "bad tag",
+ "eof",
+ "eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><script>var i",
+ "errors": [
+ "no doctype",
+ "eof in script",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "script": true,
+ "body": true
+ },
+ "template": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "var i",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><script>var i</script></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><script>var i</script></template></template>"
+ }
+ },
+ {
+ "data": "<template><template><style>var i",
+ "errors": [
+ "no doctype",
+ "eof in style",
+ "eof in template",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "style": true,
+ "body": true
+ },
+ "template": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "var i",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><template><style>var i</style></template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><template><style>var i</style></template></template>"
+ }
+ },
+ {
+ "data": "<template><table></template><body><span>Foo",
+ "errors": [
+ "no doctype",
+ "missing /table",
+ "bad eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "table": true,
+ "body": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><table></table></template></head><body><span>Foo</span></body></html>",
+ "noQuirksBodyHtml": "<template><table></table></template><span>Foo</span>"
+ }
+ },
+ {
+ "data": "<template><td></template><body><span>Foo",
+ "errors": [
+ "no doctype",
+ "bad eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "td": true,
+ "body": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><td></td></template></head><body><span>Foo</span></body></html>",
+ "noQuirksBodyHtml": "<template><td></td></template><span>Foo</span>"
+ }
+ },
+ {
+ "data": "<template><object></template><body><span>Foo",
+ "errors": [
+ "no doctype",
+ "missing /object",
+ "bad eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "object": true,
+ "body": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "object"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><object></object></template></head><body><span>Foo</span></body></html>",
+ "noQuirksBodyHtml": "<template><object></object></template><span>Foo</span>"
+ }
+ },
+ {
+ "data": "<template><svg><template>",
+ "errors": [
+ "no doctype",
+ "eof in template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "svg svg": true,
+ "svg template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "template",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><svg><template></template></svg></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><svg><template></template></svg></template>"
+ }
+ },
+ {
+ "data": "<template><svg><foo><template><foreignObject><div></template><div>",
+ "errors": [
+ "no doctype",
+ "ugly template closure",
+ "bad eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "svg svg": true,
+ "svg foo": true,
+ "svg template": true,
+ "svg foreignObject": true,
+ "div": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foo",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "template",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><svg><foo><template><foreignObject><div></div></foreignObject></template></foo></svg></template></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<template><svg><foo><template><foreignObject><div></div></foreignObject></template></foo></svg></template><div></div>"
+ }
+ },
+ {
+ "data": "<dummy><template><span></dummy>",
+ "errors": [
+ "no doctype",
+ "bad end tag </dummy>",
+ "eof in template",
+ "eof in dummy"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dummy": true,
+ "template": true,
+ "span": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dummy",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><dummy><template><span></span></template></dummy></body></html>",
+ "noQuirksBodyHtml": "<dummy><template><span></span></template></dummy>"
+ }
+ },
+ {
+ "data": "<body><table><tr><td><select><template>Foo</template><caption>A</table>",
+ "errors": [
+ "no doctype",
+ "(1,62): unexpected-caption-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "select": true,
+ "template": true,
+ "caption": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><select><template>Foo</template></select></td></tr></tbody><caption>A</caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><select><template>Foo</template></select></td></tr></tbody><caption>A</caption></table>"
+ }
+ },
+ {
+ "data": "<body></body><template>",
+ "errors": [
+ "no doctype",
+ "(1,23): template-after-body",
+ "(1,24): eof-in-template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "template": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><template></template></body></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<head></head><template>",
+ "errors": [
+ "no doctype",
+ "(1,23): template-after-head",
+ "(1,24): eof-in-template"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template></template>"
+ }
+ },
+ {
+ "data": "<head></head><template>Foo</template>",
+ "errors": [
+ "no doctype",
+ "(1,23): template-after-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "text": "Foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template>Foo</template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template>Foo</template>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML><dummy><table><template><table><template><table><script>",
+ "errors": [
+ "eof script",
+ "eof template",
+ "eof template",
+ "eof table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dummy": true,
+ "table": true,
+ "template": true,
+ "script": true
+ },
+ "doctype": true,
+ "template": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dummy",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dummy><table><template><table><template><table><script></script></table></template></table></template></table></dummy></body></html>",
+ "noQuirksBodyHtml": "<dummy><table><template><table><template><table><script></script></table></template></table></template></table></dummy>"
+ }
+ },
+ {
+ "data": "<template><a><table><a>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "template": true,
+ "a": true,
+ "table": true,
+ "body": true
+ },
+ "template": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "template",
+ "children": [
+ {
+ "content": true,
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><template><a><a></a><table></table></a></template></head><body></body></html>",
+ "noQuirksBodyHtml": "<template><a><a></a><table></table></a></template>"
+ }
+ }
+ ],
+ "tests1.dat": [
+ {
+ "data": "Test",
+ "errors": [
+ "(1,0): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Test"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>Test</body></html>",
+ "noQuirksBodyHtml": "Test"
+ }
+ },
+ {
+ "data": "<p>One<p>Two",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "One"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "Two"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p>One</p><p>Two</p></body></html>",
+ "noQuirksBodyHtml": "<p>One</p><p>Two</p>"
+ }
+ },
+ {
+ "data": "Line1<br>Line2<br>Line3<br>Line4",
+ "errors": [
+ "(1,0): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Line1"
+ },
+ {
+ "tag": "br"
+ },
+ {
+ "text": "Line2"
+ },
+ {
+ "tag": "br"
+ },
+ {
+ "text": "Line3"
+ },
+ {
+ "tag": "br"
+ },
+ {
+ "text": "Line4"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>Line1<br>Line2<br>Line3<br>Line4</body></html>",
+ "noQuirksBodyHtml": "Line1<br>Line2<br>Line3<br>Line4"
+ }
+ },
+ {
+ "data": "<html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<head>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></head>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></head><body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></head><body></body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head><body></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><head><body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<head></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</head>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</body>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag element."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</html>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag element."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<b><table><td><i></table>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,25): unexpected-cell-end-tag",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+ "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+ }
+ },
+ {
+ "data": "<b><table><td></b><i></table>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,18): unexpected-end-tag",
+ "(1,29): unexpected-cell-end-tag",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table>X</b></body></html>",
+ "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table>X</b>"
+ }
+ },
+ {
+ "data": "<h1>Hello<h2>World",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-start-tag",
+ "(1,18): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h1": true,
+ "h2": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h1",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ },
+ {
+ "tag": "h2",
+ "children": [
+ {
+ "text": "World"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><h1>Hello</h1><h2>World</h2></body></html>",
+ "noQuirksBodyHtml": "<h1>Hello</h1><h2>World</h2>"
+ }
+ },
+ {
+ "data": "<a><p>X<a>Y</a>Z</p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-start-tag-implies-end-tag",
+ "(1,10): adoption-agency-1.3",
+ "(1,24): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "Y"
+ }
+ ]
+ },
+ {
+ "text": "Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><p><a>X</a><a>Y</a>Z</p></body></html>",
+ "noQuirksBodyHtml": "<a></a><p><a>X</a><a>Y</a>Z</p>"
+ }
+ },
+ {
+ "data": "<b><button>foo</b>bar",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,18): adoption-agency-1.3",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><button><b>foo</b>bar</button></body></html>",
+ "noQuirksBodyHtml": "<b></b><button><b>foo</b>bar</button>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><span><button>foo</span>bar",
+ "errors": [
+ "(1,39): unexpected-end-tag",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "span": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "text": "foobar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><span><button>foobar</button></span></body></html>",
+ "noQuirksBodyHtml": "<span><button>foobar</button></span>"
+ }
+ },
+ {
+ "data": "<p><b><div><marquee></p></b></div>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,28): unexpected-end-tag",
+ "(1,34): end-tag-too-early",
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "div": true,
+ "marquee": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "marquee",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b></b></p><div><b><marquee><p></p>X</marquee></b></div></body></html>",
+ "noQuirksBodyHtml": "<p><b></b></p><div><b><marquee><p></p>X</marquee></b></div>"
+ }
+ },
+ {
+ "data": "<script><div></script></div><title><p></title><p><p>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,28): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "title": true,
+ "body": true,
+ "p": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<div>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<p>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><div></script><title><p></title></head><body><p></p><p></p></body></html>",
+ "noQuirksBodyHtml": "<script><div></script><title><p></title><p></p><p></p>"
+ }
+ },
+ {
+ "data": "<!--><div>--<!-->",
+ "errors": [
+ "(1,5): incorrect-comment",
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,17): incorrect-comment",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "--"
+ },
+ {
+ "comment": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!----><html><head></head><body><div>--<!----></div></body></html>",
+ "noQuirksBodyHtml": "<!----><div>--<!----></div>"
+ }
+ },
+ {
+ "data": "<p><hr></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "hr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "hr"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p></p><hr><p></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><hr><p></p>"
+ }
+ },
+ {
+ "data": "<select><b><option><select><option></b></select>X",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-start-tag-in-select",
+ "(1,27): unexpected-select-in-select",
+ "(1,39): unexpected-end-tag",
+ "(1,48): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option></option></select><option>X</option></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select><option>X</option>"
+ }
+ },
+ {
+ "data": "<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,35): unexpected-start-tag-implies-end-tag",
+ "(1,40): unexpected-cell-end-tag",
+ "(1,43): unexpected-start-tag-implies-table-voodoo",
+ "(1,43): unexpected-start-tag-implies-end-tag",
+ "(1,43): unexpected-end-tag",
+ "(1,63): unexpected-start-tag-implies-end-tag",
+ "(1,64): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "text": "C"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "Y"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a><b>X</b>C</a><a>Y</a></body></html>",
+ "noQuirksBodyHtml": "<a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a><b>X</b>C</a><a>Y</a>"
+ }
+ },
+ {
+ "data": "<a X>0<b>1<a Y>2",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-implies-end-tag",
+ "(1,15): adoption-agency-1.3",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "x",
+ "value": ""
+ }
+ ],
+ "children": [
+ {
+ "text": "0"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "y",
+ "value": ""
+ }
+ ],
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a x=\"\">0<b>1</b></a><b><a y=\"\">2</a></b></body></html>",
+ "noQuirksBodyHtml": "<a x=\"\">0<b>1</b></a><b><a y=\"\">2</a></b>"
+ }
+ },
+ {
+ "data": "<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X-->",
+ "errors": [
+ "(1,7): unexpected-dash-after-double-dash-in-comment",
+ "(1,14): expected-doctype-but-got-start-tag",
+ "(1,41): unexpected-start-tag-implies-table-voodoo",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): foster-parenting-character-in-table",
+ "(1,48): unexpected-cell-in-table-body",
+ "(1,63): unexpected-cell-end-tag",
+ "(1,71): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "div": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "th": true,
+ "i": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "-"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "helloexcite!"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "me!"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "th",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "please!"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!-----><html><head></head><body><font><div>helloexcite!<b>me!</b><table><tbody><tr><th><i>please!</i></th></tr><!--X--></tbody></table></div></font></body></html>",
+ "noQuirksBodyHtml": "<!-----><font><div>helloexcite!<b>me!</b><table><tbody><tr><th><i>please!</i></th></tr><!--X--></tbody></table></div></font>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do-->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "li": true,
+ "ul": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "hello"
+ }
+ ]
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "world"
+ },
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "text": "how"
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "do"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "you"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "do"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><li>hello</li><li>world<ul>how<li>do</li></ul>you</li></body><!--do--></html>",
+ "noQuirksBodyHtml": "<li>hello</li><li>world<ul>how<li>do</li></ul>you<!--do--></li>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E",
+ "errors": [
+ "(1,54): unexpected-end-tag-in-select",
+ "(1,55): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "option": true,
+ "optgroup": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ },
+ {
+ "tag": "optgroup",
+ "children": [
+ {
+ "text": "C"
+ },
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "DE"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>A<option>B</option><optgroup>C<select>DE</select></optgroup></body></html>",
+ "noQuirksBodyHtml": "A<option>B</option><optgroup>C<select>DE</select></optgroup>"
+ }
+ },
+ {
+ "data": "<",
+ "errors": [
+ "(1,1): expected-tag-name",
+ "(1,1): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "<",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><</body></html>",
+ "noQuirksBodyHtml": "<"
+ }
+ },
+ {
+ "data": "<#",
+ "errors": [
+ "(1,1): expected-tag-name",
+ "(1,1): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "<#",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><#</body></html>",
+ "noQuirksBodyHtml": "<#"
+ }
+ },
+ {
+ "data": "</",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-eof",
+ "(1,2): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "</",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></</body></html>",
+ "noQuirksBodyHtml": "</"
+ }
+ },
+ {
+ "data": "</#",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-char",
+ "(1,3): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "#"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--#--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--#-->"
+ }
+ },
+ {
+ "data": "<?",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,2): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?-->"
+ }
+ },
+ {
+ "data": "<?#",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,3): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?#"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?#--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?#-->"
+ }
+ },
+ {
+ "data": "<!",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,2): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!----><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!---->"
+ }
+ },
+ {
+ "data": "<!#",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,3): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "#"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--#--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--#-->"
+ }
+ },
+ {
+ "data": "<?COMMENT?>",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,11): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?COMMENT?"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?COMMENT?--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?COMMENT?-->"
+ }
+ },
+ {
+ "data": "<!COMMENT>",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,10): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "COMMENT"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--COMMENT--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--COMMENT-->"
+ }
+ },
+ {
+ "data": "</ COMMENT >",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-char",
+ "(1,12): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": " COMMENT "
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!-- COMMENT --><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- COMMENT -->"
+ }
+ },
+ {
+ "data": "<?COM--MENT?>",
+ "errors": [
+ "(1,1): expected-tag-name-but-got-question-mark",
+ "(1,13): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "?COM--MENT?"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--?COM--MENT?--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--?COM--MENT?-->"
+ }
+ },
+ {
+ "data": "<!COM--MENT>",
+ "errors": [
+ "(1,2): expected-dashes-or-doctype",
+ "(1,12): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "COM--MENT"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!--COM--MENT--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--COM--MENT-->"
+ }
+ },
+ {
+ "data": "</ COM--MENT >",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-char",
+ "(1,14): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": " COM--MENT "
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!-- COM--MENT --><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- COM--MENT -->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><style> EOF",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " EOF",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style> EOF</style></head><body></body></html>",
+ "noQuirksBodyHtml": "<style> EOF</style>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><script> <!-- </script> --> </script> EOF",
+ "errors": [
+ "(1,52): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": " <!-- ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "--> EOF",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script> <!-- </script> </head><body>--> EOF</body></html>",
+ "noQuirksBodyHtml": "<script> <!-- </script> --> EOF"
+ }
+ },
+ {
+ "data": "<b><p></b>TEST",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,10): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "text": "TEST"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><p><b></b>TEST</p></body></html>",
+ "noQuirksBodyHtml": "<b></b><p><b></b>TEST</p>"
+ }
+ },
+ {
+ "data": "<p id=a><b><p id=b></b>TEST",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,19): unexpected-end-tag",
+ "(1,23): adoption-agency-1.2"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "text": "TEST"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p id=\"a\"><b></b></p><p id=\"b\">TEST</p></body></html>",
+ "noQuirksBodyHtml": "<p id=\"a\"><b></b></p><p id=\"b\">TEST</p>"
+ }
+ },
+ {
+ "data": "<b id=a><p><b id=b></p></b>TEST",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-end-tag",
+ "(1,27): adoption-agency-1.2",
+ "(1,31): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "TEST"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b id=\"a\"><p><b id=\"b\"></b></p>TEST</b></body></html>",
+ "noQuirksBodyHtml": "<b id=\"a\"><p><b id=\"b\"></b></p>TEST</b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body>",
+ "errors": [
+ "(1,61): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true,
+ "div": true,
+ "p": true,
+ "u": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "U-test"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "Test"
+ },
+ {
+ "tag": "u"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>U-test</title></head><body><div><p>Test<u></u></p></div></body></html>",
+ "noQuirksBodyHtml": "<title>U-test</title><div><p>Test<u></u></p></div>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><font><table></font></table></font>",
+ "errors": [
+ "(1,35): unexpected-end-tag-implies-table-voodoo",
+ "(1,35): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><font><table></table></font></body></html>",
+ "noQuirksBodyHtml": "<font><table></table></font>"
+ }
+ },
+ {
+ "data": "<font><p>hello<b>cruel</font>world",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,29): adoption-agency-1.3",
+ "(1,29): adoption-agency-1.3",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "p": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "hello"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "cruel"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "world"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><font></font><p><font>hello<b>cruel</b></font><b>world</b></p></body></html>",
+ "noQuirksBodyHtml": "<font></font><p><font>hello<b>cruel</b></font><b>world</b></p>"
+ }
+ },
+ {
+ "data": "<b>Test</i>Test",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "TestTest"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>TestTest</b></body></html>",
+ "noQuirksBodyHtml": "<b>TestTest</b>"
+ }
+ },
+ {
+ "data": "<b>A<cite>B<div>C",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "cite": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "text": "B"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "C"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>A<cite>B<div>C</div></cite></b></body></html>",
+ "noQuirksBodyHtml": "<b>A<cite>B<div>C</div></cite></b>"
+ }
+ },
+ {
+ "data": "<b>A<cite>B<div>C</cite>D",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "cite": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "text": "B"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "CD"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>A<cite>B<div>CD</div></cite></b></body></html>",
+ "noQuirksBodyHtml": "<b>A<cite>B<div>CD</div></cite></b>"
+ }
+ },
+ {
+ "data": "<b>A<cite>B<div>C</b>D",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,21): adoption-agency-1.3",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "cite": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "C"
+ }
+ ]
+ },
+ {
+ "text": "D"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>A<cite>B</cite></b><div><b>C</b>D</div></body></html>",
+ "noQuirksBodyHtml": "<b>A<cite>B</cite></b><div><b>C</b>D</div>"
+ }
+ },
+ {
+ "data": "",
+ "errors": [
+ "(1,0): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<DIV>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,5): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,9): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc</div></body></html>",
+ "noQuirksBodyHtml": "<div> abc</div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,13): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def</b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def</b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i></i></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i></i></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi</i></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi</i></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi <p></p></i></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi <p></p></i></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": " jkl"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi <p> jkl</p></i></b></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi <p> jkl</p></i></b></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b></p></i></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b></p></i></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b> mno</p></i></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b> mno</p></i></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,47): adoption-agency-1.3",
+ "(1,47): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i></p></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i></p></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,47): adoption-agency-1.3",
+ "(1,51): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno "
+ }
+ ]
+ },
+ {
+ "text": " pqr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr</p></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr</p></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,47): adoption-agency-1.3",
+ "(1,56): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno "
+ }
+ ]
+ },
+ {
+ "text": " pqr "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p></div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p></div>"
+ }
+ },
+ {
+ "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,38): adoption-agency-1.3",
+ "(1,47): adoption-agency-1.3",
+ "(1,60): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "i": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": " abc "
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " def "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " ghi "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": " jkl "
+ }
+ ]
+ },
+ {
+ "text": " mno "
+ }
+ ]
+ },
+ {
+ "text": " pqr "
+ }
+ ]
+ },
+ {
+ "text": " stu"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p> stu</div></body></html>",
+ "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p> stu</div>"
+ }
+ },
+ {
+ "data": "<test attribute---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->",
+ "errors": [
+ "(1,1040): expected-doctype-but-got-start-tag",
+ "(1,1040): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "test": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "test",
+ "attrs": [
+ {
+ "name": "attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=\"\"></test></body></html>",
+ "noQuirksBodyHtml": "<test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=\"\"></test>"
+ }
+ },
+ {
+ "data": "<a href=\"blah\">aba<table><a href=\"foo\">br<tr><td></td></tr>x</table>aoe",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag",
+ "(1,39): unexpected-start-tag-implies-table-voodoo",
+ "(1,39): unexpected-start-tag-implies-end-tag",
+ "(1,39): unexpected-end-tag",
+ "(1,45): foster-parenting-character-in-table",
+ "(1,45): foster-parenting-character-in-table",
+ "(1,68): foster-parenting-character-in-table",
+ "(1,71): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "aba"
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "br"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "aoe"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"blah\">aba<a href=\"foo\">br</a><a href=\"foo\">x</a><table><tbody><tr><td></td></tr></tbody></table></a><a href=\"foo\">aoe</a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"blah\">aba<a href=\"foo\">br</a><a href=\"foo\">x</a><table><tbody><tr><td></td></tr></tbody></table></a><a href=\"foo\">aoe</a>"
+ }
+ },
+ {
+ "data": "<a href=\"blah\">aba<table><tr><td><a href=\"foo\">br</td></tr>x</table>aoe",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag",
+ "(1,54): unexpected-cell-end-tag",
+ "(1,68): unexpected text in table",
+ "(1,71): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "abax"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "aoe"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"blah\">abax<table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table>aoe</a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"blah\">abax<table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table>aoe</a>"
+ }
+ },
+ {
+ "data": "<table><a href=\"blah\">aba<tr><td><a href=\"foo\">br</td></tr>x</table>aoe",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-start-tag-implies-table-voodoo",
+ "(1,29): foster-parenting-character-in-table",
+ "(1,29): foster-parenting-character-in-table",
+ "(1,29): foster-parenting-character-in-table",
+ "(1,54): unexpected-cell-end-tag",
+ "(1,68): foster-parenting-character-in-table",
+ "(1,71): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "aba"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "blah"
+ }
+ ],
+ "children": [
+ {
+ "text": "aoe"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"blah\">aba</a><a href=\"blah\">x</a><table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table><a href=\"blah\">aoe</a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"blah\">aba</a><a href=\"blah\">x</a><table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table><a href=\"blah\">aoe</a>"
+ }
+ },
+ {
+ "data": "<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,45): end-tag-too-early",
+ "(1,47): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "marquee": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "text": "aa"
+ },
+ {
+ "tag": "marquee",
+ "children": [
+ {
+ "text": "aa"
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "b"
+ }
+ ],
+ "children": [
+ {
+ "text": "bb"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "aa"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a href=\"a\">aa<marquee>aa<a href=\"b\">bb</a></marquee>aa</a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"a\">aa<marquee>aa<a href=\"b\">bb</a></marquee>aa</a>"
+ }
+ },
+ {
+ "data": "<wbr><strike><code></strike><code><strike></code>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,28): adoption-agency-1.3",
+ "(1,49): adoption-agency-1.3",
+ "(1,49): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "wbr": true,
+ "strike": true,
+ "code": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "wbr"
+ },
+ {
+ "tag": "strike",
+ "children": [
+ {
+ "tag": "code"
+ }
+ ]
+ },
+ {
+ "tag": "code",
+ "children": [
+ {
+ "tag": "code",
+ "children": [
+ {
+ "tag": "strike"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><wbr><strike><code></code></strike><code><code><strike></strike></code></code></body></html>",
+ "noQuirksBodyHtml": "<wbr><strike><code></code></strike><code><code><strike></strike></code></code>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><spacer>foo",
+ "errors": [
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "spacer": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "spacer",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><spacer>foo</spacer></body></html>",
+ "noQuirksBodyHtml": "<spacer>foo</spacer>"
+ }
+ },
+ {
+ "data": "<title><meta></title><link><title><meta></title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "link": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<meta>",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "tag": "link"
+ },
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<meta>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title><meta></title><link><title><meta></title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title><meta></title><link><title><meta></title>"
+ }
+ },
+ {
+ "data": "<style><!--</style><meta><script>--><link></script>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "meta": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "--><link>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--</style><meta><script>--><link></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<style><!--</style><meta><script>--><link></script>"
+ }
+ },
+ {
+ "data": "<head><meta></head><link>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,25): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "link": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "link"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><meta><link></head><body></body></html>",
+ "noQuirksBodyHtml": "<meta><link>"
+ }
+ },
+ {
+ "data": "<table><tr><tr><td><td><span><th><span>X</table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,33): unexpected-cell-end-tag",
+ "(1,48): unexpected-cell-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "span": true,
+ "th": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "tag": "th",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr></tr><tr><td></td><td><span></span></td><th><span>X</span></th></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr><tr><td></td><td><span></span></td><th><span>X</span></th></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<body><body><base><link><meta><title><p></title><body><p></body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,12): unexpected-start-tag",
+ "(1,54): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "base": true,
+ "link": true,
+ "meta": true,
+ "title": true,
+ "p": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "base"
+ },
+ {
+ "tag": "link"
+ },
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<p>",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><base><link><meta><title><p></title><p></p></body></html>",
+ "noQuirksBodyHtml": "<base><link><meta><title><p></title><p></p>"
+ }
+ },
+ {
+ "data": "<textarea><p></textarea>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<p>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea><p></textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea><p></textarea>"
+ }
+ },
+ {
+ "data": "<p><image></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-start-tag-treated-as"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "img": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><img></p></body></html>",
+ "noQuirksBodyHtml": "<p><img></p>"
+ }
+ },
+ {
+ "data": "<a><table><a></table><p><a><div><a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-start-tag-implies-table-voodoo",
+ "(1,13): unexpected-start-tag-implies-end-tag",
+ "(1,13): adoption-agency-1.3",
+ "(1,27): unexpected-start-tag-implies-end-tag",
+ "(1,27): adoption-agency-1.2",
+ "(1,32): unexpected-end-tag",
+ "(1,35): unexpected-start-tag-implies-end-tag",
+ "(1,35): adoption-agency-1.2",
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "p": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><a></a><table></table></a><p><a></a></p><div><a></a></div></body></html>",
+ "noQuirksBodyHtml": "<a><a></a><table></table></a><p><a></a></p><div><a></a></div>"
+ }
+ },
+ {
+ "data": "<head></p><meta><p>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><meta></head><body><p></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><meta><p></p>"
+ }
+ },
+ {
+ "data": "<head></html><meta><p>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,19): expected-eof-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><meta><p></p></body></html>",
+ "noQuirksBodyHtml": "<meta><p></p>"
+ }
+ },
+ {
+ "data": "<b><table><td><i></table>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,25): unexpected-cell-end-tag",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+ "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+ }
+ },
+ {
+ "data": "<b><table><td></b><i></table>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,18): unexpected-end-tag",
+ "(1,29): unexpected-cell-end-tag",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+ "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+ }
+ },
+ {
+ "data": "<h1><h2>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,8): unexpected-start-tag",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h1": true,
+ "h2": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h1"
+ },
+ {
+ "tag": "h2"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><h1></h1><h2></h2></body></html>",
+ "noQuirksBodyHtml": "<h1></h1><h2></h2>"
+ }
+ },
+ {
+ "data": "<a><p><a></a></p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,9): unexpected-start-tag-implies-end-tag",
+ "(1,9): adoption-agency-1.3",
+ "(1,21): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><p><a></a><a></a></p></body></html>",
+ "noQuirksBodyHtml": "<a></a><p><a></a><a></a></p>"
+ }
+ },
+ {
+ "data": "<b><button></b></button></b>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,15): adoption-agency-1.3",
+ "(1,28): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><button><b></b></button></body></html>",
+ "noQuirksBodyHtml": "<b></b><button><b></b></button>"
+ }
+ },
+ {
+ "data": "<p><b><div><marquee></p></b></div>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,28): unexpected-end-tag",
+ "(1,34): end-tag-too-early",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "div": true,
+ "marquee": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "marquee",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b></b></p><div><b><marquee><p></p></marquee></b></div></body></html>",
+ "noQuirksBodyHtml": "<p><b></b></p><div><b><marquee><p></p></marquee></b></div>"
+ }
+ },
+ {
+ "data": "<script></script></div><title></title><p><p>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "title": true,
+ "body": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ },
+ {
+ "tag": "title"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script><title></title></head><body><p></p><p></p></body></html>",
+ "noQuirksBodyHtml": "<script></script><title></title><p></p><p></p>"
+ }
+ },
+ {
+ "data": "<p><hr></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "hr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "hr"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p></p><hr><p></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><hr><p></p>"
+ }
+ },
+ {
+ "data": "<select><b><option><select><option></b></select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-start-tag-in-select",
+ "(1,27): unexpected-select-in-select",
+ "(1,39): unexpected-end-tag",
+ "(1,48): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option></option></select><option></option></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select><option></option>"
+ }
+ },
+ {
+ "data": "<html><head><title></title><body></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title></title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title></title>"
+ }
+ },
+ {
+ "data": "<a><table><td><a><table></table><a></tr><a></table><a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-cell-in-table-body",
+ "(1,35): unexpected-start-tag-implies-end-tag",
+ "(1,40): unexpected-cell-end-tag",
+ "(1,43): unexpected-start-tag-implies-table-voodoo",
+ "(1,43): unexpected-start-tag-implies-end-tag",
+ "(1,43): unexpected-end-tag",
+ "(1,54): unexpected-start-tag-implies-end-tag",
+ "(1,54): adoption-agency-1.2",
+ "(1,54): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a></a></body></html>",
+ "noQuirksBodyHtml": "<a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a></a>"
+ }
+ },
+ {
+ "data": "<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,45): end-tag-too-early",
+ "(1,58): end-tag-too-early",
+ "(1,69): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true,
+ "div": true,
+ "address": true,
+ "b": true,
+ "em": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "li"
+ }
+ ]
+ },
+ {
+ "tag": "li"
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "address"
+ }
+ ]
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ul><li></li><div><li></li></div><li></li><li><div></div></li><li><address></address></li><li><b><em></em></b></li><li></li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li></li><div><li></li></div><li></li><li><div></div></li><li><address></address></li><li><b><em></em></b></li><li></li></ul>"
+ }
+ },
+ {
+ "data": "<ul><li><ul></li><li>a</li></ul></li></ul>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ul><li><ul><li>a</li></ul></li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li><ul><li>a</li></ul></li></ul>"
+ }
+ },
+ {
+ "data": "<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true,
+ "noframes": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ },
+ {
+ "tag": "noframes"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset><frame><frameset><frame></frameset><noframes></noframes></frameset></html>",
+ "noQuirksBodyHtml": "<noframes></noframes>"
+ }
+ },
+ {
+ "data": "<h1><table><td><h3></table><h3></h1>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-cell-in-table-body",
+ "(1,27): unexpected-cell-end-tag",
+ "(1,31): unexpected-start-tag",
+ "(1,36): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h1": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "h3": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h1",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "h3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "h3"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><h1><table><tbody><tr><td><h3></h3></td></tr></tbody></table></h1><h3></h3></body></html>",
+ "noQuirksBodyHtml": "<h1><table><tbody><tr><td><h3></h3></td></tr></tbody></table></h1><h3></h3>"
+ }
+ },
+ {
+ "data": "<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "col": true,
+ "thead": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ },
+ {
+ "tag": "col"
+ },
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ },
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><col></colgroup><colgroup><col><col><col></colgroup><colgroup><col><col></colgroup><thead><tr><td></td></tr></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><col></colgroup><colgroup><col><col><col></colgroup><colgroup><col><col></colgroup><thead><tr><td></td></tr></thead></table>"
+ }
+ },
+ {
+ "data": "<table><col><tbody><col><tr><col><td><col></table><col>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,37): unexpected-cell-in-table-body",
+ "(1,55): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "col": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody"
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup><col></colgroup><tbody></tbody><colgroup><col></colgroup><tbody><tr></tr></tbody><colgroup><col></colgroup><tbody><tr><td></td></tr></tbody><colgroup><col></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup><col></colgroup><tbody></tbody><colgroup><col></colgroup><tbody><tr></tr></tbody><colgroup><col></colgroup><tbody><tr><td></td></tr></tbody><colgroup><col></colgroup></table>"
+ }
+ },
+ {
+ "data": "<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,52): unexpected-cell-in-table-body",
+ "(1,80): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ },
+ {
+ "tag": "tbody"
+ },
+ {
+ "tag": "colgroup"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "colgroup"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup></colgroup><tbody></tbody><colgroup></colgroup><tbody><tr></tr></tbody><colgroup></colgroup><tbody><tr><td></td></tr></tbody><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup></colgroup><tbody></tbody><colgroup></colgroup><tbody><tr></tr></tbody><colgroup></colgroup><tbody><tr><td></td></tr></tbody><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>",
+ "errors": [
+ "(1,9): expected-doctype-but-got-end-tag",
+ "(1,9): unexpected-end-tag-before-html",
+ "(1,13): unexpected-end-tag-before-html",
+ "(1,18): unexpected-end-tag-before-html",
+ "(1,22): unexpected-end-tag-before-html",
+ "(1,26): unexpected-end-tag-before-html",
+ "(1,35): unexpected-end-tag-before-html",
+ "(1,39): unexpected-end-tag-before-html",
+ "(1,47): unexpected-end-tag-before-html",
+ "(1,52): unexpected-end-tag-before-html",
+ "(1,58): unexpected-end-tag-before-html",
+ "(1,64): unexpected-end-tag-before-html",
+ "(1,72): unexpected-end-tag-before-html",
+ "(1,79): unexpected-end-tag-before-html",
+ "(1,88): unexpected-end-tag-before-html",
+ "(1,93): unexpected-end-tag-before-html",
+ "(1,98): unexpected-end-tag-before-html",
+ "(1,103): unexpected-end-tag-before-html",
+ "(1,108): unexpected-end-tag-before-html",
+ "(1,113): unexpected-end-tag-before-html",
+ "(1,118): unexpected-end-tag-before-html",
+ "(1,130): unexpected-end-tag-after-body",
+ "(1,130): unexpected-end-tag-treated-as",
+ "(1,134): unexpected-end-tag",
+ "(1,140): unexpected-end-tag",
+ "(1,148): unexpected-end-tag",
+ "(1,155): unexpected-end-tag",
+ "(1,163): unexpected-end-tag",
+ "(1,172): unexpected-end-tag",
+ "(1,180): unexpected-end-tag",
+ "(1,185): unexpected-end-tag",
+ "(1,190): unexpected-end-tag",
+ "(1,195): unexpected-end-tag",
+ "(1,203): unexpected-end-tag",
+ "(1,210): unexpected-end-tag",
+ "(1,217): unexpected-end-tag",
+ "(1,225): unexpected-end-tag",
+ "(1,230): unexpected-end-tag",
+ "(1,238): unexpected-end-tag",
+ "(1,244): unexpected-end-tag",
+ "(1,251): unexpected-end-tag",
+ "(1,258): unexpected-end-tag",
+ "(1,269): unexpected-end-tag",
+ "(1,279): unexpected-end-tag",
+ "(1,287): unexpected-end-tag",
+ "(1,296): unexpected-end-tag",
+ "(1,300): unexpected-end-tag",
+ "(1,305): unexpected-end-tag",
+ "(1,310): unexpected-end-tag",
+ "(1,320): unexpected-end-tag",
+ "(1,331): unexpected-end-tag",
+ "(1,339): unexpected-end-tag",
+ "(1,347): unexpected-end-tag",
+ "(1,355): unexpected-end-tag",
+ "(1,365): end-tag-too-early",
+ "(1,378): end-tag-too-early",
+ "(1,387): end-tag-too-early",
+ "(1,393): end-tag-too-early",
+ "(1,399): end-tag-too-early",
+ "(1,404): end-tag-too-early",
+ "(1,415): end-tag-too-early",
+ "(1,425): end-tag-too-early",
+ "(1,432): end-tag-too-early",
+ "(1,437): end-tag-too-early",
+ "(1,442): end-tag-too-early",
+ "(1,447): unexpected-end-tag",
+ "(1,454): unexpected-end-tag",
+ "(1,460): unexpected-end-tag",
+ "(1,467): unexpected-end-tag",
+ "(1,476): end-tag-too-early",
+ "(1,486): end-tag-too-early",
+ "(1,495): end-tag-too-early",
+ "(1,513): expected-eof-but-got-end-tag",
+ "(1,513): unexpected-end-tag",
+ "(1,520): unexpected-end-tag",
+ "(1,529): unexpected-end-tag",
+ "(1,537): unexpected-end-tag",
+ "(1,547): unexpected-end-tag",
+ "(1,557): unexpected-end-tag",
+ "(1,568): unexpected-end-tag",
+ "(1,579): unexpected-end-tag",
+ "(1,590): unexpected-end-tag",
+ "(1,599): unexpected-end-tag",
+ "(1,611): unexpected-end-tag",
+ "(1,622): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><br><p></p></body></html>",
+ "noQuirksBodyHtml": "<br><p></p>"
+ }
+ },
+ {
+ "data": "<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-end-tag-implies-table-voodoo",
+ "(1,20): unexpected-end-tag",
+ "(1,24): unexpected-end-tag-implies-table-voodoo",
+ "(1,24): unexpected-end-tag",
+ "(1,29): unexpected-end-tag-implies-table-voodoo",
+ "(1,29): unexpected-end-tag",
+ "(1,33): unexpected-end-tag-implies-table-voodoo",
+ "(1,33): unexpected-end-tag",
+ "(1,37): unexpected-end-tag-implies-table-voodoo",
+ "(1,37): unexpected-end-tag",
+ "(1,46): unexpected-end-tag-implies-table-voodoo",
+ "(1,46): unexpected-end-tag",
+ "(1,50): unexpected-end-tag-implies-table-voodoo",
+ "(1,50): unexpected-end-tag",
+ "(1,58): unexpected-end-tag-implies-table-voodoo",
+ "(1,58): unexpected-end-tag",
+ "(1,63): unexpected-end-tag-implies-table-voodoo",
+ "(1,63): unexpected-end-tag",
+ "(1,69): unexpected-end-tag-implies-table-voodoo",
+ "(1,69): end-tag-too-early",
+ "(1,75): unexpected-end-tag-implies-table-voodoo",
+ "(1,75): unexpected-end-tag",
+ "(1,83): unexpected-end-tag-implies-table-voodoo",
+ "(1,83): unexpected-end-tag",
+ "(1,90): unexpected-end-tag-implies-table-voodoo",
+ "(1,90): unexpected-end-tag",
+ "(1,99): unexpected-end-tag-implies-table-voodoo",
+ "(1,99): unexpected-end-tag",
+ "(1,104): unexpected-end-tag-implies-table-voodoo",
+ "(1,104): end-tag-too-early",
+ "(1,109): unexpected-end-tag-implies-table-voodoo",
+ "(1,109): end-tag-too-early",
+ "(1,114): unexpected-end-tag-implies-table-voodoo",
+ "(1,114): end-tag-too-early",
+ "(1,119): unexpected-end-tag-implies-table-voodoo",
+ "(1,119): end-tag-too-early",
+ "(1,124): unexpected-end-tag-implies-table-voodoo",
+ "(1,124): end-tag-too-early",
+ "(1,129): unexpected-end-tag-implies-table-voodoo",
+ "(1,129): end-tag-too-early",
+ "(1,136): unexpected-end-tag-in-table-row",
+ "(1,141): unexpected-end-tag-implies-table-voodoo",
+ "(1,141): unexpected-end-tag-treated-as",
+ "(1,145): unexpected-end-tag-implies-table-voodoo",
+ "(1,145): unexpected-end-tag",
+ "(1,151): unexpected-end-tag-implies-table-voodoo",
+ "(1,151): unexpected-end-tag",
+ "(1,159): unexpected-end-tag-implies-table-voodoo",
+ "(1,159): unexpected-end-tag",
+ "(1,166): unexpected-end-tag-implies-table-voodoo",
+ "(1,166): unexpected-end-tag",
+ "(1,174): unexpected-end-tag-implies-table-voodoo",
+ "(1,174): unexpected-end-tag",
+ "(1,183): unexpected-end-tag-implies-table-voodoo",
+ "(1,183): unexpected-end-tag",
+ "(1,196): unexpected-end-tag",
+ "(1,201): unexpected-end-tag",
+ "(1,206): unexpected-end-tag",
+ "(1,214): unexpected-end-tag",
+ "(1,221): unexpected-end-tag",
+ "(1,228): unexpected-end-tag",
+ "(1,236): unexpected-end-tag",
+ "(1,241): unexpected-end-tag",
+ "(1,249): unexpected-end-tag",
+ "(1,255): unexpected-end-tag",
+ "(1,262): unexpected-end-tag",
+ "(1,269): unexpected-end-tag",
+ "(1,280): unexpected-end-tag",
+ "(1,290): unexpected-end-tag",
+ "(1,298): unexpected-end-tag",
+ "(1,307): unexpected-end-tag",
+ "(1,311): unexpected-end-tag",
+ "(1,316): unexpected-end-tag",
+ "(1,321): unexpected-end-tag",
+ "(1,331): unexpected-end-tag",
+ "(1,342): unexpected-end-tag",
+ "(1,350): unexpected-end-tag",
+ "(1,358): unexpected-end-tag",
+ "(1,366): unexpected-end-tag",
+ "(1,376): end-tag-too-early",
+ "(1,389): end-tag-too-early",
+ "(1,398): end-tag-too-early",
+ "(1,404): end-tag-too-early",
+ "(1,410): end-tag-too-early",
+ "(1,415): end-tag-too-early",
+ "(1,426): end-tag-too-early",
+ "(1,436): end-tag-too-early",
+ "(1,443): end-tag-too-early",
+ "(1,448): end-tag-too-early",
+ "(1,453): end-tag-too-early",
+ "(1,458): unexpected-end-tag",
+ "(1,465): unexpected-end-tag",
+ "(1,471): unexpected-end-tag",
+ "(1,478): unexpected-end-tag",
+ "(1,487): end-tag-too-early",
+ "(1,497): end-tag-too-early",
+ "(1,506): end-tag-too-early",
+ "(1,524): expected-eof-but-got-end-tag",
+ "(1,524): unexpected-end-tag",
+ "(1,531): unexpected-end-tag",
+ "(1,540): unexpected-end-tag",
+ "(1,548): unexpected-end-tag",
+ "(1,558): unexpected-end-tag",
+ "(1,568): unexpected-end-tag",
+ "(1,579): unexpected-end-tag",
+ "(1,590): unexpected-end-tag",
+ "(1,601): unexpected-end-tag",
+ "(1,610): unexpected-end-tag",
+ "(1,622): unexpected-end-tag",
+ "(1,633): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><br><table><tbody><tr></tr></tbody></table><p></p></body></html>",
+ "noQuirksBodyHtml": "<br><table><tbody><tr></tr></tbody></table><p></p>"
+ }
+ },
+ {
+ "data": "<frameset>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,10): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "tests10.dat": [
+ {
+ "data": "<!DOCTYPE html><svg></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg></svg><![CDATA[a]]>",
+ "errors": [
+ "(1,28) expected-dashes-or-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "comment": "[CDATA[a]]"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg><!--[CDATA[a]]--></body></html>",
+ "noQuirksBodyHtml": "<svg></svg><!--[CDATA[a]]-->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><select><svg></svg></select>",
+ "errors": [
+ "(1,34) unexpected-start-tag-in-select",
+ "(1,40) unexpected-end-tag-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><select><option><svg></svg></option></select>",
+ "errors": [
+ "(1,42) unexpected-start-tag-in-select",
+ "(1,48) unexpected-end-tag-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><svg></svg></table>",
+ "errors": [
+ "(1,33) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg><table></table></body></html>",
+ "noQuirksBodyHtml": "<svg></svg><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><svg><g>foo</g></svg></table>",
+ "errors": [
+ "(1,33) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g></svg><table></table></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g></svg><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table>",
+ "errors": [
+ "(1,33) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table></table></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table>",
+ "errors": [
+ "(1,40) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "table": true,
+ "tbody": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table>",
+ "errors": [
+ "(1,44) foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg g": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</p></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</p></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+ "errors": [
+ "(1,65) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g><p>baz</p></svg></caption></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux",
+ "errors": [
+ "(1,73) unexpected-end-tag",
+ "(1,73) expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ },
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g>baz</svg></caption></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g>baz</svg></caption></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+ "errors": [
+ "(1,43) foster-parenting-start-tag svg",
+ "(1,66) unexpected HTML-like start tag token in foreign content",
+ "(1,66) foster-parenting-start-tag",
+ "(1,67) foster-parenting-character",
+ "(1,68) foster-parenting-character",
+ "(1,69) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true,
+ "table": true,
+ "colgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p><table><colgroup></colgroup></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg><table><colgroup></colgroup></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+ "errors": [
+ "(1,49) unexpected-start-tag-in-select",
+ "(1,52) unexpected-start-tag-in-select",
+ "(1,59) unexpected-end-tag-in-select",
+ "(1,62) unexpected-start-tag-in-select",
+ "(1,69) unexpected-end-tag-in-select",
+ "(1,72) unexpected-start-tag-in-select",
+ "(1,83) unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "select": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "foobarbaz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+ "errors": [
+ "(1,36) unexpected-start-tag-implies-table-voodoo",
+ "(1,41) unexpected-start-tag-in-select",
+ "(1,44) unexpected-start-tag-in-select",
+ "(1,51) unexpected-end-tag-in-select",
+ "(1,54) unexpected-start-tag-in-select",
+ "(1,61) unexpected-end-tag-in-select",
+ "(1,64) unexpected-start-tag-in-select",
+ "(1,75) unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "foobarbaz"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select>foobarbaz</select><table></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<select>foobarbaz</select><table></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz",
+ "errors": [
+ "(1,40) expected-eof-but-got-start-tag",
+ "(1,63) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz",
+ "errors": [
+ "(1,33) unexpected-start-tag-after-body",
+ "(1,56) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p></body></html>",
+ "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset><svg><g></g><g></g><p><span>",
+ "errors": [
+ "(1,30) unexpected-start-tag-in-frameset",
+ "(1,33) unexpected-start-tag-in-frameset",
+ "(1,37) unexpected-end-tag-in-frameset",
+ "(1,40) unexpected-start-tag-in-frameset",
+ "(1,44) unexpected-end-tag-in-frameset",
+ "(1,47) unexpected-start-tag-in-frameset",
+ "(1,53) unexpected-start-tag-in-frameset",
+ "(1,53) eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg><g></g><g></g><p><span></span></p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span>",
+ "errors": [
+ "(1,41) unexpected-start-tag-after-frameset",
+ "(1,44) unexpected-start-tag-after-frameset",
+ "(1,48) unexpected-end-tag-after-frameset",
+ "(1,51) unexpected-start-tag-after-frameset",
+ "(1,55) unexpected-end-tag-after-frameset",
+ "(1,58) unexpected-start-tag-after-frameset",
+ "(1,64) unexpected-start-tag-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<svg><g></g><g></g><p><span></span></p></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\"><svg xlink:href=\"foo\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg xlink:href=\"foo\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg g": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g>bar</svg></body></html>",
+ "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g>bar</svg>"
+ }
+ },
+ {
+ "data": "<svg></path>",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,12) unexpected-end-tag",
+ "(1,12) unexpected-end-tag",
+ "(1,12) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<div><svg></div>a",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,16) unexpected-end-tag",
+ "(1,16) end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg></svg></div>a</body></html>",
+ "noQuirksBodyHtml": "<div><svg></svg></div>a"
+ }
+ },
+ {
+ "data": "<div><svg><path></div>a",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,22) unexpected-end-tag",
+ "(1,22) end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path></path></svg></div>a</body></html>",
+ "noQuirksBodyHtml": "<div><svg><path></path></svg></div>a"
+ }
+ },
+ {
+ "data": "<div><svg><path></svg><path>",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,22) unexpected-end-tag",
+ "(1,28) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true,
+ "path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "tag": "path"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path></path></svg><path></path></div></body></html>",
+ "noQuirksBodyHtml": "<div><svg><path></path></svg><path></path></div>"
+ }
+ },
+ {
+ "data": "<div><svg><path><foreignObject><math></div>a",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,43) unexpected-end-tag",
+ "(1,43) end-tag-too-early",
+ "(1,44) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true,
+ "svg foreignObject": true,
+ "math math": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path><foreignObject><math>a</math></foreignObject></path></svg></div></body></html>",
+ "noQuirksBodyHtml": "<div><svg><path><foreignObject><math>a</math></foreignObject></path></svg></div>"
+ }
+ },
+ {
+ "data": "<div><svg><path><foreignObject><p></div>a",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,40) end-tag-too-early",
+ "(1,41) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true,
+ "svg foreignObject": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path><foreignObject><p>a</p></foreignObject></path></svg></div></body></html>",
+ "noQuirksBodyHtml": "<div><svg><path><foreignObject><p>a</p></foreignObject></path></svg></div>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><desc><div><svg><ul>a",
+ "errors": [
+ "(1,40) unexpected-html-element-in-foreign-content",
+ "(1,41) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg desc": true,
+ "div": true,
+ "ul": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><desc><div><svg></svg><ul>a</ul></div></desc></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><desc><div><svg><ul>a</ul></svg></div></desc></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><desc><svg><ul>a",
+ "errors": [
+ "(1,35) unexpected-html-element-in-foreign-content",
+ "(1,36) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg desc": true,
+ "ul": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><desc><svg></svg><ul>a</ul></desc></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><desc><svg><ul>a</ul></svg></desc></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><p><svg><desc><p>",
+ "errors": [
+ "(1,32) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "svg svg": true,
+ "svg desc": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><svg><desc><p></p></desc></svg></p></body></html>",
+ "noQuirksBodyHtml": "<p><svg><desc><p></p></desc></svg></p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><p><svg><title><p>",
+ "errors": [
+ "(1,33) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "svg svg": true,
+ "svg title": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><svg><title><p></p></title></svg></p></body></html>",
+ "noQuirksBodyHtml": "<p><svg><title><p></p></title></svg></p>"
+ }
+ },
+ {
+ "data": "<div><svg><path><foreignObject><p></foreignObject><p>",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,50) unexpected-end-tag",
+ "(1,53) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "svg svg": true,
+ "svg path": true,
+ "svg foreignObject": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><svg><path><foreignObject><p></p><p></p></foreignObject></path></svg></div></body></html>",
+ "noQuirksBodyHtml": "<div><svg><path><foreignObject><p></p><p></p></foreignObject></path></svg></div>"
+ }
+ },
+ {
+ "data": "<math><mi><div><object><div><span></span></div></object></div></mi><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,71) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "div": true,
+ "object": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "object",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mi><div><object><div><span></span></div></object></div></mi><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi><div><object><div><span></span></div></object></div></mi><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,83) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<svg><script></script><path>",
+ "errors": [
+ "(1,5) expected-doctype-but-got-start-tag",
+ "(1,28) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg script": true,
+ "svg path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "script",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><script></script><path></path></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><script></script><path></path></svg>"
+ }
+ },
+ {
+ "data": "<table><svg></svg><tr>",
+ "errors": [
+ "(1,7) expected-doctype-but-got-start-tag",
+ "(1,12) unexpected-start-tag-implies-table-voodoo",
+ "(1,22) eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<svg></svg><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<math><mi><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,18) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mi><mglyph></mglyph></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi><mglyph></mglyph></mi></math>"
+ }
+ },
+ {
+ "data": "<math><mi><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,22) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mi><malignmark></malignmark></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi><malignmark></malignmark></mi></math>"
+ }
+ },
+ {
+ "data": "<math><mo><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,18) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mo": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mo><mglyph></mglyph></mo></math></body></html>",
+ "noQuirksBodyHtml": "<math><mo><mglyph></mglyph></mo></math>"
+ }
+ },
+ {
+ "data": "<math><mo><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,22) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mo": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mo><malignmark></malignmark></mo></math></body></html>",
+ "noQuirksBodyHtml": "<math><mo><malignmark></malignmark></mo></math>"
+ }
+ },
+ {
+ "data": "<math><mn><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,18) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mn": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mn><mglyph></mglyph></mn></math></body></html>",
+ "noQuirksBodyHtml": "<math><mn><mglyph></mglyph></mn></math>"
+ }
+ },
+ {
+ "data": "<math><mn><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,22) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mn": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mn><malignmark></malignmark></mn></math></body></html>",
+ "noQuirksBodyHtml": "<math><mn><malignmark></malignmark></mn></math>"
+ }
+ },
+ {
+ "data": "<math><ms><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,18) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math ms": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><ms><mglyph></mglyph></ms></math></body></html>",
+ "noQuirksBodyHtml": "<math><ms><mglyph></mglyph></ms></math>"
+ }
+ },
+ {
+ "data": "<math><ms><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,22) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math ms": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><ms><malignmark></malignmark></ms></math></body></html>",
+ "noQuirksBodyHtml": "<math><ms><malignmark></malignmark></ms></math>"
+ }
+ },
+ {
+ "data": "<math><mtext><mglyph>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,21) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true,
+ "math mglyph": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mtext><mglyph></mglyph></mtext></math></body></html>",
+ "noQuirksBodyHtml": "<math><mtext><mglyph></mglyph></mtext></math>"
+ }
+ },
+ {
+ "data": "<math><mtext><malignmark>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,25) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true,
+ "math malignmark": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "malignmark",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mtext><malignmark></malignmark></mtext></math></body></html>",
+ "noQuirksBodyHtml": "<math><mtext><malignmark></malignmark></mtext></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><svg></svg></annotation-xml><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,54) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "math mi": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><svg></svg></annotation-xml><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg></svg></annotation-xml><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,144) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "div": true,
+ "math mi": true,
+ "span": true,
+ "svg path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi>",
+ "errors": [
+ "(1,6) expected-doctype-but-got-start-tag",
+ "(1,153) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "math mi": true,
+ "math mo": true,
+ "span": true,
+ "svg path": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi></mi></math>"
+ }
+ }
+ ],
+ "tests11.dat": [
+ {
+ "data": "<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "attributeName",
+ "value": ""
+ },
+ {
+ "name": "attributeType",
+ "value": ""
+ },
+ {
+ "name": "baseFrequency",
+ "value": ""
+ },
+ {
+ "name": "baseProfile",
+ "value": ""
+ },
+ {
+ "name": "calcMode",
+ "value": ""
+ },
+ {
+ "name": "clipPathUnits",
+ "value": ""
+ },
+ {
+ "name": "diffuseConstant",
+ "value": ""
+ },
+ {
+ "name": "edgeMode",
+ "value": ""
+ },
+ {
+ "name": "filterUnits",
+ "value": ""
+ },
+ {
+ "name": "glyphRef",
+ "value": ""
+ },
+ {
+ "name": "gradientTransform",
+ "value": ""
+ },
+ {
+ "name": "gradientUnits",
+ "value": ""
+ },
+ {
+ "name": "kernelMatrix",
+ "value": ""
+ },
+ {
+ "name": "kernelUnitLength",
+ "value": ""
+ },
+ {
+ "name": "keyPoints",
+ "value": ""
+ },
+ {
+ "name": "keySplines",
+ "value": ""
+ },
+ {
+ "name": "keyTimes",
+ "value": ""
+ },
+ {
+ "name": "lengthAdjust",
+ "value": ""
+ },
+ {
+ "name": "limitingConeAngle",
+ "value": ""
+ },
+ {
+ "name": "markerHeight",
+ "value": ""
+ },
+ {
+ "name": "markerUnits",
+ "value": ""
+ },
+ {
+ "name": "markerWidth",
+ "value": ""
+ },
+ {
+ "name": "maskContentUnits",
+ "value": ""
+ },
+ {
+ "name": "maskUnits",
+ "value": ""
+ },
+ {
+ "name": "numOctaves",
+ "value": ""
+ },
+ {
+ "name": "pathLength",
+ "value": ""
+ },
+ {
+ "name": "patternContentUnits",
+ "value": ""
+ },
+ {
+ "name": "patternTransform",
+ "value": ""
+ },
+ {
+ "name": "patternUnits",
+ "value": ""
+ },
+ {
+ "name": "pointsAtX",
+ "value": ""
+ },
+ {
+ "name": "pointsAtY",
+ "value": ""
+ },
+ {
+ "name": "pointsAtZ",
+ "value": ""
+ },
+ {
+ "name": "preserveAlpha",
+ "value": ""
+ },
+ {
+ "name": "preserveAspectRatio",
+ "value": ""
+ },
+ {
+ "name": "primitiveUnits",
+ "value": ""
+ },
+ {
+ "name": "refX",
+ "value": ""
+ },
+ {
+ "name": "refY",
+ "value": ""
+ },
+ {
+ "name": "repeatCount",
+ "value": ""
+ },
+ {
+ "name": "repeatDur",
+ "value": ""
+ },
+ {
+ "name": "requiredExtensions",
+ "value": ""
+ },
+ {
+ "name": "requiredFeatures",
+ "value": ""
+ },
+ {
+ "name": "specularConstant",
+ "value": ""
+ },
+ {
+ "name": "specularExponent",
+ "value": ""
+ },
+ {
+ "name": "spreadMethod",
+ "value": ""
+ },
+ {
+ "name": "startOffset",
+ "value": ""
+ },
+ {
+ "name": "stdDeviation",
+ "value": ""
+ },
+ {
+ "name": "stitchTiles",
+ "value": ""
+ },
+ {
+ "name": "surfaceScale",
+ "value": ""
+ },
+ {
+ "name": "systemLanguage",
+ "value": ""
+ },
+ {
+ "name": "tableValues",
+ "value": ""
+ },
+ {
+ "name": "targetX",
+ "value": ""
+ },
+ {
+ "name": "targetY",
+ "value": ""
+ },
+ {
+ "name": "textLength",
+ "value": ""
+ },
+ {
+ "name": "viewBox",
+ "value": ""
+ },
+ {
+ "name": "viewTarget",
+ "value": ""
+ },
+ {
+ "name": "xChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "yChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "zoomAndPan",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' DIFFUSECONSTANT='' EDGEMODE='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "attributeName",
+ "value": ""
+ },
+ {
+ "name": "attributeType",
+ "value": ""
+ },
+ {
+ "name": "baseFrequency",
+ "value": ""
+ },
+ {
+ "name": "baseProfile",
+ "value": ""
+ },
+ {
+ "name": "calcMode",
+ "value": ""
+ },
+ {
+ "name": "clipPathUnits",
+ "value": ""
+ },
+ {
+ "name": "diffuseConstant",
+ "value": ""
+ },
+ {
+ "name": "edgeMode",
+ "value": ""
+ },
+ {
+ "name": "filterUnits",
+ "value": ""
+ },
+ {
+ "name": "glyphRef",
+ "value": ""
+ },
+ {
+ "name": "gradientTransform",
+ "value": ""
+ },
+ {
+ "name": "gradientUnits",
+ "value": ""
+ },
+ {
+ "name": "kernelMatrix",
+ "value": ""
+ },
+ {
+ "name": "kernelUnitLength",
+ "value": ""
+ },
+ {
+ "name": "keyPoints",
+ "value": ""
+ },
+ {
+ "name": "keySplines",
+ "value": ""
+ },
+ {
+ "name": "keyTimes",
+ "value": ""
+ },
+ {
+ "name": "lengthAdjust",
+ "value": ""
+ },
+ {
+ "name": "limitingConeAngle",
+ "value": ""
+ },
+ {
+ "name": "markerHeight",
+ "value": ""
+ },
+ {
+ "name": "markerUnits",
+ "value": ""
+ },
+ {
+ "name": "markerWidth",
+ "value": ""
+ },
+ {
+ "name": "maskContentUnits",
+ "value": ""
+ },
+ {
+ "name": "maskUnits",
+ "value": ""
+ },
+ {
+ "name": "numOctaves",
+ "value": ""
+ },
+ {
+ "name": "pathLength",
+ "value": ""
+ },
+ {
+ "name": "patternContentUnits",
+ "value": ""
+ },
+ {
+ "name": "patternTransform",
+ "value": ""
+ },
+ {
+ "name": "patternUnits",
+ "value": ""
+ },
+ {
+ "name": "pointsAtX",
+ "value": ""
+ },
+ {
+ "name": "pointsAtY",
+ "value": ""
+ },
+ {
+ "name": "pointsAtZ",
+ "value": ""
+ },
+ {
+ "name": "preserveAlpha",
+ "value": ""
+ },
+ {
+ "name": "preserveAspectRatio",
+ "value": ""
+ },
+ {
+ "name": "primitiveUnits",
+ "value": ""
+ },
+ {
+ "name": "refX",
+ "value": ""
+ },
+ {
+ "name": "refY",
+ "value": ""
+ },
+ {
+ "name": "repeatCount",
+ "value": ""
+ },
+ {
+ "name": "repeatDur",
+ "value": ""
+ },
+ {
+ "name": "requiredExtensions",
+ "value": ""
+ },
+ {
+ "name": "requiredFeatures",
+ "value": ""
+ },
+ {
+ "name": "specularConstant",
+ "value": ""
+ },
+ {
+ "name": "specularExponent",
+ "value": ""
+ },
+ {
+ "name": "spreadMethod",
+ "value": ""
+ },
+ {
+ "name": "startOffset",
+ "value": ""
+ },
+ {
+ "name": "stdDeviation",
+ "value": ""
+ },
+ {
+ "name": "stitchTiles",
+ "value": ""
+ },
+ {
+ "name": "surfaceScale",
+ "value": ""
+ },
+ {
+ "name": "systemLanguage",
+ "value": ""
+ },
+ {
+ "name": "tableValues",
+ "value": ""
+ },
+ {
+ "name": "targetX",
+ "value": ""
+ },
+ {
+ "name": "targetY",
+ "value": ""
+ },
+ {
+ "name": "textLength",
+ "value": ""
+ },
+ {
+ "name": "viewBox",
+ "value": ""
+ },
+ {
+ "name": "viewTarget",
+ "value": ""
+ },
+ {
+ "name": "xChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "yChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "zoomAndPan",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' diffuseconstant='' edgemode='' filterunits='' filterres='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "attributeName",
+ "value": ""
+ },
+ {
+ "name": "attributeType",
+ "value": ""
+ },
+ {
+ "name": "baseFrequency",
+ "value": ""
+ },
+ {
+ "name": "baseProfile",
+ "value": ""
+ },
+ {
+ "name": "calcMode",
+ "value": ""
+ },
+ {
+ "name": "clipPathUnits",
+ "value": ""
+ },
+ {
+ "name": "diffuseConstant",
+ "value": ""
+ },
+ {
+ "name": "edgeMode",
+ "value": ""
+ },
+ {
+ "name": "filterUnits",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ },
+ {
+ "name": "glyphRef",
+ "value": ""
+ },
+ {
+ "name": "gradientTransform",
+ "value": ""
+ },
+ {
+ "name": "gradientUnits",
+ "value": ""
+ },
+ {
+ "name": "kernelMatrix",
+ "value": ""
+ },
+ {
+ "name": "kernelUnitLength",
+ "value": ""
+ },
+ {
+ "name": "keyPoints",
+ "value": ""
+ },
+ {
+ "name": "keySplines",
+ "value": ""
+ },
+ {
+ "name": "keyTimes",
+ "value": ""
+ },
+ {
+ "name": "lengthAdjust",
+ "value": ""
+ },
+ {
+ "name": "limitingConeAngle",
+ "value": ""
+ },
+ {
+ "name": "markerHeight",
+ "value": ""
+ },
+ {
+ "name": "markerUnits",
+ "value": ""
+ },
+ {
+ "name": "markerWidth",
+ "value": ""
+ },
+ {
+ "name": "maskContentUnits",
+ "value": ""
+ },
+ {
+ "name": "maskUnits",
+ "value": ""
+ },
+ {
+ "name": "numOctaves",
+ "value": ""
+ },
+ {
+ "name": "pathLength",
+ "value": ""
+ },
+ {
+ "name": "patternContentUnits",
+ "value": ""
+ },
+ {
+ "name": "patternTransform",
+ "value": ""
+ },
+ {
+ "name": "patternUnits",
+ "value": ""
+ },
+ {
+ "name": "pointsAtX",
+ "value": ""
+ },
+ {
+ "name": "pointsAtY",
+ "value": ""
+ },
+ {
+ "name": "pointsAtZ",
+ "value": ""
+ },
+ {
+ "name": "preserveAlpha",
+ "value": ""
+ },
+ {
+ "name": "preserveAspectRatio",
+ "value": ""
+ },
+ {
+ "name": "primitiveUnits",
+ "value": ""
+ },
+ {
+ "name": "refX",
+ "value": ""
+ },
+ {
+ "name": "refY",
+ "value": ""
+ },
+ {
+ "name": "repeatCount",
+ "value": ""
+ },
+ {
+ "name": "repeatDur",
+ "value": ""
+ },
+ {
+ "name": "requiredExtensions",
+ "value": ""
+ },
+ {
+ "name": "requiredFeatures",
+ "value": ""
+ },
+ {
+ "name": "specularConstant",
+ "value": ""
+ },
+ {
+ "name": "specularExponent",
+ "value": ""
+ },
+ {
+ "name": "spreadMethod",
+ "value": ""
+ },
+ {
+ "name": "startOffset",
+ "value": ""
+ },
+ {
+ "name": "stdDeviation",
+ "value": ""
+ },
+ {
+ "name": "stitchTiles",
+ "value": ""
+ },
+ {
+ "name": "surfaceScale",
+ "value": ""
+ },
+ {
+ "name": "systemLanguage",
+ "value": ""
+ },
+ {
+ "name": "tableValues",
+ "value": ""
+ },
+ {
+ "name": "targetX",
+ "value": ""
+ },
+ {
+ "name": "targetY",
+ "value": ""
+ },
+ {
+ "name": "textLength",
+ "value": ""
+ },
+ {
+ "name": "viewBox",
+ "value": ""
+ },
+ {
+ "name": "viewTarget",
+ "value": ""
+ },
+ {
+ "name": "xChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "yChannelSelector",
+ "value": ""
+ },
+ {
+ "name": "zoomAndPan",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" filterres=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" filterres=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "attributename",
+ "value": ""
+ },
+ {
+ "name": "attributetype",
+ "value": ""
+ },
+ {
+ "name": "basefrequency",
+ "value": ""
+ },
+ {
+ "name": "baseprofile",
+ "value": ""
+ },
+ {
+ "name": "calcmode",
+ "value": ""
+ },
+ {
+ "name": "clippathunits",
+ "value": ""
+ },
+ {
+ "name": "diffuseconstant",
+ "value": ""
+ },
+ {
+ "name": "edgemode",
+ "value": ""
+ },
+ {
+ "name": "filterunits",
+ "value": ""
+ },
+ {
+ "name": "glyphref",
+ "value": ""
+ },
+ {
+ "name": "gradienttransform",
+ "value": ""
+ },
+ {
+ "name": "gradientunits",
+ "value": ""
+ },
+ {
+ "name": "kernelmatrix",
+ "value": ""
+ },
+ {
+ "name": "kernelunitlength",
+ "value": ""
+ },
+ {
+ "name": "keypoints",
+ "value": ""
+ },
+ {
+ "name": "keysplines",
+ "value": ""
+ },
+ {
+ "name": "keytimes",
+ "value": ""
+ },
+ {
+ "name": "lengthadjust",
+ "value": ""
+ },
+ {
+ "name": "limitingconeangle",
+ "value": ""
+ },
+ {
+ "name": "markerheight",
+ "value": ""
+ },
+ {
+ "name": "markerunits",
+ "value": ""
+ },
+ {
+ "name": "markerwidth",
+ "value": ""
+ },
+ {
+ "name": "maskcontentunits",
+ "value": ""
+ },
+ {
+ "name": "maskunits",
+ "value": ""
+ },
+ {
+ "name": "numoctaves",
+ "value": ""
+ },
+ {
+ "name": "pathlength",
+ "value": ""
+ },
+ {
+ "name": "patterncontentunits",
+ "value": ""
+ },
+ {
+ "name": "patterntransform",
+ "value": ""
+ },
+ {
+ "name": "patternunits",
+ "value": ""
+ },
+ {
+ "name": "pointsatx",
+ "value": ""
+ },
+ {
+ "name": "pointsaty",
+ "value": ""
+ },
+ {
+ "name": "pointsatz",
+ "value": ""
+ },
+ {
+ "name": "preservealpha",
+ "value": ""
+ },
+ {
+ "name": "preserveaspectratio",
+ "value": ""
+ },
+ {
+ "name": "primitiveunits",
+ "value": ""
+ },
+ {
+ "name": "refx",
+ "value": ""
+ },
+ {
+ "name": "refy",
+ "value": ""
+ },
+ {
+ "name": "repeatcount",
+ "value": ""
+ },
+ {
+ "name": "repeatdur",
+ "value": ""
+ },
+ {
+ "name": "requiredextensions",
+ "value": ""
+ },
+ {
+ "name": "requiredfeatures",
+ "value": ""
+ },
+ {
+ "name": "specularconstant",
+ "value": ""
+ },
+ {
+ "name": "specularexponent",
+ "value": ""
+ },
+ {
+ "name": "spreadmethod",
+ "value": ""
+ },
+ {
+ "name": "startoffset",
+ "value": ""
+ },
+ {
+ "name": "stddeviation",
+ "value": ""
+ },
+ {
+ "name": "stitchtiles",
+ "value": ""
+ },
+ {
+ "name": "surfacescale",
+ "value": ""
+ },
+ {
+ "name": "systemlanguage",
+ "value": ""
+ },
+ {
+ "name": "tablevalues",
+ "value": ""
+ },
+ {
+ "name": "targetx",
+ "value": ""
+ },
+ {
+ "name": "targety",
+ "value": ""
+ },
+ {
+ "name": "textlength",
+ "value": ""
+ },
+ {
+ "name": "viewbox",
+ "value": ""
+ },
+ {
+ "name": "viewtarget",
+ "value": ""
+ },
+ {
+ "name": "xchannelselector",
+ "value": ""
+ },
+ {
+ "name": "ychannelselector",
+ "value": ""
+ },
+ {
+ "name": "zoomandpan",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math attributename=\"\" attributetype=\"\" basefrequency=\"\" baseprofile=\"\" calcmode=\"\" clippathunits=\"\" diffuseconstant=\"\" edgemode=\"\" filterunits=\"\" glyphref=\"\" gradienttransform=\"\" gradientunits=\"\" kernelmatrix=\"\" kernelunitlength=\"\" keypoints=\"\" keysplines=\"\" keytimes=\"\" lengthadjust=\"\" limitingconeangle=\"\" markerheight=\"\" markerunits=\"\" markerwidth=\"\" maskcontentunits=\"\" maskunits=\"\" numoctaves=\"\" pathlength=\"\" patterncontentunits=\"\" patterntransform=\"\" patternunits=\"\" pointsatx=\"\" pointsaty=\"\" pointsatz=\"\" preservealpha=\"\" preserveaspectratio=\"\" primitiveunits=\"\" refx=\"\" refy=\"\" repeatcount=\"\" repeatdur=\"\" requiredextensions=\"\" requiredfeatures=\"\" specularconstant=\"\" specularexponent=\"\" spreadmethod=\"\" startoffset=\"\" stddeviation=\"\" stitchtiles=\"\" surfacescale=\"\" systemlanguage=\"\" tablevalues=\"\" targetx=\"\" targety=\"\" textlength=\"\" viewbox=\"\" viewtarget=\"\" xchannelselector=\"\" ychannelselector=\"\" zoomandpan=\"\"></math></body></html>",
+ "noQuirksBodyHtml": "<math attributename=\"\" attributetype=\"\" basefrequency=\"\" baseprofile=\"\" calcmode=\"\" clippathunits=\"\" diffuseconstant=\"\" edgemode=\"\" filterunits=\"\" glyphref=\"\" gradienttransform=\"\" gradientunits=\"\" kernelmatrix=\"\" kernelunitlength=\"\" keypoints=\"\" keysplines=\"\" keytimes=\"\" lengthadjust=\"\" limitingconeangle=\"\" markerheight=\"\" markerunits=\"\" markerwidth=\"\" maskcontentunits=\"\" maskunits=\"\" numoctaves=\"\" pathlength=\"\" patterncontentunits=\"\" patterntransform=\"\" patternunits=\"\" pointsatx=\"\" pointsaty=\"\" pointsatz=\"\" preservealpha=\"\" preserveaspectratio=\"\" primitiveunits=\"\" refx=\"\" refy=\"\" repeatcount=\"\" repeatdur=\"\" requiredextensions=\"\" requiredfeatures=\"\" specularconstant=\"\" specularexponent=\"\" spreadmethod=\"\" startoffset=\"\" stddeviation=\"\" stitchtiles=\"\" surfacescale=\"\" systemlanguage=\"\" tablevalues=\"\" targetx=\"\" targety=\"\" textlength=\"\" viewbox=\"\" viewtarget=\"\" xchannelselector=\"\" ychannelselector=\"\" zoomandpan=\"\"></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "contentscripttype",
+ "value": ""
+ },
+ {
+ "name": "contentstyletype",
+ "value": ""
+ },
+ {
+ "name": "externalresourcesrequired",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' EXTERNALRESOURCESREQUIRED='' FILTERRES=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "contentscripttype",
+ "value": ""
+ },
+ {
+ "name": "contentstyletype",
+ "value": ""
+ },
+ {
+ "name": "externalresourcesrequired",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg contentscripttype='' contentstyletype='' externalresourcesrequired='' filterres=''></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "attrs": [
+ {
+ "name": "contentscripttype",
+ "value": ""
+ },
+ {
+ "name": "contentstyletype",
+ "value": ""
+ },
+ {
+ "name": "externalresourcesrequired",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></svg></body></html>",
+ "noQuirksBodyHtml": "<svg contentScriptType=\"\" contentStyleType=\"\" externalResourcesRequired=\"\" filterres=\"\"></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><math contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "contentscripttype",
+ "value": ""
+ },
+ {
+ "name": "contentstyletype",
+ "value": ""
+ },
+ {
+ "name": "externalresourcesrequired",
+ "value": ""
+ },
+ {
+ "name": "filterres",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></math></body></html>",
+ "noQuirksBodyHtml": "<math contentscripttype=\"\" contentstyletype=\"\" externalresourcesrequired=\"\" filterres=\"\"></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg altGlyph": true,
+ "svg altGlyphDef": true,
+ "svg altGlyphItem": true,
+ "svg animateColor": true,
+ "svg animateMotion": true,
+ "svg animateTransform": true,
+ "svg clipPath": true,
+ "svg feBlend": true,
+ "svg feColorMatrix": true,
+ "svg feComponentTransfer": true,
+ "svg feComposite": true,
+ "svg feConvolveMatrix": true,
+ "svg feDiffuseLighting": true,
+ "svg feDisplacementMap": true,
+ "svg feDistantLight": true,
+ "svg feFlood": true,
+ "svg feFuncA": true,
+ "svg feFuncB": true,
+ "svg feFuncG": true,
+ "svg feFuncR": true,
+ "svg feGaussianBlur": true,
+ "svg feImage": true,
+ "svg feMerge": true,
+ "svg feMergeNode": true,
+ "svg feMorphology": true,
+ "svg feOffset": true,
+ "svg fePointLight": true,
+ "svg feSpecularLighting": true,
+ "svg feSpotLight": true,
+ "svg feTile": true,
+ "svg feTurbulence": true,
+ "svg foreignObject": true,
+ "svg glyphRef": true,
+ "svg linearGradient": true,
+ "svg radialGradient": true,
+ "svg textPath": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "altGlyph",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphDef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphItem",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateColor",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateMotion",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateTransform",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "clipPath",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feBlend",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feColorMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComponentTransfer",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComposite",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feConvolveMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDiffuseLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDisplacementMap",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDistantLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFlood",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncA",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncB",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncG",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncR",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feGaussianBlur",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feImage",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMerge",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMergeNode",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMorphology",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feOffset",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "fePointLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpecularLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpotLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTile",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTurbulence",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "glyphRef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "linearGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "radialGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "textPath",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg altGlyph": true,
+ "svg altGlyphDef": true,
+ "svg altGlyphItem": true,
+ "svg animateColor": true,
+ "svg animateMotion": true,
+ "svg animateTransform": true,
+ "svg clipPath": true,
+ "svg feBlend": true,
+ "svg feColorMatrix": true,
+ "svg feComponentTransfer": true,
+ "svg feComposite": true,
+ "svg feConvolveMatrix": true,
+ "svg feDiffuseLighting": true,
+ "svg feDisplacementMap": true,
+ "svg feDistantLight": true,
+ "svg feFlood": true,
+ "svg feFuncA": true,
+ "svg feFuncB": true,
+ "svg feFuncG": true,
+ "svg feFuncR": true,
+ "svg feGaussianBlur": true,
+ "svg feImage": true,
+ "svg feMerge": true,
+ "svg feMergeNode": true,
+ "svg feMorphology": true,
+ "svg feOffset": true,
+ "svg fePointLight": true,
+ "svg feSpecularLighting": true,
+ "svg feSpotLight": true,
+ "svg feTile": true,
+ "svg feTurbulence": true,
+ "svg foreignObject": true,
+ "svg glyphRef": true,
+ "svg linearGradient": true,
+ "svg radialGradient": true,
+ "svg textPath": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "altGlyph",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphDef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphItem",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateColor",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateMotion",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateTransform",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "clipPath",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feBlend",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feColorMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComponentTransfer",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComposite",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feConvolveMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDiffuseLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDisplacementMap",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDistantLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFlood",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncA",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncB",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncG",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncR",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feGaussianBlur",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feImage",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMerge",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMergeNode",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMorphology",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feOffset",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "fePointLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpecularLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpotLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTile",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTurbulence",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "glyphRef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "linearGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "radialGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "textPath",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg altGlyph": true,
+ "svg altGlyphDef": true,
+ "svg altGlyphItem": true,
+ "svg animateColor": true,
+ "svg animateMotion": true,
+ "svg animateTransform": true,
+ "svg clipPath": true,
+ "svg feBlend": true,
+ "svg feColorMatrix": true,
+ "svg feComponentTransfer": true,
+ "svg feComposite": true,
+ "svg feConvolveMatrix": true,
+ "svg feDiffuseLighting": true,
+ "svg feDisplacementMap": true,
+ "svg feDistantLight": true,
+ "svg feFlood": true,
+ "svg feFuncA": true,
+ "svg feFuncB": true,
+ "svg feFuncG": true,
+ "svg feFuncR": true,
+ "svg feGaussianBlur": true,
+ "svg feImage": true,
+ "svg feMerge": true,
+ "svg feMergeNode": true,
+ "svg feMorphology": true,
+ "svg feOffset": true,
+ "svg fePointLight": true,
+ "svg feSpecularLighting": true,
+ "svg feSpotLight": true,
+ "svg feTile": true,
+ "svg feTurbulence": true,
+ "svg foreignObject": true,
+ "svg glyphRef": true,
+ "svg linearGradient": true,
+ "svg radialGradient": true,
+ "svg textPath": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "altGlyph",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphDef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "altGlyphItem",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateColor",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateMotion",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "animateTransform",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "clipPath",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feBlend",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feColorMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComponentTransfer",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feComposite",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feConvolveMatrix",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDiffuseLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDisplacementMap",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feDistantLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFlood",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncA",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncB",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncG",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feFuncR",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feGaussianBlur",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feImage",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMerge",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMergeNode",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feMorphology",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feOffset",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "fePointLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpecularLighting",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feSpotLight",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTile",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "feTurbulence",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "glyphRef",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "linearGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "radialGradient",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "textPath",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math altglyph": true,
+ "math altglyphdef": true,
+ "math altglyphitem": true,
+ "math animatecolor": true,
+ "math animatemotion": true,
+ "math animatetransform": true,
+ "math clippath": true,
+ "math feblend": true,
+ "math fecolormatrix": true,
+ "math fecomponenttransfer": true,
+ "math fecomposite": true,
+ "math feconvolvematrix": true,
+ "math fediffuselighting": true,
+ "math fedisplacementmap": true,
+ "math fedistantlight": true,
+ "math feflood": true,
+ "math fefunca": true,
+ "math fefuncb": true,
+ "math fefuncg": true,
+ "math fefuncr": true,
+ "math fegaussianblur": true,
+ "math feimage": true,
+ "math femerge": true,
+ "math femergenode": true,
+ "math femorphology": true,
+ "math feoffset": true,
+ "math fepointlight": true,
+ "math fespecularlighting": true,
+ "math fespotlight": true,
+ "math fetile": true,
+ "math feturbulence": true,
+ "math foreignobject": true,
+ "math glyphref": true,
+ "math lineargradient": true,
+ "math radialgradient": true,
+ "math textpath": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "altglyph",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "altglyphdef",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "altglyphitem",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "animatecolor",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "animatemotion",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "animatetransform",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "clippath",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feblend",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fecolormatrix",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fecomponenttransfer",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fecomposite",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feconvolvematrix",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fediffuselighting",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fedisplacementmap",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fedistantlight",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feflood",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fefunca",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fefuncb",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fefuncg",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fefuncr",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fegaussianblur",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feimage",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "femerge",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "femergenode",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "femorphology",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feoffset",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fepointlight",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fespecularlighting",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fespotlight",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "fetile",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "feturbulence",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "foreignobject",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "glyphref",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "lineargradient",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "radialgradient",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "textpath",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><altglyph></altglyph><altglyphdef></altglyphdef><altglyphitem></altglyphitem><animatecolor></animatecolor><animatemotion></animatemotion><animatetransform></animatetransform><clippath></clippath><feblend></feblend><fecolormatrix></fecolormatrix><fecomponenttransfer></fecomponenttransfer><fecomposite></fecomposite><feconvolvematrix></feconvolvematrix><fediffuselighting></fediffuselighting><fedisplacementmap></fedisplacementmap><fedistantlight></fedistantlight><feflood></feflood><fefunca></fefunca><fefuncb></fefuncb><fefuncg></fefuncg><fefuncr></fefuncr><fegaussianblur></fegaussianblur><feimage></feimage><femerge></femerge><femergenode></femergenode><femorphology></femorphology><feoffset></feoffset><fepointlight></fepointlight><fespecularlighting></fespecularlighting><fespotlight></fespotlight><fetile></fetile><feturbulence></feturbulence><foreignobject></foreignobject><glyphref></glyphref><lineargradient></lineargradient><radialgradient></radialgradient><textpath></textpath></math></body></html>",
+ "noQuirksBodyHtml": "<math><altglyph></altglyph><altglyphdef></altglyphdef><altglyphitem></altglyphitem><animatecolor></animatecolor><animatemotion></animatemotion><animatetransform></animatetransform><clippath></clippath><feblend></feblend><fecolormatrix></fecolormatrix><fecomponenttransfer></fecomponenttransfer><fecomposite></fecomposite><feconvolvematrix></feconvolvematrix><fediffuselighting></fediffuselighting><fedisplacementmap></fedisplacementmap><fedistantlight></fedistantlight><feflood></feflood><fefunca></fefunca><fefuncb></fefuncb><fefuncg></fefuncg><fefuncr></fefuncr><fegaussianblur></fegaussianblur><feimage></feimage><femerge></femerge><femergenode></femergenode><femorphology></femorphology><feoffset></feoffset><fepointlight></fepointlight><fespecularlighting></fespecularlighting><fespotlight></fespotlight><fetile></fetile><feturbulence></feturbulence><foreignobject></foreignobject><glyphref></glyphref><lineargradient></lineargradient><radialgradient></radialgradient><textpath></textpath></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><svg><solidColor /></svg>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg solidcolor": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "solidcolor",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><solidcolor></solidcolor></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><solidcolor></solidcolor></svg>"
+ }
+ }
+ ],
+ "tests12.dat": [
+ {
+ "data": "<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mtext": true,
+ "i": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "svg desc": true,
+ "b": true,
+ "svg g": true,
+ "svg foreignObject": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "eggs"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "spam"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</p></body></html>",
+ "noQuirksBodyHtml": "<p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true,
+ "i": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "svg desc": true,
+ "b": true,
+ "svg g": true,
+ "svg foreignObject": true,
+ "p": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "eggs"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "spam"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "g",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</body></html>",
+ "noQuirksBodyHtml": "foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar"
+ }
+ }
+ ],
+ "tests14.dat": [
+ {
+ "data": "<!DOCTYPE html><html><body><xyz:abc></xyz:abc>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xyz:abc": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xyz:abc"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><xyz:abc></xyz:abc></body></html>",
+ "noQuirksBodyHtml": "<xyz:abc></xyz:abc>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xyz:abc": true,
+ "span": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xyz:abc"
+ },
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><xyz:abc></xyz:abc><span></span></body></html>",
+ "noQuirksBodyHtml": "<xyz:abc></xyz:abc><span></span>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc>",
+ "errors": [
+ "(1,38): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xyz:abc": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "abc:def",
+ "value": "gh"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xyz:abc"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html abc:def=\"gh\"><head></head><body><xyz:abc></xyz:abc></body></html>",
+ "noQuirksBodyHtml": "<xyz:abc></xyz:abc>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo>",
+ "errors": [
+ "(1,53): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "xml:lang",
+ "value": "bar"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html xml:lang=\"bar\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html 123=456>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "123",
+ "value": "456"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html 123=\"456\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html 123=456><html 789=012>",
+ "errors": [
+ "(1,43): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "123",
+ "value": "456"
+ },
+ {
+ "name": "789",
+ "value": "012"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html 123=\"456\" 789=\"012\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><body 789=012>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "789",
+ "value": "012"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body 789=\"012\"></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "tests15.dat": [
+ {
+ "data": "<!DOCTYPE html><p><b><i><u></p> <p>X",
+ "errors": [
+ "(1,31): unexpected-end-tag",
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "i": true,
+ "u": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "u"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "u",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><b><i><u></u></i></b></p><b><i><u> <p>X</p></u></i></b></body></html>",
+ "noQuirksBodyHtml": "<p><b><i><u></u></i></b></p><b><i><u> <p>X</p></u></i></b>"
+ }
+ },
+ {
+ "data": "<p><b><i><u></p>\n<p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-end-tag",
+ "(2,4): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "i": true,
+ "u": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "u"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "u",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b><i><u></u></i></b></p><b><i><u>\n<p>X</p></u></i></b></body></html>",
+ "noQuirksBodyHtml": "<p><b><i><u></u></i></b></p><b><i><u>\n<p>X</p></u></i></b>"
+ }
+ },
+ {
+ "data": "<!doctype html></html> <head>",
+ "errors": [
+ "(1,29): expected-eof-but-got-start-tag",
+ "(1,29): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> </body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html></body><meta>",
+ "errors": [
+ "(1,28): unexpected-start-tag-after-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "meta"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><meta></body></html>",
+ "noQuirksBodyHtml": "<meta>"
+ }
+ },
+ {
+ "data": "<html></html><!-- foo -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ },
+ {
+ "comment": " foo "
+ }
+ ],
+ "html": "<html><head></head><body></body></html><!-- foo -->",
+ "noQuirksBodyHtml": "<!-- foo -->"
+ }
+ },
+ {
+ "data": "<!doctype html></body><title>X</title>",
+ "errors": [
+ "(1,29): unexpected-start-tag-after-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>X</title></body></html>",
+ "noQuirksBodyHtml": "<title>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> X<meta></table>",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,30): foster-parenting-start-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " X"
+ },
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> X<meta><table></table></body></html>",
+ "noQuirksBodyHtml": " X<meta><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> x</table>",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " x"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> x<table></table></body></html>",
+ "noQuirksBodyHtml": " x<table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> x </table>",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,25): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " x "
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> x <table></table></body></html>",
+ "noQuirksBodyHtml": " x <table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr> x</table>",
+ "errors": [
+ "(1,27): foster-parenting-character",
+ "(1,28): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " x"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> x<table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": " x<table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table>X<style> <tr>x </style> </table>",
+ "errors": [
+ "(1,23): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <tr>x ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<table><style> <tr>x </style> </table></body></html>",
+ "noQuirksBodyHtml": "X<table><style> <tr>x </style> </table>"
+ }
+ },
+ {
+ "data": "<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div>",
+ "errors": [
+ "(1,30): foster-parenting-start-tag",
+ "(1,31): foster-parenting-character",
+ "(1,32): foster-parenting-character",
+ "(1,33): foster-parenting-character",
+ "(1,37): foster-parenting-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div><a>foo</a><table> <tbody><tr><td>bar</td> </tr></tbody></table></div></body></html>",
+ "noQuirksBodyHtml": "<div><a>foo</a><table> <tbody><tr><td>bar</td> </tr></tbody></table></div>"
+ }
+ },
+ {
+ "data": "<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,7): unexpected-start-tag-ignored",
+ "(1,15): unexpected-end-tag",
+ "(1,23): unexpected-end-tag",
+ "(1,33): unexpected-start-tag",
+ "(1,99): expected-named-closing-tag-but-got-eof",
+ "(1,99): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true,
+ "noframes": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "</frameset><noframes>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes></noframes></frameset></html>",
+ "noQuirksBodyHtml": "<noframes></frameset><noframes></noframes>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><object></html>",
+ "errors": [
+ "(1,30): expected-body-in-scope",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "object": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "object"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><object></object></body></html>",
+ "noQuirksBodyHtml": "<object></object>"
+ }
+ }
+ ],
+ "tests16.dat": [
+ {
+ "data": "<!doctype html><script>",
+ "errors": [
+ "(1,23): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script>a",
+ "errors": [
+ "(1,24): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script>a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script>a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><",
+ "errors": [
+ "(1,24): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></",
+ "errors": [
+ "(1,25): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></S",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</S",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></S</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></S</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SC",
+ "errors": [
+ "(1,27): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SC",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SC</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SC</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCR",
+ "errors": [
+ "(1,28): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SCR</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCR</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCRI",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRI",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SCRI</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRI</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCRIP",
+ "errors": [
+ "(1,30): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRIP",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SCRIP</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRIP</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCRIPT",
+ "errors": [
+ "(1,31): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRIPT",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></SCRIPT</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRIPT</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></SCRIPT ",
+ "errors": [
+ "(1,32): expected-attribute-name-but-got-eof",
+ "(1,32): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></s",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></s</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></sc",
+ "errors": [
+ "(1,27): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</sc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></sc</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></sc</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></scr",
+ "errors": [
+ "(1,28): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scr",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></scr</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scr</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></scri",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scri",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></scri</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scri</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></scrip",
+ "errors": [
+ "(1,30): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scrip",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></scrip</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scrip</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></script",
+ "errors": [
+ "(1,31): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script></script ",
+ "errors": [
+ "(1,32): expected-attribute-name-but-got-eof",
+ "(1,32): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!",
+ "errors": [
+ "(1,25): expected-script-data-but-got-eof",
+ "(1,25): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!a",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!-",
+ "errors": [
+ "(1,26): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!-",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!-</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!-</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!-a",
+ "errors": [
+ "(1,27): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!-a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!-a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!-a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--",
+ "errors": [
+ "(1,27): expected-named-closing-tag-but-got-eof",
+ "(1,27): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--a",
+ "errors": [
+ "(1,28): expected-named-closing-tag-but-got-eof",
+ "(1,28): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<",
+ "errors": [
+ "(1,28): expected-named-closing-tag-but-got-eof",
+ "(1,28): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<a",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--</",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--</",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--</</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--</script",
+ "errors": [
+ "(1,35): expected-named-closing-tag-but-got-eof",
+ "(1,35): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--</script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--</script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--</script ",
+ "errors": [
+ "(1,36): expected-attribute-name-but-got-eof",
+ "(1,36): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<s",
+ "errors": [
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<s</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script",
+ "errors": [
+ "(1,34): expected-named-closing-tag-but-got-eof",
+ "(1,34): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script ",
+ "errors": [
+ "(1,35): eof-in-script-in-script",
+ "(1,35): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script <",
+ "errors": [
+ "(1,36): eof-in-script-in-script",
+ "(1,36): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script <",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script <</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script <</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script <a",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script <a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script <a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script <a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </s",
+ "errors": [
+ "(1,38): eof-in-script-in-script",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </s</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script",
+ "errors": [
+ "(1,43): eof-in-script-in-script",
+ "(1,43): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </scripta",
+ "errors": [
+ "(1,44): eof-in-script-in-script",
+ "(1,44): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </scripta",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </scripta</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </scripta</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script ",
+ "errors": [
+ "(1,44): expected-named-closing-tag-but-got-eof",
+ "(1,44): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script>",
+ "errors": [
+ "(1,44): expected-named-closing-tag-but-got-eof",
+ "(1,44): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script/",
+ "errors": [
+ "(1,44): expected-named-closing-tag-but-got-eof",
+ "(1,44): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script/",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script/</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script/</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script <",
+ "errors": [
+ "(1,45): expected-named-closing-tag-but-got-eof",
+ "(1,45): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script <",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script <</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script <</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script <a",
+ "errors": [
+ "(1,46): expected-named-closing-tag-but-got-eof",
+ "(1,46): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script <a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script <a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script <a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </",
+ "errors": [
+ "(1,46): expected-named-closing-tag-but-got-eof",
+ "(1,46): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script </",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </script",
+ "errors": [
+ "(1,52): expected-named-closing-tag-but-got-eof",
+ "(1,52): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script </script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </script ",
+ "errors": [
+ "(1,53): expected-attribute-name-but-got-eof",
+ "(1,53): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </script/",
+ "errors": [
+ "(1,53): unexpected-EOF-after-solidus-in-tag",
+ "(1,53): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script </script </script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script -",
+ "errors": [
+ "(1,36): eof-in-script-in-script",
+ "(1,36): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script -</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script -a",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script -a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script -<",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script -<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -<</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --",
+ "errors": [
+ "(1,37): eof-in-script-in-script",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --a",
+ "errors": [
+ "(1,38): eof-in-script-in-script",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --a</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --<",
+ "errors": [
+ "(1,38): eof-in-script-in-script",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --<</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script -->",
+ "errors": [
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --><",
+ "errors": [
+ "(1,39): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --><",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --><</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --><</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></",
+ "errors": [
+ "(1,40): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --></",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></script",
+ "errors": [
+ "(1,46): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --></script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></script ",
+ "errors": [
+ "(1,47): expected-attribute-name-but-got-eof",
+ "(1,47): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></script/",
+ "errors": [
+ "(1,47): unexpected-EOF-after-solidus-in-tag",
+ "(1,47): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script --></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script><\\/script>--></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script><\\/script>-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script><\\/script>--></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script><\\/script>--></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></scr'+'ipt>--></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></scr'+'ipt>-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></scr'+'ipt>--></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt>--></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>--><!--</script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>--><!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>--><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>--><!--</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>-- ></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>-- >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>-- ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>-- ></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>- -></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>- ->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>- -></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>- -></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>- - ></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>- - >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>- - ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>- - ></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></script><script></script>-></script>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>-></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>-></script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script>--!></script>X",
+ "errors": [
+ "(1,49): expected-named-closing-tag-but-got-eof",
+ "(1,49): unexpected-EOF-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script>--!></script>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script>--!></script>X</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script>--!></script>X</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<scr'+'ipt></script>--></script>",
+ "errors": [
+ "(1,59): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<scr'+'ipt>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<scr'+'ipt></script></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<script><!--<scr'+'ipt></script>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><script><!--<script></scr'+'ipt></script>X",
+ "errors": [
+ "(1,57): expected-named-closing-tag-but-got-eof",
+ "(1,57): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></scr'+'ipt></script>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script><!--<script></scr'+'ipt></script>X</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt></script>X</script>"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--<style></style>--></style>",
+ "errors": [
+ "(1,52): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--<style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--<style></style></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<style><!--<style></style>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--</style>X",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--</style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style><!--</style>X"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--...</style>...--></style>",
+ "errors": [
+ "(1,51): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "...-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--...</style></head><body>...--></body></html>",
+ "noQuirksBodyHtml": "<style><!--...</style>...-->"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--...<style><!--...--!></style>--></style>",
+ "errors": [
+ "(1,66): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...<style><!--...--!>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--...<style><!--...--!></style></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<style><!--...<style><!--...--!></style>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><style><!--...</style><!-- --><style>@import ...</style>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "@import ...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style><!--...</style><!-- --><style>@import ...</style></head><body></body></html>",
+ "noQuirksBodyHtml": "<style><!--...</style><!-- --><style>@import ...</style>"
+ }
+ },
+ {
+ "data": "<!doctype html><style>...<style><!--...</style><!-- --></style>",
+ "errors": [
+ "(1,63): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "...<style><!--...",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": " "
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style>...<style><!--...</style><!-- --></head><body></body></html>",
+ "noQuirksBodyHtml": "<style>...<style><!--...</style><!-- -->"
+ }
+ },
+ {
+ "data": "<!doctype html><style>...<!--[if IE]><style>...</style>X",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "...<!--[if IE]><style>...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><style>...<!--[if IE]><style>...</style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style>...<!--[if IE]><style>...</style>X"
+ }
+ },
+ {
+ "data": "<!doctype html><title><!--<title></title>--></title>",
+ "errors": [
+ "(1,52): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--<title>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title><!--<title></title></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<title><!--<title></title>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><title></title></title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "</title>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title></title></title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title></title></title>"
+ }
+ },
+ {
+ "data": "<!doctype html><title>foo/title><link></head><body>X",
+ "errors": [
+ "(1,52): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "foo/title><link></head><body>X",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>foo/title><link></head><body>X</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>foo/title><link></head><body>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><!--<noscript></noscript>--></noscript>",
+ "errors": [
+ "(1,64): unexpected-end-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--<noscript>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><!--<noscript></noscript></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><!--<noscript></noscript>--></noscript>",
+ "errors": [],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "<noscript></noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><!--<noscript></noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>",
+ "errors": [],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><!--</noscript></head><body>X<noscript>--></noscript></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>",
+ "errors": [],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "</noscript>X<noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><!--</noscript>X<noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><iframe></noscript>X",
+ "errors": [],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<iframe>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript><iframe></noscript></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noscript><iframe></noscript>X",
+ "errors": [
+ " * (1,34) unexpected token in head noscript",
+ " * (1,46) unexpected EOF"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true,
+ "iframe": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "</noscript>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noscript></noscript></head><body><iframe></noscript>X</iframe></body></html>",
+ "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
+ }
+ },
+ {
+ "data": "<!doctype html><noframes><!--<noframes></noframes>--></noframes>",
+ "errors": [
+ "(1,64): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noframes": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "<!--<noframes>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noframes><!--<noframes></noframes></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<noframes><!--<noframes></noframes>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><noframes><body><script><!--...</script></body></noframes></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noframes": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "<body><script><!--...</script></body>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><noframes><body><script><!--...</script></body></noframes></head><body></body></html>",
+ "noQuirksBodyHtml": "<noframes><body><script><!--...</script></body></noframes>"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea><!--<textarea></textarea>--></textarea>",
+ "errors": [
+ "(1,64): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<!--<textarea>",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea><!--<textarea></textarea>--></body></html>",
+ "noQuirksBodyHtml": "<textarea><!--<textarea></textarea>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea></textarea></textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "</textarea>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea></textarea></textarea>"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea><</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea><</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea><</textarea>"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea>a<b</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "a<b",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>a<b</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>a<b</textarea>"
+ }
+ },
+ {
+ "data": "<!doctype html><iframe><!--<iframe></iframe>--></iframe>",
+ "errors": [
+ "(1,56): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "<!--<iframe>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><iframe><!--<iframe></iframe>--></body></html>",
+ "noQuirksBodyHtml": "<iframe><!--<iframe></iframe>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><iframe>...<!--X->...<!--/X->...</iframe>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "...<!--X->...<!--/X->...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><iframe>...<!--X->...<!--/X->...</iframe></body></html>",
+ "noQuirksBodyHtml": "<iframe>...<!--X->...<!--/X->...</iframe>"
+ }
+ },
+ {
+ "data": "<!doctype html><xmp><!--<xmp></xmp>--></xmp>",
+ "errors": [
+ "(1,44): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xmp": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xmp",
+ "children": [
+ {
+ "text": "<!--<xmp>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><xmp><!--<xmp></xmp>--></body></html>",
+ "noQuirksBodyHtml": "<xmp><!--<xmp></xmp>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><noembed><!--<noembed></noembed>--></noembed>",
+ "errors": [
+ "(1,60): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "noembed": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "noembed",
+ "children": [
+ {
+ "text": "<!--<noembed>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><noembed><!--<noembed></noembed>--></body></html>",
+ "noQuirksBodyHtml": "<noembed><!--<noembed></noembed>-->"
+ }
+ },
+ {
+ "data": "<script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,8): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<script>a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,9): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script>a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script>a</script>"
+ }
+ },
+ {
+ "data": "<script><",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,9): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><</script>"
+ }
+ },
+ {
+ "data": "<script></",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,10): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></</script>"
+ }
+ },
+ {
+ "data": "<script></S",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</S",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></S</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></S</script>"
+ }
+ },
+ {
+ "data": "<script></SC",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SC",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SC</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SC</script>"
+ }
+ },
+ {
+ "data": "<script></SCR",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,13): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCR",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SCR</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCR</script>"
+ }
+ },
+ {
+ "data": "<script></SCRI",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRI",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SCRI</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRI</script>"
+ }
+ },
+ {
+ "data": "<script></SCRIP",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,15): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRIP",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SCRIP</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRIP</script>"
+ }
+ },
+ {
+ "data": "<script></SCRIPT",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,16): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</SCRIPT",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></SCRIPT</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></SCRIPT</script>"
+ }
+ },
+ {
+ "data": "<script></SCRIPT ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,17): expected-attribute-name-but-got-eof",
+ "(1,17): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<script></s",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></s</script>"
+ }
+ },
+ {
+ "data": "<script></sc",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</sc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></sc</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></sc</script>"
+ }
+ },
+ {
+ "data": "<script></scr",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,13): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scr",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></scr</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scr</script>"
+ }
+ },
+ {
+ "data": "<script></scri",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scri",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></scri</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scri</script>"
+ }
+ },
+ {
+ "data": "<script></scrip",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,15): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</scrip",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></scrip</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></scrip</script>"
+ }
+ },
+ {
+ "data": "<script></script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,16): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script</script>"
+ }
+ },
+ {
+ "data": "<script></script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,17): expected-attribute-name-but-got-eof",
+ "(1,17): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<script><!",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,10): expected-script-data-but-got-eof",
+ "(1,10): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!</script>"
+ }
+ },
+ {
+ "data": "<script><!a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!a</script>"
+ }
+ },
+ {
+ "data": "<script><!-",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!-",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!-</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!-</script>"
+ }
+ },
+ {
+ "data": "<script><!-a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!-a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!-a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!-a</script>"
+ }
+ },
+ {
+ "data": "<script><!--",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,12): expected-named-closing-tag-but-got-eof",
+ "(1,12): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script>"
+ }
+ },
+ {
+ "data": "<script><!--a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,13): expected-named-closing-tag-but-got-eof",
+ "(1,13): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,13): expected-named-closing-tag-but-got-eof",
+ "(1,13): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<</script>"
+ }
+ },
+ {
+ "data": "<script><!--<a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof",
+ "(1,14): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<a</script>"
+ }
+ },
+ {
+ "data": "<script><!--</",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof",
+ "(1,14): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--</",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--</</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</</script>"
+ }
+ },
+ {
+ "data": "<script><!--</script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,20): expected-named-closing-tag-but-got-eof",
+ "(1,20): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--</script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--</script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script</script>"
+ }
+ },
+ {
+ "data": "<script><!--</script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,21): expected-attribute-name-but-got-eof",
+ "(1,21): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--</script>"
+ }
+ },
+ {
+ "data": "<script><!--<s",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,14): expected-named-closing-tag-but-got-eof",
+ "(1,14): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<s</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,19): expected-named-closing-tag-but-got-eof",
+ "(1,19): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,20): eof-in-script-in-script",
+ "(1,20): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script <",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,21): eof-in-script-in-script",
+ "(1,21): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script <",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script <</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script <</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script <a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-script-in-script",
+ "(1,22): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script <a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script <a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script <a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-script-in-script",
+ "(1,22): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </s",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): eof-in-script-in-script",
+ "(1,23): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </s",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </s</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </s</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,28): eof-in-script-in-script",
+ "(1,28): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </scripta",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,29): eof-in-script-in-script",
+ "(1,29): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </scripta",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </scripta</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </scripta</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script/",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,29): expected-named-closing-tag-but-got-eof",
+ "(1,29): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script/",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script/</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script/</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script <",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,30): expected-named-closing-tag-but-got-eof",
+ "(1,30): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script <",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script <</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script <</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script <a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,31): expected-named-closing-tag-but-got-eof",
+ "(1,31): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script <a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script <a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script <a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,31): expected-named-closing-tag-but-got-eof",
+ "(1,31): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script </",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,37): expected-named-closing-tag-but-got-eof",
+ "(1,37): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script </script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,38): expected-attribute-name-but-got-eof",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </script/",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,38): unexpected-EOF-after-solidus-in-tag",
+ "(1,38): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script </script </script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script </script ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script </script </script>"
+ }
+ },
+ {
+ "data": "<script><!--<script -",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,21): eof-in-script-in-script",
+ "(1,21): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script -</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script -a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-script-in-script",
+ "(1,22): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script -a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script -a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): eof-in-script-in-script",
+ "(1,22): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --a",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): eof-in-script-in-script",
+ "(1,23): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --a",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --a</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --a</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script -->",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,23): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --><",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,24): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --><",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --><</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --><</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,25): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --></",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></script",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,31): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script --></script",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></script ",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,32): expected-attribute-name-but-got-eof",
+ "(1,32): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></script/",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,32): unexpected-EOF-after-solidus-in-tag",
+ "(1,32): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script --></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script -->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script --></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script><\\/script>--></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script><\\/script>-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script><\\/script>--></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script><\\/script>--></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></scr'+'ipt>--></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></scr'+'ipt>-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></scr'+'ipt>--></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt>--></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>--><!--</script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>--><!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>--><!--</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>--><!--</script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>-- ></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>-- >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>-- ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>-- ></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>- -></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>- ->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>- -></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>- -></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>- - ></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>- - >",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>- - ></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>- - ></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script></script><script></script>-></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></script><script></script>->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></script><script></script>-></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></script><script></script>-></script>"
+ }
+ },
+ {
+ "data": "<script><!--<script>--!></script>X",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,34): expected-named-closing-tag-but-got-eof",
+ "(1,34): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script>--!></script>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script>--!></script>X</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script>--!></script>X</script>"
+ }
+ },
+ {
+ "data": "<script><!--<scr'+'ipt></script>--></script>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,44): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<scr'+'ipt>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<scr'+'ipt></script></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<script><!--<scr'+'ipt></script>-->"
+ }
+ },
+ {
+ "data": "<script><!--<script></scr'+'ipt></script>X",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,42): expected-named-closing-tag-but-got-eof",
+ "(1,42): unexpected-eof-in-text-mode"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "<!--<script></scr'+'ipt></script>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script><!--<script></scr'+'ipt></script>X</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt></script>X</script>"
+ }
+ },
+ {
+ "data": "<style><!--<style></style>--></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,37): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--<style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--<style></style></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<style><!--<style></style>-->"
+ }
+ },
+ {
+ "data": "<style><!--</style>X",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--</style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style><!--</style>X"
+ }
+ },
+ {
+ "data": "<style><!--...</style>...--></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,36): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "...-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--...</style></head><body>...--></body></html>",
+ "noQuirksBodyHtml": "<style><!--...</style>...-->"
+ }
+ },
+ {
+ "data": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X"
+ }
+ },
+ {
+ "data": "<style><!--...<style><!--...--!></style>--></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,51): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...<style><!--...--!>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--...<style><!--...--!></style></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<style><!--...<style><!--...--!></style>-->"
+ }
+ },
+ {
+ "data": "<style><!--...</style><!-- --><style>@import ...</style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "<!--...",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "@import ...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style><!--...</style><!-- --><style>@import ...</style></head><body></body></html>",
+ "noQuirksBodyHtml": "<style><!--...</style><!-- --><style>@import ...</style>"
+ }
+ },
+ {
+ "data": "<style>...<style><!--...</style><!-- --></style>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,48): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "...<style><!--...",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": " "
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style>...<style><!--...</style><!-- --></head><body></body></html>",
+ "noQuirksBodyHtml": "<style>...<style><!--...</style><!-- -->"
+ }
+ },
+ {
+ "data": "<style>...<!--[if IE]><style>...</style>X",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "...<!--[if IE]><style>...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style>...<!--[if IE]><style>...</style></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<style>...<!--[if IE]><style>...</style>X"
+ }
+ },
+ {
+ "data": "<title><!--<title></title>--></title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,37): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--<title>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title><!--<title></title></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<title><!--<title></title>-->"
+ }
+ },
+ {
+ "data": "<title></title></title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "</title>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title></title></title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title></title></title>"
+ }
+ },
+ {
+ "data": "<title>foo/title><link></head><body>X",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,37): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "foo/title><link></head><body>X",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>foo/title><link></head><body>X</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>foo/title><link></head><body>X</title>"
+ }
+ },
+ {
+ "data": "<noscript><!--<noscript></noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,49): unexpected-end-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--<noscript>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--<noscript></noscript></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><!--<noscript></noscript>--></noscript>",
+ "errors": [
+ " * (1,11) missing DOCTYPE"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "<noscript></noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--<noscript></noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--<noscript></noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><!--</noscript>X<noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "-->",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--</noscript></head><body>X<noscript>--></noscript></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><!--</noscript>X<noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "</noscript>X<noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--</noscript>X<noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>X<noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><iframe></noscript>X",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<iframe>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><iframe></noscript></head><body>X</body></html>",
+ "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><iframe></noscript>X",
+ "errors": [
+ " * (1,11) missing DOCTYPE",
+ " * (1,19) unexpected token in head noscript",
+ " * (1,31) unexpected EOF"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript"
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "</noscript>X",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript></noscript></head><body><iframe></noscript>X</iframe></body></html>",
+ "noQuirksBodyHtml": "<noscript><iframe></noscript>X</iframe></noscript>"
+ }
+ },
+ {
+ "data": "<noframes><!--<noframes></noframes>--></noframes>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,49): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noframes": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "<!--<noframes>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noframes><!--<noframes></noframes></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<noframes><!--<noframes></noframes>-->"
+ }
+ },
+ {
+ "data": "<noframes><body><script><!--...</script></body></noframes></html>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noframes": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "<body><script><!--...</script></body>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noframes><body><script><!--...</script></body></noframes></head><body></body></html>",
+ "noQuirksBodyHtml": "<noframes><body><script><!--...</script></body></noframes>"
+ }
+ },
+ {
+ "data": "<textarea><!--<textarea></textarea>--></textarea>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,49): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "<!--<textarea>",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea><!--<textarea></textarea>--></body></html>",
+ "noQuirksBodyHtml": "<textarea><!--<textarea></textarea>-->"
+ }
+ },
+ {
+ "data": "<textarea></textarea></textarea>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "</textarea>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea></textarea></textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea></textarea></textarea>"
+ }
+ },
+ {
+ "data": "<iframe><!--<iframe></iframe>--></iframe>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,41): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "<!--<iframe>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><iframe><!--<iframe></iframe>--></body></html>",
+ "noQuirksBodyHtml": "<iframe><!--<iframe></iframe>-->"
+ }
+ },
+ {
+ "data": "<iframe>...<!--X->...<!--/X->...</iframe>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": "...<!--X->...<!--/X->...",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><iframe>...<!--X->...<!--/X->...</iframe></body></html>",
+ "noQuirksBodyHtml": "<iframe>...<!--X->...<!--/X->...</iframe>"
+ }
+ },
+ {
+ "data": "<xmp><!--<xmp></xmp>--></xmp>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,29): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xmp": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xmp",
+ "children": [
+ {
+ "text": "<!--<xmp>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><xmp><!--<xmp></xmp>--></body></html>",
+ "noQuirksBodyHtml": "<xmp><!--<xmp></xmp>-->"
+ }
+ },
+ {
+ "data": "<noembed><!--<noembed></noembed>--></noembed>",
+ "errors": [
+ "(1,9): expected-doctype-but-got-start-tag",
+ "(1,45): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "noembed": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "noembed",
+ "children": [
+ {
+ "text": "<!--<noembed>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><noembed><!--<noembed></noembed>--></body></html>",
+ "noQuirksBodyHtml": "<noembed><!--<noembed></noembed>-->"
+ }
+ },
+ {
+ "data": "<!doctype html><table>\n",
+ "errors": [
+ "(2,0): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table>\n</table></body></html>",
+ "noQuirksBodyHtml": "<table>\n</table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><span><font></span><span>",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,45): unexpected-end-tag",
+ "(1,51): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "span": true,
+ "font": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "font"
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><span><font></font></span><font><span></span></font></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><span><font></font></span><font><span></span></font></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><form><table></form><form></table></form>",
+ "errors": [
+ "(1,35): unexpected-end-tag-implies-table-voodoo",
+ "(1,35): unexpected-end-tag",
+ "(1,41): unexpected-form-in-table",
+ "(1,56): unexpected-end-tag",
+ "(1,56): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><form><table><form></form></table></form></body></html>",
+ "noQuirksBodyHtml": "<form><table><form></form></table></form>"
+ }
+ }
+ ],
+ "tests17.dat": [
+ {
+ "data": "<!doctype html><table><tbody><select><tr>",
+ "errors": [
+ "(1,37): unexpected-start-tag-implies-table-voodoo",
+ "(1,41): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,41): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select></select><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><select><td>",
+ "errors": [
+ "(1,34): unexpected-start-tag-implies-table-voodoo",
+ "(1,38): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select></select><table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><td><select><td>",
+ "errors": [
+ "(1,42): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select></select></td><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><select></select></td><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><th><select><td>",
+ "errors": [
+ "(1,42): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "th": true,
+ "select": true,
+ "td": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "th",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><th><select></select></th><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><th><select></select></th><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><caption><select><tr>",
+ "errors": [
+ "(1,43): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,43): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "select": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><select></select></caption><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><select></select></caption><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><tr>",
+ "errors": [
+ "(1,27): unexpected-start-tag-in-select",
+ "(1,27): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><td>",
+ "errors": [
+ "(1,27): unexpected-start-tag-in-select",
+ "(1,27): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><th>",
+ "errors": [
+ "(1,27): unexpected-start-tag-in-select",
+ "(1,27): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><tbody>",
+ "errors": [
+ "(1,30): unexpected-start-tag-in-select",
+ "(1,30): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><thead>",
+ "errors": [
+ "(1,30): unexpected-start-tag-in-select",
+ "(1,30): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><tfoot>",
+ "errors": [
+ "(1,30): unexpected-start-tag-in-select",
+ "(1,30): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><caption>",
+ "errors": [
+ "(1,32): unexpected-start-tag-in-select",
+ "(1,32): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr></table>a",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr></tr></tbody></table>a</body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody></table>a"
+ }
+ }
+ ],
+ "tests18.dat": [
+ {
+ "data": "<!doctype html><plaintext></plaintext>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><plaintext></plaintext>",
+ "errors": [
+ "(1,33): foster-parenting-start-tag",
+ "(1,34): foster-parenting-character",
+ "(1,35): foster-parenting-character",
+ "(1,36): foster-parenting-character",
+ "(1,37): foster-parenting-character",
+ "(1,38): foster-parenting-character",
+ "(1,39): foster-parenting-character",
+ "(1,40): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,42): foster-parenting-character",
+ "(1,43): foster-parenting-character",
+ "(1,44): foster-parenting-character",
+ "(1,45): foster-parenting-character",
+ "(1,45): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true,
+ "table": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table></table></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tbody><plaintext></plaintext>",
+ "errors": [
+ "(1,40): foster-parenting-start-tag",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,52): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true,
+ "table": true,
+ "tbody": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tbody><tr><plaintext></plaintext>",
+ "errors": [
+ "(1,44): foster-parenting-start-tag",
+ "(1,45): foster-parenting-character",
+ "(1,46): foster-parenting-character",
+ "(1,47): foster-parenting-character",
+ "(1,48): foster-parenting-character",
+ "(1,49): foster-parenting-character",
+ "(1,50): foster-parenting-character",
+ "(1,51): foster-parenting-character",
+ "(1,52): foster-parenting-character",
+ "(1,53): foster-parenting-character",
+ "(1,54): foster-parenting-character",
+ "(1,55): foster-parenting-character",
+ "(1,56): foster-parenting-character",
+ "(1,56): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><plaintext></plaintext>",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,49): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "plaintext": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><plaintext></plaintext></plaintext></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><plaintext></plaintext></plaintext></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><caption><plaintext></plaintext>",
+ "errors": [
+ "(1,54): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "plaintext": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><plaintext></plaintext></plaintext></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><plaintext></plaintext></plaintext></caption></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><style></script></style>abc",
+ "errors": [
+ "(1,51): foster-parenting-character",
+ "(1,52): foster-parenting-character",
+ "(1,53): foster-parenting-character",
+ "(1,53): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "abc"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "</script>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>abc<table><tbody><tr><style></script></style></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "abc<table><tbody><tr><style></script></style></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><script></style></script>abc",
+ "errors": [
+ "(1,52): foster-parenting-character",
+ "(1,53): foster-parenting-character",
+ "(1,54): foster-parenting-character",
+ "(1,54): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "script": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "abc"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</style>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>abc<table><tbody><tr><script></style></script></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "abc<table><tbody><tr><script></style></script></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><caption><style></script></style>abc",
+ "errors": [
+ "(1,58): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "</script>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><style></script></style>abc</caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><style></script></style>abc</caption></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><style></script></style>abc",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,53): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "</script>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><style></script></style>abc</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><style></script></style>abc</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><script></style></script>abc",
+ "errors": [
+ "(1,51): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "script": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</style>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select></body></html>",
+ "noQuirksBodyHtml": "<select><script></style></script>abc</select>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><select><script></style></script>abc",
+ "errors": [
+ "(1,30): unexpected-start-tag-implies-table-voodoo",
+ "(1,58): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "script": true,
+ "table": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</style>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select><table></table></body></html>",
+ "noQuirksBodyHtml": "<select><script></style></script>abc</select><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr><select><script></style></script>abc",
+ "errors": [
+ "(1,34): unexpected-start-tag-implies-table-voodoo",
+ "(1,62): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "script": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</style>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select><script></style></script>abc</select><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></frameset><noframes>abc",
+ "errors": [
+ "(1,49): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "abc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html>",
+ "noQuirksBodyHtml": "<noframes>abc</noframes>"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc-->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "abc",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": "abc"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes><!--abc--></html>",
+ "noQuirksBodyHtml": "<noframes>abc</noframes><!--abc-->"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></frameset></html><noframes>abc",
+ "errors": [
+ "(1,56): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "abc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html>",
+ "noQuirksBodyHtml": "<noframes>abc</noframes>"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc-->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "doctype": true,
+ "no_escape": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "abc",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "abc"
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html><!--abc-->",
+ "noQuirksBodyHtml": "<noframes>abc</noframes><!--abc-->"
+ }
+ },
+ {
+ "data": "<!doctype html><table><tr></tbody><tfoot>",
+ "errors": [
+ "(1,41): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "tfoot": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ },
+ {
+ "tag": "tfoot"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr></tr></tbody><tfoot></tfoot></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody><tfoot></tfoot></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><svg></svg>abc<td>",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,44): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "text": "abc"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg></svg>abc</td><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg></svg>abc</td><td></td></tr></tbody></table>"
+ }
+ }
+ ],
+ "tests19.dat": [
+ {
+ "data": "<!doctype html><math><mn DefinitionUrl=\"foo\">",
+ "errors": [
+ "(1,45): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mn": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "definitionURL",
+ "value": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mn definitionURL=\"foo\"></mn></math></body></html>",
+ "noQuirksBodyHtml": "<math><mn definitionURL=\"foo\"></mn></math>"
+ }
+ },
+ {
+ "data": "<!doctype html><html></p><!--foo-->",
+ "errors": [
+ "(1,25): end-tag-after-implied-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "comment": "foo"
+ },
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><!--foo--><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<p></p><!--foo-->"
+ }
+ },
+ {
+ "data": "<!doctype html><head></head></p><!--foo-->",
+ "errors": [
+ "(1,32): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "comment": "foo"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><!--foo--><body></body></html>",
+ "noQuirksBodyHtml": "<p></p><!--foo-->"
+ }
+ },
+ {
+ "data": "<!doctype html><body><p><pre>",
+ "errors": [
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "pre"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><pre></pre></body></html>",
+ "noQuirksBodyHtml": "<p></p><pre></pre>"
+ }
+ },
+ {
+ "data": "<!doctype html><body><p><listing>",
+ "errors": [
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "listing": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "listing"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><listing></listing></body></html>",
+ "noQuirksBodyHtml": "<p></p><listing></listing>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><plaintext>",
+ "errors": [
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "plaintext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "plaintext"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><plaintext></plaintext></body></html>",
+ "noQuirksBodyHtml": "<p></p><plaintext></plaintext>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><h1>",
+ "errors": [
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><h1></h1></body></html>",
+ "noQuirksBodyHtml": "<p></p><h1></h1>"
+ }
+ },
+ {
+ "data": "<!doctype html><isindex type=\"hidden\">",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "isindex": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "isindex",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidden"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><isindex type=\"hidden\"></isindex></body></html>",
+ "noQuirksBodyHtml": "<isindex type=\"hidden\"></isindex>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><p><rp>",
+ "errors": [
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "p": true,
+ "rp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><p></p><rp></rp></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><p></p><rp></rp></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><div><span><rp>",
+ "errors": [
+ "(1,36): XXX-undefined-error",
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "span": true,
+ "rp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><div><span><rp></rp></span></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><span><rp></rp></span></div></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><div><p><rp>",
+ "errors": [
+ "(1,33): XXX-undefined-error",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "p": true,
+ "rp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "rp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><div><p></p><rp></rp></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><p></p><rp></rp></div></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><p><rt>",
+ "errors": [
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "p": true,
+ "rt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><p></p><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><p></p><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><div><span><rt>",
+ "errors": [
+ "(1,36): XXX-undefined-error",
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "span": true,
+ "rt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><div><span><rt></rt></span></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><span><rt></rt></span></div></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><ruby><div><p><rt>",
+ "errors": [
+ "(1,33): XXX-undefined-error",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "p": true,
+ "rt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ruby><div><p></p><rt></rt></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><p></p><rt></rt></div></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rb>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rb": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rb>b</rb><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rp>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rp": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rp>b</rp><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rt>b<rt></ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ },
+ {
+ "tag": "rt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rt>b</rt><rt></rt></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rt></rt></ruby>"
+ }
+ },
+ {
+ "data": "<html><ruby>a<rtc>b<rt>c<rb>d</ruby></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "rtc": true,
+ "rt": true,
+ "rb": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "rtc",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "rb",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby>a<rtc>b<rt>c</rt></rtc><rb>d</rb></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby>a<rtc>b<rt>c</rt></rtc><rb>d</rb></ruby>"
+ }
+ },
+ {
+ "data": "<!doctype html><math/><foo>",
+ "errors": [
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "foo": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math><foo></foo></body></html>",
+ "noQuirksBodyHtml": "<math></math><foo></foo>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg/><foo>",
+ "errors": [
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "foo": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg><foo></foo></body></html>",
+ "noQuirksBodyHtml": "<svg></svg><foo></foo>"
+ }
+ },
+ {
+ "data": "<!doctype html><div></body><!--foo-->",
+ "errors": [
+ "(1,27): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div></div></body><!--foo--></html>",
+ "noQuirksBodyHtml": "<div><!--foo--></div>"
+ }
+ },
+ {
+ "data": "<!doctype html><h1><div><h3><span></h1>foo",
+ "errors": [
+ "(1,39): end-tag-too-early",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h1": true,
+ "div": true,
+ "h3": true,
+ "span": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h1",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "h3",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ },
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><h1><div><h3><span></span></h3>foo</div></h1></body></html>",
+ "noQuirksBodyHtml": "<h1><div><h3><span></span></h3>foo</div></h1>"
+ }
+ },
+ {
+ "data": "<!doctype html><p></h3>foo",
+ "errors": [
+ "(1,23): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p>foo</p></body></html>",
+ "noQuirksBodyHtml": "<p>foo</p>"
+ }
+ },
+ {
+ "data": "<!doctype html><h3><li>abc</h2>foo",
+ "errors": [
+ "(1,31): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "h3": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "h3",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><h3><li>abc</li></h3>foo</body></html>",
+ "noQuirksBodyHtml": "<h3><li>abc</li></h3>foo"
+ }
+ },
+ {
+ "data": "<!doctype html><table>abc<!--foo-->",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,25): foster-parenting-character",
+ "(1,35): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "abc"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>abc<table><!--foo--></table></body></html>",
+ "noQuirksBodyHtml": "abc<table><!--foo--></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> <!--foo-->",
+ "errors": [
+ "(1,34): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table> <!--foo--></table></body></html>",
+ "noQuirksBodyHtml": "<table> <!--foo--></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> b <!--foo-->",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,25): foster-parenting-character",
+ "(1,35): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " b "
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> b <table><!--foo--></table></body></html>",
+ "noQuirksBodyHtml": " b <table><!--foo--></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><option><option>",
+ "errors": [
+ "(1,39): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option><option></option></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><option></optgroup>",
+ "errors": [
+ "(1,42): unexpected-end-tag-in-select",
+ "(1,42): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><option></optgroup>",
+ "errors": [
+ "(1,42): unexpected-end-tag-in-select",
+ "(1,42): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><dd><optgroup><dd>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dd": true,
+ "optgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "tag": "optgroup"
+ }
+ ]
+ },
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dd><optgroup></optgroup></dd><dd></dd></body></html>",
+ "noQuirksBodyHtml": "<dd><optgroup></optgroup></dd><dd></dd>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mi><p><h1>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mi": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mi><p></p><h1></h1></mi></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mi><p></p><h1></h1></mi></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mo><p><h1>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mo": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mo",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mo><p></p><h1></h1></mo></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mo><p></p><h1></h1></mo></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mn><p><h1>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mn": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mn><p></p><h1></h1></mn></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mn><p></p><h1></h1></mn></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><ms><p><h1>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math ms": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "ms",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><ms><p></p><h1></h1></ms></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><ms><p></p><h1></h1></ms></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mtext><p><h1>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mtext": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mtext><p></p><h1></h1></mtext></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mtext><p></p><h1></h1></mtext></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><frameset></noframes>",
+ "errors": [
+ "(1,36): unexpected-end-tag-in-frameset",
+ "(1,36): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><html c=d><body></html><html a=b>",
+ "errors": [
+ "(1,48): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ },
+ {
+ "name": "c",
+ "value": "d"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html c=\"d\" a=\"b\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><html c=d><frameset></frameset></html><html a=b>",
+ "errors": [
+ "(1,63): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ },
+ {
+ "name": "c",
+ "value": "d"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html c=\"d\" a=\"b\"><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html><!--foo-->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ },
+ {
+ "comment": "foo"
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html><!--foo-->",
+ "noQuirksBodyHtml": "<!--foo-->"
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html> ",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset> </html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html>abc",
+ "errors": [
+ "(1,50): expected-eof-but-got-char",
+ "(1,51): expected-eof-but-got-char",
+ "(1,52): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "abc"
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html><p>",
+ "errors": [
+ "(1,52): expected-eof-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<p></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><html><frameset></frameset></html></p>",
+ "errors": [
+ "(1,53): expected-eof-but-got-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<p></p>"
+ }
+ },
+ {
+ "data": "<html><frameset></frameset></html><!doctype html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,49): unexpected-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><body><frameset>",
+ "errors": [
+ "(1,31): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><p><frameset><frame>",
+ "errors": [
+ "(1,28): unexpected-start-tag",
+ "(1,35): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<p></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p>a<frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p>a</p></body></html>",
+ "noQuirksBodyHtml": "<p>a</p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p> <frameset><frame>",
+ "errors": [
+ "(1,29): unexpected-start-tag",
+ "(1,36): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<p> </p>"
+ }
+ },
+ {
+ "data": "<!doctype html><pre><frameset>",
+ "errors": [
+ "(1,30): unexpected-start-tag",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre></pre></body></html>",
+ "noQuirksBodyHtml": "<pre></pre>"
+ }
+ },
+ {
+ "data": "<!doctype html><listing><frameset>",
+ "errors": [
+ "(1,34): unexpected-start-tag",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "listing": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "listing"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><listing></listing></body></html>",
+ "noQuirksBodyHtml": "<listing></listing>"
+ }
+ },
+ {
+ "data": "<!doctype html><li><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><li></li></body></html>",
+ "noQuirksBodyHtml": "<li></li>"
+ }
+ },
+ {
+ "data": "<!doctype html><dd><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dd": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dd></dd></body></html>",
+ "noQuirksBodyHtml": "<dd></dd>"
+ }
+ },
+ {
+ "data": "<!doctype html><dt><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dt"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dt></dt></body></html>",
+ "noQuirksBodyHtml": "<dt></dt>"
+ }
+ },
+ {
+ "data": "<!doctype html><button><frameset>",
+ "errors": [
+ "(1,33): unexpected-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><button></button></body></html>",
+ "noQuirksBodyHtml": "<button></button>"
+ }
+ },
+ {
+ "data": "<!doctype html><applet><frameset>",
+ "errors": [
+ "(1,33): unexpected-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "applet": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "applet"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><applet></applet></body></html>",
+ "noQuirksBodyHtml": "<applet></applet>"
+ }
+ },
+ {
+ "data": "<!doctype html><marquee><frameset>",
+ "errors": [
+ "(1,34): unexpected-start-tag",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "marquee": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "marquee"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><marquee></marquee></body></html>",
+ "noQuirksBodyHtml": "<marquee></marquee>"
+ }
+ },
+ {
+ "data": "<!doctype html><object><frameset>",
+ "errors": [
+ "(1,33): unexpected-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "object": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "object"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><object></object></body></html>",
+ "noQuirksBodyHtml": "<object></object>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><frameset>",
+ "errors": [
+ "(1,32): unexpected-start-tag-implies-table-voodoo",
+ "(1,32): unexpected-start-tag",
+ "(1,32): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table></table></body></html>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><area><frameset>",
+ "errors": [
+ "(1,31): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "area": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "area"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><area></body></html>",
+ "noQuirksBodyHtml": "<area>"
+ }
+ },
+ {
+ "data": "<!doctype html><basefont><frameset>",
+ "errors": [
+ "(1,35): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "basefont": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "basefont"
+ }
+ ]
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><basefont></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<basefont>"
+ }
+ },
+ {
+ "data": "<!doctype html><bgsound><frameset>",
+ "errors": [
+ "(1,34): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "bgsound": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "bgsound"
+ }
+ ]
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><bgsound></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<bgsound>"
+ }
+ },
+ {
+ "data": "<!doctype html><br><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><br></body></html>",
+ "noQuirksBodyHtml": "<br>"
+ }
+ },
+ {
+ "data": "<!doctype html><embed><frameset>",
+ "errors": [
+ "(1,32): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "embed": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "embed"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><embed></body></html>",
+ "noQuirksBodyHtml": "<embed>"
+ }
+ },
+ {
+ "data": "<!doctype html><img><frameset>",
+ "errors": [
+ "(1,30): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><img></body></html>",
+ "noQuirksBodyHtml": "<img>"
+ }
+ },
+ {
+ "data": "<!doctype html><input><frameset>",
+ "errors": [
+ "(1,32): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><input></body></html>",
+ "noQuirksBodyHtml": "<input>"
+ }
+ },
+ {
+ "data": "<!doctype html><keygen><frameset>",
+ "errors": [
+ "(1,33): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "keygen": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "keygen"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><keygen></body></html>",
+ "noQuirksBodyHtml": "<keygen>"
+ }
+ },
+ {
+ "data": "<!doctype html><wbr><frameset>",
+ "errors": [
+ "(1,30): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "wbr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "wbr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><wbr></body></html>",
+ "noQuirksBodyHtml": "<wbr>"
+ }
+ },
+ {
+ "data": "<!doctype html><hr><frameset>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "hr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "hr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><hr></body></html>",
+ "noQuirksBodyHtml": "<hr>"
+ }
+ },
+ {
+ "data": "<!doctype html><textarea></textarea><frameset>",
+ "errors": [
+ "(1,46): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea></textarea>"
+ }
+ },
+ {
+ "data": "<!doctype html><xmp></xmp><frameset>",
+ "errors": [
+ "(1,36): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xmp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xmp"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><xmp></xmp></body></html>",
+ "noQuirksBodyHtml": "<xmp></xmp>"
+ }
+ },
+ {
+ "data": "<!doctype html><iframe></iframe><frameset>",
+ "errors": [
+ "(1,42): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><iframe></iframe></body></html>",
+ "noQuirksBodyHtml": "<iframe></iframe>"
+ }
+ },
+ {
+ "data": "<!doctype html><select></select><frameset>",
+ "errors": [
+ "(1,42): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg></svg><frameset><frame>",
+ "errors": [
+ "(1,36): unexpected-start-tag",
+ "(1,43): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><math></math><frameset><frame>",
+ "errors": [
+ "(1,38): unexpected-start-tag",
+ "(1,45): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg><foreignObject><div> <frameset><frame>",
+ "errors": [
+ "(1,51): unexpected-start-tag",
+ "(1,58): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><div> </div></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg>a</svg><frameset><frame>",
+ "errors": [
+ "(1,37): unexpected-start-tag",
+ "(1,44): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg>a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>a</svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg> </svg><frameset><frame>",
+ "errors": [
+ "(1,37): unexpected-start-tag",
+ "(1,44): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "frame": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "tag": "frame"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+ "noQuirksBodyHtml": "<svg> </svg>"
+ }
+ },
+ {
+ "data": "<html>aaa<frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,19): unexpected-start-tag",
+ "(1,30): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "aaa"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>aaa</body></html>",
+ "noQuirksBodyHtml": "aaa"
+ }
+ },
+ {
+ "data": "<html> a <frameset></frameset>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,19): unexpected-start-tag",
+ "(1,30): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "a "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>a </body></html>",
+ "noQuirksBodyHtml": " a "
+ }
+ },
+ {
+ "data": "<!doctype html><div><frameset>",
+ "errors": [
+ "(1,30): unexpected-start-tag",
+ "(1,30): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<!doctype html><div><body><frameset>",
+ "errors": [
+ "(1,26): unexpected-start-tag",
+ "(1,36): unexpected-start-tag",
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math></p>a",
+ "errors": [
+ "(1,28): unexpected-end-tag",
+ "(1,28): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math></math></p>a</body></html>",
+ "noQuirksBodyHtml": "<p><math></math></p>a"
+ }
+ },
+ {
+ "data": "<!doctype html><p><math><mn><span></p>a",
+ "errors": [
+ "(1,38): unexpected-end-tag",
+ "(1,39): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "math math": true,
+ "math mn": true,
+ "span": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><math><mn><span><p></p>a</span></mn></math></p></body></html>",
+ "noQuirksBodyHtml": "<p><math><mn><span><p></p>a</span></mn></math></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><math></html>",
+ "errors": [
+ "(1,28): unexpected-end-tag",
+ "(1,28): expected-one-end-tag-but-got-another",
+ "(1,28): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ },
+ {
+ "data": "<!doctype html><meta charset=\"ascii\">",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta",
+ "attrs": [
+ {
+ "name": "charset",
+ "value": "ascii"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><meta charset=\"ascii\"></head><body></body></html>",
+ "noQuirksBodyHtml": "<meta charset=\"ascii\">"
+ }
+ },
+ {
+ "data": "<!doctype html><meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\">",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta",
+ "attrs": [
+ {
+ "name": "content",
+ "value": "text/html;charset=ascii"
+ },
+ {
+ "name": "http-equiv",
+ "value": "content-type"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\"></head><body></body></html>",
+ "noQuirksBodyHtml": "<meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\">"
+ }
+ },
+ {
+ "data": "<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\">",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "comment": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ },
+ {
+ "tag": "meta",
+ "attrs": [
+ {
+ "name": "charset",
+ "value": "utf8"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\"></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\">"
+ }
+ },
+ {
+ "data": "<!doctype html><html a=b><head></head><html c=d>",
+ "errors": [
+ "(1,48): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "a",
+ "value": "b"
+ },
+ {
+ "name": "c",
+ "value": "d"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html a=\"b\" c=\"d\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!doctype html><image/>",
+ "errors": [
+ "(1,23): image-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><img></body></html>",
+ "noQuirksBodyHtml": "<img>"
+ }
+ },
+ {
+ "data": "<!doctype html>a<i>b<table>c<b>d</i>e</b>f",
+ "errors": [
+ "(1,28): foster-parenting-character",
+ "(1,31): foster-parenting-start-tag",
+ "(1,32): foster-parenting-character",
+ "(1,36): foster-parenting-end-tag",
+ "(1,36): adoption-agency-1.3",
+ "(1,37): foster-parenting-character",
+ "(1,41): foster-parenting-end-tag",
+ "(1,42): foster-parenting-character",
+ "(1,42): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "bc"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "de"
+ }
+ ]
+ },
+ {
+ "text": "f"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>a<i>bc<b>de</b>f<table></table></i></body></html>",
+ "noQuirksBodyHtml": "a<i>bc<b>de</b>f<table></table></i>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f",
+ "errors": [
+ "(1,25): foster-parenting-start-tag",
+ "(1,26): foster-parenting-character",
+ "(1,29): foster-parenting-start-tag",
+ "(1,30): foster-parenting-character",
+ "(1,35): foster-parenting-start-tag",
+ "(1,36): foster-parenting-character",
+ "(1,39): foster-parenting-start-tag",
+ "(1,40): foster-parenting-character",
+ "(1,44): foster-parenting-end-tag",
+ "(1,44): adoption-agency-1.3",
+ "(1,44): adoption-agency-1.3",
+ "(1,45): foster-parenting-character",
+ "(1,49): foster-parenting-end-tag",
+ "(1,49): adoption-agency-1.3",
+ "(1,49): adoption-agency-1.3",
+ "(1,50): foster-parenting-character",
+ "(1,50): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "div": true,
+ "a": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "e"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "f"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table></body></html>",
+ "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f",
+ "errors": [
+ "(1,37): adoption-agency-1.3",
+ "(1,37): adoption-agency-1.3",
+ "(1,42): adoption-agency-1.3",
+ "(1,42): adoption-agency-1.3",
+ "(1,43): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "div": true,
+ "a": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "e"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "f"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div></body></html>",
+ "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><i>a<b>b<div>c</i>",
+ "errors": [
+ "(1,25): foster-parenting-start-tag",
+ "(1,26): foster-parenting-character",
+ "(1,29): foster-parenting-start-tag",
+ "(1,30): foster-parenting-character",
+ "(1,35): foster-parenting-start-tag",
+ "(1,36): foster-parenting-character",
+ "(1,40): foster-parenting-end-tag",
+ "(1,40): adoption-agency-1.3",
+ "(1,40): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "div": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b><div><i>c</i></div></b><table></table></body></html>",
+ "noQuirksBodyHtml": "<i>a<b>b</b></i><b><div><i>c</i></div></b><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f",
+ "errors": [
+ "(1,25): foster-parenting-start-tag",
+ "(1,26): foster-parenting-character",
+ "(1,29): foster-parenting-start-tag",
+ "(1,30): foster-parenting-character",
+ "(1,35): foster-parenting-start-tag",
+ "(1,36): foster-parenting-character",
+ "(1,39): foster-parenting-start-tag",
+ "(1,40): foster-parenting-character",
+ "(1,44): foster-parenting-end-tag",
+ "(1,44): adoption-agency-1.3",
+ "(1,44): adoption-agency-1.3",
+ "(1,45): foster-parenting-character",
+ "(1,49): foster-parenting-end-tag",
+ "(1,44): adoption-agency-1.3",
+ "(1,44): adoption-agency-1.3",
+ "(1,50): foster-parenting-character",
+ "(1,50): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "b": true,
+ "div": true,
+ "a": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "e"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "f"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table></body></html>",
+ "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><i>a<div>b<tr>c<b>d</i>e",
+ "errors": [
+ "(1,25): foster-parenting-start-tag",
+ "(1,26): foster-parenting-character",
+ "(1,31): foster-parenting-start-tag",
+ "(1,32): foster-parenting-character",
+ "(1,37): foster-parenting-character",
+ "(1,40): foster-parenting-start-tag",
+ "(1,41): foster-parenting-character",
+ "(1,45): foster-parenting-end-tag",
+ "(1,45): adoption-agency-1.3",
+ "(1,46): foster-parenting-character",
+ "(1,46): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "i": true,
+ "div": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "c"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "e"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><i>a<div>b</div></i><i>c<b>d</b></i><b>e</b><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<i>a<div>b</div></i><i>c<b>d</b></i><b>e</b><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><td><table><i>a<div>b<b>c</i>d",
+ "errors": [
+ "(1,26): unexpected-cell-in-table-body",
+ "(1,36): foster-parenting-start-tag",
+ "(1,37): foster-parenting-character",
+ "(1,42): foster-parenting-start-tag",
+ "(1,43): foster-parenting-character",
+ "(1,46): foster-parenting-start-tag",
+ "(1,47): foster-parenting-character",
+ "(1,51): foster-parenting-end-tag",
+ "(1,51): adoption-agency-1.3",
+ "(1,51): adoption-agency-1.3",
+ "(1,52): foster-parenting-character",
+ "(1,52): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true,
+ "div": true,
+ "b": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><i>a</i><div><i>b<b>c</b></i><b>d</b></div><table></table></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><i>a</i><div><i>b<b>c</b></i><b>d</b></div><table></table></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><body><bgsound>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bgsound": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "bgsound"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><bgsound></body></html>",
+ "noQuirksBodyHtml": "<bgsound>"
+ }
+ },
+ {
+ "data": "<!doctype html><body><basefont>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "basefont": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "basefont"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><basefont></body></html>",
+ "noQuirksBodyHtml": "<basefont>"
+ }
+ },
+ {
+ "data": "<!doctype html><a><b></a><basefont>",
+ "errors": [
+ "(1,25): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "basefont": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "basefont"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><a><b></b></a><basefont></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><basefont>"
+ }
+ },
+ {
+ "data": "<!doctype html><a><b></a><bgsound>",
+ "errors": [
+ "(1,25): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "bgsound": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "bgsound"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><a><b></b></a><bgsound></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><bgsound>"
+ }
+ },
+ {
+ "data": "<!doctype html><figcaption><article></figcaption>a",
+ "errors": [
+ "(1,49): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "figcaption": true,
+ "article": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "figcaption",
+ "children": [
+ {
+ "tag": "article"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><figcaption><article></article></figcaption>a</body></html>",
+ "noQuirksBodyHtml": "<figcaption><article></article></figcaption>a"
+ }
+ },
+ {
+ "data": "<!doctype html><summary><article></summary>a",
+ "errors": [
+ "(1,43): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "summary": true,
+ "article": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "summary",
+ "children": [
+ {
+ "tag": "article"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><summary><article></article></summary>a</body></html>",
+ "noQuirksBodyHtml": "<summary><article></article></summary>a"
+ }
+ },
+ {
+ "data": "<!doctype html><p><a><plaintext>b",
+ "errors": [
+ "(1,32): unexpected-end-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "a": true,
+ "plaintext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><a></a></p><plaintext><a>b</a></plaintext></body></html>",
+ "noQuirksBodyHtml": "<p><a></a></p><plaintext><a>b</a></plaintext>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><div>a<a></div>b<p>c</p>d",
+ "errors": [
+ "(1,30): end-tag-too-early",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "a": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ },
+ {
+ "text": "d"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div>a<a></a></div><a>b<p>c</p>d</a></body></html>",
+ "noQuirksBodyHtml": "<div>a<a></a></div><a>b<p>c</p>d</a>"
+ }
+ }
+ ],
+ "tests2.dat": [
+ {
+ "data": "<!DOCTYPE html>Test",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Test"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>Test</body></html>",
+ "noQuirksBodyHtml": "Test"
+ }
+ },
+ {
+ "data": "<textarea>test</div>test",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,24): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "test</div>test",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>test</div>test</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>test</div>test</textarea>"
+ }
+ },
+ {
+ "data": "<table><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td>test</tbody></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>test</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>test</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<frame>test",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,7): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>test</body></html>",
+ "noQuirksBodyHtml": "test"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset>test",
+ "errors": [
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "test"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset> te st",
+ "errors": [
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): unexpected-char-in-frameset",
+ "(1,29): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset> </frameset></html>",
+ "noQuirksBodyHtml": " te st"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset></frameset> te st",
+ "errors": [
+ "(1,29): unexpected-char-after-frameset",
+ "(1,29): unexpected-char-after-frameset",
+ "(1,29): unexpected-char-after-frameset",
+ "(1,29): unexpected-char-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset> </html>",
+ "noQuirksBodyHtml": " te st"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset><!DOCTYPE html>",
+ "errors": [
+ "(1,40): unexpected-doctype",
+ "(1,40): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><font><p><b>test</font>",
+ "errors": [
+ "(1,38): adoption-agency-1.3",
+ "(1,38): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "p": true,
+ "b": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><font></font><p><font><b>test</b></font></p></body></html>",
+ "noQuirksBodyHtml": "<font></font><p><font><b>test</b></font></p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><dt><div><dd>",
+ "errors": [
+ "(1,28): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dt": true,
+ "div": true,
+ "dd": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dt",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ },
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><dt><div></div></dt><dd></dd></body></html>",
+ "noQuirksBodyHtml": "<dt><div></div></dt><dd></dd>"
+ }
+ },
+ {
+ "data": "<script></x",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,11): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "</x",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></x</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></x</script>"
+ }
+ },
+ {
+ "data": "<table><plaintext><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-start-tag-implies-table-voodoo",
+ "(1,22): foster-parenting-character-in-table",
+ "(1,22): foster-parenting-character-in-table",
+ "(1,22): foster-parenting-character-in-table",
+ "(1,22): foster-parenting-character-in-table",
+ "(1,22): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true,
+ "table": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "<td>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><plaintext><td></plaintext><table></table></body></html>",
+ "noQuirksBodyHtml": "<plaintext><td></plaintext><table></table>"
+ }
+ },
+ {
+ "data": "<plaintext></plaintext>",
+ "errors": [
+ "(1,11): expected-doctype-but-got-start-tag",
+ "(1,23): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><plaintext></plaintext></plaintext></body></html>",
+ "noQuirksBodyHtml": "<plaintext></plaintext></plaintext>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr>TEST",
+ "errors": [
+ "(1,30): foster-parenting-character-in-table",
+ "(1,30): foster-parenting-character-in-table",
+ "(1,30): foster-parenting-character-in-table",
+ "(1,30): foster-parenting-character-in-table",
+ "(1,30): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "TEST"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>TEST<table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "TEST<table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4>",
+ "errors": [
+ "(1,37): unexpected-start-tag",
+ "(1,53): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "t1",
+ "value": "1"
+ },
+ {
+ "name": "t2",
+ "value": "2"
+ },
+ {
+ "name": "t3",
+ "value": "3"
+ },
+ {
+ "name": "t4",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body t1=\"1\" t2=\"2\" t3=\"3\" t4=\"4\"></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</b test",
+ "errors": [
+ "(1,8): eof-in-attribute-name",
+ "(1,8): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html></b test<b &=&>X",
+ "errors": [
+ "(1,24): invalid-character-in-attribute-name",
+ "(1,32): named-entity-without-semicolon",
+ "(1,33): attributes-in-end-tag",
+ "(1,33): unexpected-end-tag-before-html"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X</body></html>",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt",
+ "errors": [
+ "(1,9): need-space-after-doctype",
+ "(1,54): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "text/x-foobar;baz"
+ }
+ ],
+ "children": [
+ {
+ "text": "X</SCRipt",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script type=\"text/x-foobar;baz\">X</SCRipt</script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script type=\"text/x-foobar;baz\">X</SCRipt</script>"
+ }
+ },
+ {
+ "data": "&",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&</body></html>",
+ "noQuirksBodyHtml": "&"
+ }
+ },
+ {
+ "data": "&#",
+ "errors": [
+ "(1,2): expected-numeric-entity",
+ "(1,2): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&#",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&#</body></html>",
+ "noQuirksBodyHtml": "&#"
+ }
+ },
+ {
+ "data": "&#X",
+ "errors": [
+ "(1,3): expected-numeric-entity",
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&#X",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&#X</body></html>",
+ "noQuirksBodyHtml": "&#X"
+ }
+ },
+ {
+ "data": "&#x",
+ "errors": [
+ "(1,3): expected-numeric-entity",
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&#x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&#x</body></html>",
+ "noQuirksBodyHtml": "&#x"
+ }
+ },
+ {
+ "data": "-",
+ "errors": [
+ "(1,4): numeric-entity-without-semicolon",
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>-</body></html>",
+ "noQuirksBodyHtml": "-"
+ }
+ },
+ {
+ "data": "&x-test",
+ "errors": [
+ "(1,2): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&x-test",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&x-test</body></html>",
+ "noQuirksBodyHtml": "&x-test"
+ }
+ },
+ {
+ "data": "<!doctypehtml><p><li>",
+ "errors": [
+ "(1,9): need-space-after-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><li></li></body></html>",
+ "noQuirksBodyHtml": "<p></p><li></li>"
+ }
+ },
+ {
+ "data": "<!doctypehtml><p><dt>",
+ "errors": [
+ "(1,9): need-space-after-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "dt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "dt"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><dt></dt></body></html>",
+ "noQuirksBodyHtml": "<p></p><dt></dt>"
+ }
+ },
+ {
+ "data": "<!doctypehtml><p><dd>",
+ "errors": [
+ "(1,9): need-space-after-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "dd": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><dd></dd></body></html>",
+ "noQuirksBodyHtml": "<p></p><dd></dd>"
+ }
+ },
+ {
+ "data": "<!doctypehtml><p><form>",
+ "errors": [
+ "(1,9): need-space-after-doctype",
+ "(1,23): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><form></form></body></html>",
+ "noQuirksBodyHtml": "<p></p><form></form>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><p></P>X",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p>X</body></html>",
+ "noQuirksBodyHtml": "<p></p>X"
+ }
+ },
+ {
+ "data": "&",
+ "errors": [
+ "(1,4): named-entity-without-semicolon",
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&</body></html>",
+ "noQuirksBodyHtml": "&"
+ }
+ },
+ {
+ "data": "&AMp;",
+ "errors": [
+ "(1,3): expected-named-entity",
+ "(1,3): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "&AMp;",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>&AMp;</body></html>",
+ "noQuirksBodyHtml": "&AMp;"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>",
+ "errors": [
+ "(1,110): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></body></html>",
+ "noQuirksBodyHtml": "<thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</body>X",
+ "errors": [
+ "(1,24): unexpected-char-after-body"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "XX"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>XX</body></html>",
+ "noQuirksBodyHtml": "XX"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!-- X",
+ "errors": [
+ "(1,21): eof-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": " X"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!-- X--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- X-->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><caption>test TEST</caption><td>test",
+ "errors": [
+ "(1,54): unexpected-cell-in-table-body",
+ "(1,58): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "text": "test TEST"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption>test TEST</caption><tbody><tr><td>test</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption>test TEST</caption><tbody><tr><td>test</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><option><optgroup>",
+ "errors": [
+ "(1,41): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true,
+ "optgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "optgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option><optgroup></optgroup></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option><optgroup></optgroup></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option>",
+ "errors": [
+ "(1,68): unexpected-select-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "optgroup": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "optgroup",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><optgroup><option></option></optgroup><option></option></select><option></option></body></html>",
+ "noQuirksBodyHtml": "<select><optgroup><option></option></optgroup><option></option></select><option></option>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><optgroup><option><optgroup>",
+ "errors": [
+ "(1,51): eof-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "optgroup": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "optgroup",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ },
+ {
+ "tag": "optgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><optgroup><option></option></optgroup><optgroup></optgroup></select></body></html>",
+ "noQuirksBodyHtml": "<select><optgroup><option></option></optgroup><optgroup></optgroup></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><datalist><option>foo</datalist>bar",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "datalist": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "datalist",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><datalist><option>foo</option></datalist>bar</body></html>",
+ "noQuirksBodyHtml": "<datalist><option>foo</option></datalist>bar"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><font><input><input></font>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "input"
+ },
+ {
+ "tag": "input"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><font><input><input></font></body></html>",
+ "noQuirksBodyHtml": "<font><input><input></font>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!-- XXX - XXX -->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": " XXX - XXX "
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!-- XXX - XXX --><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- XXX - XXX -->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!-- XXX - XXX",
+ "errors": [
+ "(1,29): eof-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": " XXX - XXX"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!-- XXX - XXX--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- XXX - XXX-->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!-- XXX - XXX - XXX -->",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": " XXX - XXX - XXX "
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!-- XXX - XXX - XXX --><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- XXX - XXX - XXX -->"
+ }
+ },
+ {
+ "data": "test\ntest",
+ "errors": [
+ "(2,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "test\ntest"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>test\ntest</body></html>",
+ "noQuirksBodyHtml": "test\ntest"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><title>test</body></title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "test</body>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>test</body></title></body></html>",
+ "noQuirksBodyHtml": "<title>test</body></title>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style>\nx { content:\"</style\" } </style>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true,
+ "meta": true,
+ "link": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "tag": "meta",
+ "attrs": [
+ {
+ "name": "name",
+ "value": "z"
+ }
+ ]
+ },
+ {
+ "tag": "link",
+ "attrs": [
+ {
+ "name": "rel",
+ "value": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": "\nx { content:\"</style\" } ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>X</title><meta name=\"z\"><link rel=\"foo\"><style>\nx { content:\"</style\" } </style></body></html>",
+ "noQuirksBodyHtml": "<title>X</title><meta name=\"z\"><link rel=\"foo\"><style>\nx { content:\"</style\" } </style>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><select><optgroup></optgroup></select>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "optgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "optgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><optgroup></optgroup></select></body></html>",
+ "noQuirksBodyHtml": "<select><optgroup></optgroup></select>"
+ }
+ },
+ {
+ "data": " \n ",
+ "errors": [
+ "(2,1): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": " \n "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html> <html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><script>\n</script> <title>x</title> </head>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "\n",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ },
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><script>\n</script> <title>x</title> </head><body></body></html>",
+ "noQuirksBodyHtml": "<script>\n</script> <title>x</title> "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><body><html id=x>",
+ "errors": [
+ "(1,38): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "x"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html id=\"x\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</body><html id=\"x\">",
+ "errors": [
+ "(1,36): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "x"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html id=\"x\"><head></head><body>X</body></html>",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><head><html id=x>",
+ "errors": [
+ "(1,32): non-html-root"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "x"
+ }
+ ],
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html id=\"x\"><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</html>X",
+ "errors": [
+ "(1,24): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "XX"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>XX</body></html>",
+ "noQuirksBodyHtml": "XX"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</html> ",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X </body></html>",
+ "noQuirksBodyHtml": "X "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X</html><p>X",
+ "errors": [
+ "(1,26): expected-eof-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<p>X</p></body></html>",
+ "noQuirksBodyHtml": "X<p>X</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>X<p/x/y/z>",
+ "errors": [
+ "(1,19): unexpected-character-after-solidus-in-tag",
+ "(1,21): unexpected-character-after-solidus-in-tag",
+ "(1,23): unexpected-character-after-solidus-in-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "x",
+ "value": ""
+ },
+ {
+ "name": "y",
+ "value": ""
+ },
+ {
+ "name": "z",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<p x=\"\" y=\"\" z=\"\"></p></body></html>",
+ "noQuirksBodyHtml": "X<p x=\"\" y=\"\" z=\"\"></p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><!--x--",
+ "errors": [
+ "(1,22): eof-in-comment-double-dash"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "comment": "x"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><!--x--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!--x-->"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td></p></table>",
+ "errors": [
+ "(1,34): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><p></p></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><p></p></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->-->",
+ "errors": [
+ "(1,20): expected-space-or-right-bracket-in-doctype",
+ "(1,25): unknown-doctype",
+ "(1,35): unexpected-char-in-comment"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "<!doctype"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": ">",
+ "escaped": true
+ },
+ {
+ "comment": "<!--x"
+ },
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE <!doctype><html><head></head><body>><!--<!--x-->--></body></html>",
+ "noQuirksBodyHtml": "><!--<!--x-->-->"
+ }
+ },
+ {
+ "data": "<!doctype html><div><form></form><div></div></div>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "form"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div><form></form><div></div></div></body></html>",
+ "noQuirksBodyHtml": "<div><form></form><div></div></div>"
+ }
+ }
+ ],
+ "tests20.dat": [
+ {
+ "data": "<!doctype html><p><button><button>",
+ "errors": [
+ "(1,34): unexpected-start-tag-implies-end-tag",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button"
+ },
+ {
+ "tag": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button></button><button></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button></button><button></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><address>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "address": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "address"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><address></address></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><address></address></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><blockquote>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "blockquote": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "blockquote"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><blockquote></blockquote></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><blockquote></blockquote></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><menu>",
+ "errors": [
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "menu": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "menu"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><menu></menu></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><menu></menu></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><p>",
+ "errors": [
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><p></p></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><p></p></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><ul>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "ul": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "ul"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><ul></ul></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><ul></ul></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><h1>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "h1": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "h1"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><h1></h1></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><h1></h1></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><h6>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "h6": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "h6"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><h6></h6></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><h6></h6></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><listing>",
+ "errors": [
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "listing": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "listing"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><listing></listing></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><listing></listing></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><pre>",
+ "errors": [
+ "(1,31): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "pre"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><pre></pre></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><pre></pre></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><form>",
+ "errors": [
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><form></form></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><form></form></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><li>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "li": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><li></li></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><li></li></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><dd>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "dd": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "dd"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><dd></dd></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><dd></dd></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><dt>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "dt": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "dt"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><dt></dt></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><dt></dt></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><plaintext>",
+ "errors": [
+ "(1,37): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "plaintext": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "plaintext"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><plaintext></plaintext></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><plaintext></plaintext></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><table>",
+ "errors": [
+ "(1,33): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><table></table></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><table></table></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><hr>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "hr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "hr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><hr></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><hr></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button><xmp>",
+ "errors": [
+ "(1,31): expected-named-closing-tag-but-got-eof",
+ "(1,31): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true,
+ "xmp": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "xmp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><xmp></xmp></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><xmp></xmp></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><button></p>",
+ "errors": [
+ "(1,30): unexpected-end-tag",
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><button><p></p></button></p></body></html>",
+ "noQuirksBodyHtml": "<p><button><p></p></button></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><address><button></address>a",
+ "errors": [
+ "(1,42): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "address": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "address",
+ "children": [
+ {
+ "tag": "button"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><address><button></button></address>a</body></html>",
+ "noQuirksBodyHtml": "<address><button></button></address>a"
+ }
+ },
+ {
+ "data": "<!doctype html><address><button></address>a",
+ "errors": [
+ "(1,42): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "address": true,
+ "button": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "address",
+ "children": [
+ {
+ "tag": "button"
+ }
+ ]
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><address><button></button></address>a</body></html>",
+ "noQuirksBodyHtml": "<address><button></button></address>a"
+ }
+ },
+ {
+ "data": "<p><table></p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-end-tag-implies-table-voodoo",
+ "(1,14): unexpected-end-tag",
+ "(1,14): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><p></p><table></table></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><p></p><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg>",
+ "errors": [
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><figcaption>",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "figcaption": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "figcaption"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><figcaption></figcaption></body></html>",
+ "noQuirksBodyHtml": "<p></p><figcaption></figcaption>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><summary>",
+ "errors": [
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "summary": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "summary"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><summary></summary></body></html>",
+ "noQuirksBodyHtml": "<p></p><summary></summary>"
+ }
+ },
+ {
+ "data": "<!doctype html><form><table><form>",
+ "errors": [
+ "(1,34): unexpected-form-in-table",
+ "(1,34): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><form><table></table></form></body></html>",
+ "noQuirksBodyHtml": "<form><table></table></form>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><form><form>",
+ "errors": [
+ "(1,28): unexpected-form-in-table",
+ "(1,34): unexpected-form-in-table",
+ "(1,34): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><form></form></table></body></html>",
+ "noQuirksBodyHtml": "<table><form></form></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><form></table><form>",
+ "errors": [
+ "(1,28): unexpected-form-in-table",
+ "(1,42): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "form": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><form></form></table></body></html>",
+ "noQuirksBodyHtml": "<table><form></form></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg><foreignObject><p>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><foreignObject><p></p></foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><p></p></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<!doctype html><svg><title>abc",
+ "errors": [
+ "(1,30): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg title": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "abc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><title>abc</title></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><title>abc</title></svg>"
+ }
+ },
+ {
+ "data": "<option><span><option>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "option": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><option><span><option></option></span></option></body></html>",
+ "noQuirksBodyHtml": "<option><span><option></option></span></option>"
+ }
+ },
+ {
+ "data": "<option><option>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "option"
+ },
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><option></option><option></option></body></html>",
+ "noQuirksBodyHtml": "<option></option><option></option>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): unexpected-html-element-in-foreign-content",
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml></annotation-xml></math><div></div></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"application/svg+xml\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,58): unexpected-html-element-in-foreign-content",
+ "(1,58): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "application/svg+xml"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"application/svg+xml\"></annotation-xml></math><div></div></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"application/svg+xml\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"application/xhtml+xml\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,60): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "application/xhtml+xml"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"application/xhtml+xml\"><div></div></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"application/xhtml+xml\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,60): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "aPPlication/xhtmL+xMl"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div></div></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"text/html\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,48): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "text/html"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"text/html\"><div></div></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"text/html\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\"Text/htmL\"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,48): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": "Text/htmL"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\"Text/htmL\"><div></div></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\"Text/htmL\"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml encoding=\" text/html \"><div>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,50): unexpected-html-element-in-foreign-content",
+ "(1,50): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "encoding",
+ "value": " text/html "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml encoding=\" text/html \"></annotation-xml></math><div></div></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml encoding=\" text/html \"><div></div></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml> </annotation-xml>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml> </annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml> </annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml>c</annotation-xml>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "c"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml>c</annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml>c</annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><!--foo-->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "comment": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><!--foo--></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><!--foo--></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml></svg>x",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): unexpected-end-tag",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml>x</annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml>x</annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<math><annotation-xml><svg>x",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><annotation-xml><svg>x</svg></annotation-xml></math></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg>x</svg></annotation-xml></math>"
+ }
+ }
+ ],
+ "tests21.dat": [
+ {
+ "data": "<svg><![CDATA[foo]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo</svg>"
+ }
+ },
+ {
+ "data": "<math><![CDATA[foo]]>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math>foo</math></body></html>",
+ "noQuirksBodyHtml": "<math>foo</math>"
+ }
+ },
+ {
+ "data": "<div><![CDATA[foo]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,7): expected-dashes-or-doctype",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "comment": "[CDATA[foo]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><!--[CDATA[foo]]--></div></body></html>",
+ "noQuirksBodyHtml": "<div><!--[CDATA[foo]]--></div>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[foo",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[foo",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>foo</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]] >]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]] >",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]] ></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]] ></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]] >]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]] >",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]] ></svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]] ></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]]",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]]</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[]>a",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "]>a",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg>]>a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>]>a</svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><![CDATA[foo]]]>",
+ "errors": [
+ "(1,36): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg>foo]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo]</svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><![CDATA[foo]]]]>",
+ "errors": [
+ "(1,37): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg>foo]]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo]]</svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><![CDATA[foo]]]]]>",
+ "errors": [
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "foo]]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg>foo]]]</svg></body></html>",
+ "noQuirksBodyHtml": "<svg>foo]]]</svg>"
+ }
+ },
+ {
+ "data": "<svg><foreignObject><div><![CDATA[foo]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,27): expected-dashes-or-doctype",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "div": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "comment": "[CDATA[foo]]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><foreignObject><div><!--[CDATA[foo]]--></div></foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><div><!--[CDATA[foo]]--></div></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><svg></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[</svg>a]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,24): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "</svg>a",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg>a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>a</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>a",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>a",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><svg>a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg><svg>a</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[</svg>a",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "</svg>a",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg>a</svg></body></html>",
+ "noQuirksBodyHtml": "<svg></svg>a</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]><path>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,28): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg path": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>",
+ "escaped": true
+ },
+ {
+ "tag": "path",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><svg><path></path></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><svg><path></path></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]></path>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,29): unexpected-end-tag",
+ "(1,29): unexpected-end-tag",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><svg></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><svg></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]><!--path-->",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>",
+ "escaped": true
+ },
+ {
+ "comment": "path"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><svg><!--path--></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><svg><!--path--></svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<svg>]]>path",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<svg>path",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><svg>path</svg></body></html>",
+ "noQuirksBodyHtml": "<svg><svg>path</svg>"
+ }
+ },
+ {
+ "data": "<svg><![CDATA[<!--svg-->]]>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "text": "<!--svg-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><!--svg--></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><!--svg--></svg>"
+ }
+ }
+ ],
+ "tests22.dat": [
+ {
+ "data": "<a><b><big><em><strong><div>X</a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,33): adoption-agency-1.3",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "big": true,
+ "em": true,
+ "strong": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "big",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "strong"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "big",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "strong",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b><big><em><strong></strong></em></big></b></a><big><em><strong><div><a>X</a></div></strong></em></big></body></html>",
+ "noQuirksBodyHtml": "<a><b><big><em><strong></strong></em></big></b></a><big><em><strong><div><a>X</a></div></strong></em></big>"
+ }
+ },
+ {
+ "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): adoption-agency-1.3",
+ "(1,91): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "1"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "2"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "3"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "6"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "8"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a>A</a></div></div></div></div></div></div></div></div></b></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a>A</a></div></div></div></div></div></div></div></div></b>"
+ }
+ },
+ {
+ "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): adoption-agency-1.3",
+ "(1,101): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "1"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "2"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "3"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "6"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "8"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "9"
+ }
+ ],
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\">A</div></a></div></div></div></div></div></div></div></div></b></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\">A</div></a></div></div></div></div></div></div></div></div></b>"
+ }
+ },
+ {
+ "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): adoption-agency-1.3",
+ "(1,112): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "b": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "1"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "2"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "3"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "6"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "8"
+ }
+ ],
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "9"
+ }
+ ],
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "10"
+ }
+ ],
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\"><div id=\"10\">A</div></div></a></div></div></div></div></div></div></div></div></b></body></html>",
+ "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\"><div id=\"10\">A</div></div></a></div></div></div></div></div></div></div></div></b>"
+ }
+ },
+ {
+ "data": "<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,46): adoption-agency-1.3",
+ "(1,50): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "cite": true,
+ "b": true,
+ "i": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "cite",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "text": "TEST"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><cite><b><cite><i><cite><i><cite><i></i></cite></i></cite></i></cite></b><i><i><div><b>X</b>TEST</div></i></i></cite></body></html>",
+ "noQuirksBodyHtml": "<cite><b><cite><i><cite><i><cite><i></i></cite></i></cite></i></cite></b><i><i><div><b>X</b>TEST</div></i></i></cite>"
+ }
+ }
+ ],
+ "tests23.dat": [
+ {
+ "data": "<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,116): unexpected-end-tag",
+ "(1,117): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><font size=\"4\"><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\"></font></font></font></font></font></font></font></font></p><p><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\">X</font></font></font></font></font></p></body></html>",
+ "noQuirksBodyHtml": "<p><font size=\"4\"><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\"></font></font></font></font></font></font></font></font></p><p><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\">X</font></font></font></font></font></p>"
+ }
+ },
+ {
+ "data": "<p><font size=4><font size=4><font size=4><font size=4><p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,58): unexpected-end-tag",
+ "(1,59): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"4\">X</font></font></font></p></body></html>",
+ "noQuirksBodyHtml": "<p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"4\">X</font></font></font></p>"
+ }
+ },
+ {
+ "data": "<p><font size=4><font size=4><font size=4><font size=\"5\"><font size=4><p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,73): unexpected-end-tag",
+ "(1,74): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "5"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\"></font></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\">X</font></font></font></font></p></body></html>",
+ "noQuirksBodyHtml": "<p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\"></font></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\">X</font></font></font></font></p>"
+ }
+ },
+ {
+ "data": "<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,68): unexpected-end-tag",
+ "(1,69): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ },
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "b"
+ },
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ },
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "b"
+ },
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "4"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\">X</font></font></font></font></p></body></html>",
+ "noQuirksBodyHtml": "<p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\">X</font></font></font></font></p>"
+ }
+ },
+ {
+ "data": "<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,64): end-tag-too-early",
+ "(1,67): unexpected-end-tag",
+ "(1,68): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "b": true,
+ "object": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "object",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "a"
+ }
+ ],
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Y"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b><object><b id=\"a\"><b id=\"a\">X</b></b></object></b></b></b></b></p><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b>Y</b></b></b></b></p></body></html>",
+ "noQuirksBodyHtml": "<p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b><object><b id=\"a\"><b id=\"a\">X</b></b></object></b></b></b></b></p><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b>Y</b></b></b></b></p>"
+ }
+ }
+ ],
+ "tests24.dat": [
+ {
+ "data": "<!DOCTYPE html>≂̸",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "≂̸"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>≂̸</body></html>",
+ "noQuirksBodyHtml": "≂̸"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>≂̸A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "≂̸A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>≂̸A</body></html>",
+ "noQuirksBodyHtml": "≂̸A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>  ",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> </body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>  A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": " A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body> A</body></html>",
+ "noQuirksBodyHtml": " A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>⊂⃒",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "⊂⃒"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>⊂⃒</body></html>",
+ "noQuirksBodyHtml": "⊂⃒"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>⊂⃒A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "⊂⃒A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>⊂⃒A</body></html>",
+ "noQuirksBodyHtml": "⊂⃒A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>𝔾",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "𝔾"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>𝔾</body></html>",
+ "noQuirksBodyHtml": "𝔾"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html>𝔾A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "𝔾A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>𝔾A</body></html>",
+ "noQuirksBodyHtml": "𝔾A"
+ }
+ }
+ ],
+ "tests25.dat": [
+ {
+ "data": "<!DOCTYPE html><body><foo>A",
+ "errors": [
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><foo>A</foo></body></html>",
+ "noQuirksBodyHtml": "<foo>A</foo>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><area>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "area": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "area"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><area>A</body></html>",
+ "noQuirksBodyHtml": "<area>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><base>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "base": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "base"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><base>A</body></html>",
+ "noQuirksBodyHtml": "<base>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><basefont>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "basefont": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "basefont"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><basefont>A</body></html>",
+ "noQuirksBodyHtml": "<basefont>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><bgsound>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bgsound": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "bgsound"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><bgsound>A</body></html>",
+ "noQuirksBodyHtml": "<bgsound>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><br>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><br>A</body></html>",
+ "noQuirksBodyHtml": "<br>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><col>A",
+ "errors": [
+ "(1,26): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>A</body></html>",
+ "noQuirksBodyHtml": "A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><command>A",
+ "errors": [
+ "eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "command": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "command",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><command>A</command></body></html>",
+ "noQuirksBodyHtml": "<command>A</command>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><embed>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "embed": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "embed"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><embed>A</body></html>",
+ "noQuirksBodyHtml": "<embed>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><frame>A",
+ "errors": [
+ "(1,28): unexpected-start-tag-ignored"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>A</body></html>",
+ "noQuirksBodyHtml": "A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><hr>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "hr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "hr"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><hr>A</body></html>",
+ "noQuirksBodyHtml": "<hr>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><img>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "img": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "img"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><img>A</body></html>",
+ "noQuirksBodyHtml": "<img>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><input>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><input>A</body></html>",
+ "noQuirksBodyHtml": "<input>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><keygen>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "keygen": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "keygen"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><keygen>A</body></html>",
+ "noQuirksBodyHtml": "<keygen>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><link>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "link": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "link"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><link>A</body></html>",
+ "noQuirksBodyHtml": "<link>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><meta>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><meta>A</body></html>",
+ "noQuirksBodyHtml": "<meta>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><param>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "param": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "param"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><param>A</body></html>",
+ "noQuirksBodyHtml": "<param>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><source>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "source": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "source"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><source>A</body></html>",
+ "noQuirksBodyHtml": "<source>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><track>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "track": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "track"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><track>A</body></html>",
+ "noQuirksBodyHtml": "<track>A"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><wbr>A",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "wbr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "wbr"
+ },
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><wbr>A</body></html>",
+ "noQuirksBodyHtml": "<wbr>A"
+ }
+ }
+ ],
+ "tests26.dat": [
+ {
+ "data": "<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>",
+ "errors": [
+ "(1,47): unexpected-start-tag-implies-end-tag",
+ "(1,51): adoption-agency-1.3",
+ "(1,74): unexpected-start-tag-implies-end-tag",
+ "(1,74): adoption-agency-1.3",
+ "(1,81): unexpected-start-tag-implies-end-tag",
+ "(1,85): adoption-agency-1.3",
+ "(1,108): unexpected-start-tag-implies-end-tag",
+ "(1,108): adoption-agency-1.3",
+ "(1,115): unexpected-start-tag-implies-end-tag",
+ "(1,119): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "nobr": true,
+ "br": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#1"
+ }
+ ],
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#2"
+ }
+ ],
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "br"
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#3"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "attrs": [
+ {
+ "name": "href",
+ "value": "#3"
+ }
+ ],
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><a href=\"#1\"><nobr>1</nobr><nobr></nobr></a><nobr><br><a href=\"#2\"></a></nobr><a href=\"#2\"><nobr>2</nobr><nobr></nobr></a><nobr><br><a href=\"#3\"></a></nobr><a href=\"#3\"><nobr>3</nobr><nobr></nobr></a></body></html>",
+ "noQuirksBodyHtml": "<a href=\"#1\"><nobr>1</nobr><nobr></nobr></a><nobr><br><a href=\"#2\"></a></nobr><a href=\"#2\"><nobr>2</nobr><nobr></nobr></a><nobr><br><a href=\"#3\"></a></nobr><a href=\"#3\"><nobr>3</nobr><nobr></nobr></a>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,37): unexpected-start-tag-implies-end-tag",
+ "(1,41): adoption-agency-1.3",
+ "(1,50): unexpected-start-tag-implies-end-tag",
+ "(1,50): adoption-agency-1.3",
+ "(1,57): unexpected-start-tag-implies-end-tag",
+ "(1,61): adoption-agency-1.3",
+ "(1,62): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,44): foster-parenting-start-tag",
+ "(1,48): foster-parenting-end-tag",
+ "(1,48): adoption-agency-1.3",
+ "(1,51): foster-parenting-start-tag",
+ "(1,57): foster-parenting-start-tag",
+ "(1,57): nobr-already-in-scope",
+ "(1,57): adoption-agency-1.2",
+ "(1,58): foster-parenting-character",
+ "(1,64): foster-parenting-start-tag",
+ "(1,64): nobr-already-in-scope",
+ "(1,68): foster-parenting-end-tag",
+ "(1,68): adoption-agency-1.2",
+ "(1,69): foster-parenting-character",
+ "(1,69): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "i": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr><table></table></nobr></b></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1<nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr><table></table></nobr></b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,56): unexpected-end-tag",
+ "(1,65): unexpected-start-tag-implies-end-tag",
+ "(1,65): adoption-agency-1.3",
+ "(1,72): unexpected-start-tag-implies-end-tag",
+ "(1,76): adoption-agency-1.3",
+ "(1,77): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<table><tbody><tr><td><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></td></tr></tbody></table></nobr></b></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1<table><tbody><tr><td><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></td></tr></tbody></table></nobr></b>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,42): unexpected-start-tag-implies-end-tag",
+ "(1,42): adoption-agency-1.3",
+ "(1,46): adoption-agency-1.3",
+ "(1,46): adoption-agency-1.3",
+ "(1,55): unexpected-start-tag-implies-end-tag",
+ "(1,55): adoption-agency-1.3",
+ "(1,62): unexpected-start-tag-implies-end-tag",
+ "(1,66): adoption-agency-1.3",
+ "(1,67): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "div": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr></b><div><b><nobr></nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1</nobr></b><div><b><nobr></nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3",
+ "errors": [
+ "(1,37): unexpected-start-tag-implies-end-tag",
+ "(1,41): adoption-agency-1.3",
+ "(1,55): unexpected-start-tag-implies-end-tag",
+ "(1,55): adoption-agency-1.3",
+ "(1,62): unexpected-start-tag-implies-end-tag",
+ "(1,66): adoption-agency-1.3",
+ "(1,67): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "div": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "3"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr></nobr></b><div><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr></nobr></b><div><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>",
+ "errors": [
+ "(1,37): unexpected-start-tag-implies-end-tag",
+ "(1,46): adoption-agency-1.3",
+ "(1,55): unexpected-start-tag-implies-end-tag",
+ "(1,55): adoption-agency-1.3",
+ "(1,55): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "ins": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "ins"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr><ins></ins></nobr></b><nobr><i></i></nobr><i><nobr></nobr></i></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr><ins></ins></nobr></b><nobr><i></i></nobr><i><nobr></nobr></i>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2",
+ "errors": [
+ "(1,42): unexpected-start-tag-implies-end-tag",
+ "(1,42): adoption-agency-1.3",
+ "(1,46): adoption-agency-1.3",
+ "(1,50): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "ins": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "ins"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<ins></ins></nobr><nobr></nobr></b><nobr><i>2</i></nobr></body></html>",
+ "noQuirksBodyHtml": "<b><nobr>1<ins></ins></nobr><nobr></nobr></b><nobr><i>2</i></nobr>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>",
+ "errors": [
+ "(1,35): adoption-agency-1.3",
+ "(1,44): unexpected-start-tag-implies-end-tag",
+ "(1,44): adoption-agency-1.3",
+ "(1,49): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "1"
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><b>1<nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr></i></body></html>",
+ "noQuirksBodyHtml": "<b>1<nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr></i>"
+ }
+ },
+ {
+ "data": "<p><code x</code></p>\n",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,11): invalid-character-in-attribute-name",
+ "(1,12): unexpected-character-after-solidus-in-tag",
+ "(1,21): unexpected-end-tag",
+ "(2,0): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "code": true
+ },
+ "attrWithFunnyChar": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "code",
+ "attrs": [
+ {
+ "name": "code",
+ "value": ""
+ },
+ {
+ "name": "x<",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "code",
+ "attrs": [
+ {
+ "name": "code",
+ "value": ""
+ },
+ {
+ "name": "x<",
+ "value": ""
+ }
+ ],
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><code x<=\"\" code=\"\"></code></p><code x<=\"\" code=\"\">\n</code></body></html>",
+ "noQuirksBodyHtml": "<p><code x<=\"\" code=\"\"></code></p><code x<=\"\" code=\"\">\n</code>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><svg><foreignObject><p><i></p>a",
+ "errors": [
+ "(1,45): unexpected-end-tag",
+ "(1,46): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "p": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a",
+ "errors": [
+ "(1,60): unexpected-end-tag",
+ "(1,61): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "p": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mtext><p><i></p>a",
+ "errors": [
+ "(1,38): unexpected-end-tag",
+ "(1,39): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mtext": true,
+ "p": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mtext><p><i></i></p><i>a</i></mtext></math></body></html>",
+ "noQuirksBodyHtml": "<math><mtext><p><i></i></p><i>a</i></mtext></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a",
+ "errors": [
+ "(1,53): unexpected-end-tag",
+ "(1,54): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "math math": true,
+ "math mtext": true,
+ "p": true,
+ "i": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mtext",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "i"
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mtext><p><i></i></p><i>a</i></mtext></math></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><math><mtext><p><i></i></p><i>a</i></mtext></math></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><div><!/div>a",
+ "errors": [
+ "(1,28): expected-dashes-or-doctype",
+ "(1,34): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ },
+ "doctype": true,
+ "comment": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "comment": "/div"
+ },
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><div><!--/div-->a</div></body></html>",
+ "noQuirksBodyHtml": "<div><!--/div-->a</div>"
+ }
+ },
+ {
+ "data": "<button><p><button>",
+ "errors": [
+ "Line 1 Col 8 Unexpected start tag (button). Expected DOCTYPE.",
+ "Line 1 Col 19 Unexpected start tag (button) implies end tag (button).",
+ "Line 1 Col 19 Expected closing tag. Unexpected end of file."
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "button": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "button",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ },
+ {
+ "tag": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><button><p></p></button><button></button></body></html>",
+ "noQuirksBodyHtml": "<button><p></p></button><button></button>"
+ }
+ }
+ ],
+ "tests3.dat": [
+ {
+ "data": "<head></head><style></style>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style></style></head><body></body></html>",
+ "noQuirksBodyHtml": "<style></style>"
+ }
+ },
+ {
+ "data": "<head></head><script></script>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script></script></head><body></body></html>",
+ "noQuirksBodyHtml": "<script></script>"
+ }
+ },
+ {
+ "data": "<head></head><!-- --><style></style><!-- --><script></script>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): unexpected-start-tag-out-of-my-head",
+ "(1,52): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "script": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style"
+ },
+ {
+ "tag": "script"
+ }
+ ]
+ },
+ {
+ "comment": " "
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style></style><script></script></head><!-- --><!-- --><body></body></html>",
+ "noQuirksBodyHtml": "<!-- --><style></style><!-- --><script></script>"
+ }
+ },
+ {
+ "data": "<head></head><!-- -->x<style></style><!-- --><script></script>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "style": true,
+ "script": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "style"
+ },
+ {
+ "comment": " "
+ },
+ {
+ "tag": "script"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><!-- --><body>x<style></style><!-- --><script></script></body></html>",
+ "noQuirksBodyHtml": "<!-- -->x<style></style><!-- --><script></script>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>\n</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre></pre></body></html>",
+ "noQuirksBodyHtml": "<pre></pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>\nfoo</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>foo</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>foo</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>\n\nfoo</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "\nfoo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>\nfoo</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>\nfoo</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>\nfoo\n</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "foo\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>foo\n</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>foo\n</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true,
+ "span": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ },
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
+ "noQuirksBodyHtml": "<pre>x</pre><span>\n</span>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "x\ny"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>x\ny</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</pre></body></html>",
+ "errors": [
+ "(2,7): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true,
+ "div": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "\ny"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</div></pre></body></html>",
+ "noQuirksBodyHtml": "<pre>x<div>\ny</div></pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><pre>

A</pre>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "pre": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "\nA"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><pre>\nA</pre></body></html>",
+ "noQuirksBodyHtml": "<pre>\nA</pre>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>",
+ "errors": [
+ "(1,33): two-heads-are-not-better-than-one"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "meta": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "meta"
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><meta></head><body></body></html>",
+ "noQuirksBodyHtml": "<meta>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>",
+ "errors": [
+ "(1,33): two-heads-are-not-better-than-one"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<textarea>foo<span>bar</span><i>baz",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,35): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "foo<span>bar</span><i>baz",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea>foo<span>bar</span><i>baz</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>foo<span>bar</span><i>baz</textarea>"
+ }
+ },
+ {
+ "data": "<title>foo<span>bar</em><i>baz",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,30): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "foo<span>bar</em><i>baz",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>foo<span>bar</em><i>baz</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>foo<span>bar</em><i>baz</title>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><textarea>\n</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea></textarea>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><textarea>\nfoo</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>foo</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>foo</textarea>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><textarea>\n\nfoo</textarea>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": "\nfoo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><textarea>\nfoo</textarea></body></html>",
+ "noQuirksBodyHtml": "<textarea>\nfoo</textarea>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>",
+ "errors": [
+ "(1,60): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true,
+ "div": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><ul><li><div><p></p></div></li><li></li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li><div><p></p></div></li><li></li></ul>"
+ }
+ },
+ {
+ "data": "<!doctype html><nobr><nobr><nobr>",
+ "errors": [
+ "(1,27): unexpected-start-tag-implies-end-tag",
+ "(1,33): unexpected-start-tag-implies-end-tag",
+ "(1,33): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "nobr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><nobr></nobr><nobr></nobr><nobr></nobr></body></html>",
+ "noQuirksBodyHtml": "<nobr></nobr><nobr></nobr><nobr></nobr>"
+ }
+ },
+ {
+ "data": "<!doctype html><nobr><nobr></nobr><nobr>",
+ "errors": [
+ "(1,27): unexpected-start-tag-implies-end-tag",
+ "(1,40): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "nobr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><nobr></nobr><nobr></nobr><nobr></nobr></body></html>",
+ "noQuirksBodyHtml": "<nobr></nobr><nobr></nobr><nobr></nobr>"
+ }
+ },
+ {
+ "data": "<!doctype html><html><body><p><table></table></body></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p></p><table></table></body></html>",
+ "noQuirksBodyHtml": "<p></p><table></table>"
+ }
+ },
+ {
+ "data": "<p><table></table>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><table></table></p></body></html>",
+ "noQuirksBodyHtml": "<p></p><table></table>"
+ }
+ }
+ ],
+ "tests4.dat": [
+ {
+ "data": "direct div content",
+ "errors": [],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "direct div content"
+ }
+ ],
+ "html": "direct div content",
+ "noQuirksBodyHtml": "direct div content"
+ }
+ },
+ {
+ "data": "direct textarea content",
+ "errors": [],
+ "fragment": {
+ "name": "textarea"
+ },
+ "document": {
+ "props": {
+ "tags": {}
+ },
+ "tree": [
+ {
+ "text": "direct textarea content"
+ }
+ ],
+ "html": "direct textarea content",
+ "noQuirksBodyHtml": "direct textarea content"
+ }
+ },
+ {
+ "data": "textarea content with <em>pseudo</em> <foo>markup",
+ "errors": [],
+ "fragment": {
+ "name": "textarea"
+ },
+ "document": {
+ "props": {
+ "tags": {},
+ "escaped": true
+ },
+ "tree": [
+ {
+ "text": "textarea content with <em>pseudo</em> <foo>markup",
+ "escaped": true
+ }
+ ],
+ "html": "textarea content with <em>pseudo</em> <foo>markup",
+ "noQuirksBodyHtml": "textarea content with <em>pseudo</em> <foo>markup</foo>"
+ }
+ },
+ {
+ "data": "this is CDATA inside a <style> element",
+ "errors": [],
+ "fragment": {
+ "name": "style"
+ },
+ "document": {
+ "props": {
+ "tags": {},
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "text": "this is CDATA inside a <style> element",
+ "no_escape": true
+ }
+ ],
+ "html": "this is CDATA inside a <style> element",
+ "noQuirksBodyHtml": "this is CDATA inside a <style> element</style>"
+ }
+ },
+ {
+ "data": "</plaintext>",
+ "errors": [],
+ "fragment": {
+ "name": "plaintext"
+ },
+ "document": {
+ "props": {
+ "tags": {},
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "text": "</plaintext>",
+ "no_escape": true
+ }
+ ],
+ "html": "</plaintext>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "setting html's innerHTML",
+ "errors": [],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "setting html's innerHTML"
+ }
+ ]
+ }
+ ],
+ "html": "<head></head><body>setting html's innerHTML</body>",
+ "noQuirksBodyHtml": "setting html's innerHTML"
+ }
+ },
+ {
+ "data": "<title>setting head's innerHTML</title>",
+ "errors": [],
+ "fragment": {
+ "name": "head"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "setting head's innerHTML"
+ }
+ ]
+ }
+ ],
+ "html": "<title>setting head's innerHTML</title>",
+ "noQuirksBodyHtml": "<title>setting head's innerHTML</title>"
+ }
+ }
+ ],
+ "tests5.dat": [
+ {
+ "data": "<style> <!-- </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!-- ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!-- </style></head><body>x</body></html>",
+ "noQuirksBodyHtml": "<style> <!-- </style>x"
+ }
+ },
+ {
+ "data": "<style> <!-- </style> --> </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,34): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!-- ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "--> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!-- </style> </head><body>--> x</body></html>",
+ "noQuirksBodyHtml": "<style> <!-- </style> --> x"
+ }
+ },
+ {
+ "data": "<style> <!--> </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!--> ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!--> </style></head><body>x</body></html>",
+ "noQuirksBodyHtml": "<style> <!--> </style>x"
+ }
+ },
+ {
+ "data": "<style> <!---> </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!---> ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!---> </style></head><body>x</body></html>",
+ "noQuirksBodyHtml": "<style> <!---> </style>x"
+ }
+ },
+ {
+ "data": "<iframe> <!---> </iframe>x",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": " <!---> ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><iframe> <!---> </iframe>x</body></html>",
+ "noQuirksBodyHtml": "<iframe> <!---> </iframe>x"
+ }
+ },
+ {
+ "data": "<iframe> <!--- </iframe>->x</iframe> --> </iframe>x",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,36): unexpected-end-tag",
+ "(1,50): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "iframe": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "iframe",
+ "children": [
+ {
+ "text": " <!--- ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "->x --> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><iframe> <!--- </iframe>->x --> x</body></html>",
+ "noQuirksBodyHtml": "<iframe> <!--- </iframe>->x --> x"
+ }
+ },
+ {
+ "data": "<script> <!-- </script> --> </script>x",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,37): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "script": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": " <!-- ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "--> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><script> <!-- </script> </head><body>--> x</body></html>",
+ "noQuirksBodyHtml": "<script> <!-- </script> --> x"
+ }
+ },
+ {
+ "data": "<title> <!-- </title> --> </title>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,34): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": " <!-- ",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "--> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title> <!-- </title> </head><body>--> x</body></html>",
+ "noQuirksBodyHtml": "<title> <!-- </title> --> x"
+ }
+ },
+ {
+ "data": "<textarea> <!--- </textarea>->x</textarea> --> </textarea>x",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,42): unexpected-end-tag",
+ "(1,58): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "textarea": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "textarea",
+ "children": [
+ {
+ "text": " <!--- ",
+ "escaped": true
+ }
+ ]
+ },
+ {
+ "text": "->x --> x",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><textarea> <!--- </textarea>->x --> x</body></html>",
+ "noQuirksBodyHtml": "<textarea> <!--- </textarea>->x --> x"
+ }
+ },
+ {
+ "data": "<style> <!</-- </style>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <!</-- ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style> <!</-- </style></head><body>x</body></html>",
+ "noQuirksBodyHtml": "<style> <!</-- </style>x"
+ }
+ },
+ {
+ "data": "<p><xmp></xmp>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "xmp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p"
+ },
+ {
+ "tag": "xmp"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p></p><xmp></xmp></body></html>",
+ "noQuirksBodyHtml": "<p></p><xmp></xmp>"
+ }
+ },
+ {
+ "data": "<xmp> <!-- > --> </xmp>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "xmp": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "xmp",
+ "children": [
+ {
+ "text": " <!-- > --> ",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><xmp> <!-- > --> </xmp></body></html>",
+ "noQuirksBodyHtml": "<xmp> <!-- > --> </xmp>"
+ }
+ },
+ {
+ "data": "<title>&</title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title>&</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&</title>"
+ }
+ },
+ {
+ "data": "<title><!--&--></title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--&-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title><!--&--></title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title><!--&--></title>"
+ }
+ },
+ {
+ "data": "<title><!--</title>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><title><!--</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title><!--</title>"
+ }
+ },
+ {
+ "data": "<noscript><!--</noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,39): unexpected-end-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "no_escape": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<!--",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--</noscript></head><body>--></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>--></noscript>"
+ }
+ },
+ {
+ "data": "<noscript><!--</noscript>--></noscript>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "noscript": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "comment": "</noscript>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><noscript><!--</noscript>--></noscript></head><body></body></html>",
+ "noQuirksBodyHtml": "<noscript><!--</noscript>--></noscript>"
+ }
+ }
+ ],
+ "tests6.dat": [
+ {
+ "data": "<!doctype html></head> <head>",
+ "errors": [
+ "(1,29): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "text": " "
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head> <body></body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html><form><div></form><div>",
+ "errors": [
+ "(1,33): end-tag-too-early-ignored",
+ "(1,38): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true,
+ "div": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><form><div><div></div></div></form></body></html>",
+ "noQuirksBodyHtml": "<form><div><div></div></div></form>"
+ }
+ },
+ {
+ "data": "<!doctype html><title>&</title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "&",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>&</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>&</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><title><!--&--></title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true,
+ "escaped": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "<!--&-->",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title><!--&--></title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title><!--&--></title>"
+ }
+ },
+ {
+ "data": "<!doctype>",
+ "errors": [
+ "(1,9): need-space-after-doctype",
+ "(1,10): expected-doctype-name-but-got-right-bracket",
+ "(1,10): unknown-doctype"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": ""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE ><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!---x",
+ "errors": [
+ "(1,6): eof-in-comment",
+ "(1,6): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": "-x"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!---x--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!---x-->"
+ }
+ },
+ {
+ "data": "<body>\n<div>",
+ "errors": [
+ "(1,6): unexpected-start-tag",
+ "(2,5): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "\n<div></div>",
+ "noQuirksBodyHtml": "\n<div></div>"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\nfoo",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(2,1): unexpected-char-after-frameset",
+ "(2,2): unexpected-char-after-frameset",
+ "(2,3): unexpected-char-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n</html>",
+ "noQuirksBodyHtml": "\nfoo"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\n<noframes>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(2,10): expected-named-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "noframes"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n<noframes></noframes></html>",
+ "noQuirksBodyHtml": "\n<noframes></noframes>"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\n<div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(2,5): unexpected-start-tag-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n</html>",
+ "noQuirksBodyHtml": "\n<div></div>"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\n</html>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n</html>",
+ "noQuirksBodyHtml": "\n"
+ }
+ },
+ {
+ "data": "<frameset></frameset>\n</div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(2,6): unexpected-end-tag-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset>\n</html>",
+ "noQuirksBodyHtml": "\n"
+ }
+ },
+ {
+ "data": "<form><form>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,12): unexpected-start-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "form": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "form"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><form></form></body></html>",
+ "noQuirksBodyHtml": "<form></form>"
+ }
+ },
+ {
+ "data": "<button><button>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-start-tag-implies-end-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "button": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "button"
+ },
+ {
+ "tag": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><button></button><button></button></body></html>",
+ "noQuirksBodyHtml": "<button></button><button></button>"
+ }
+ },
+ {
+ "data": "<table><tr><td></th>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-end-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><caption><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-cell-in-table-body",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption></caption><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption></caption><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><caption><div>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+ }
+ },
+ {
+ "data": "</caption><div>",
+ "errors": [
+ "(1,10): XXX-undefined-error",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><caption><div></caption>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,31): expected-one-end-tag-but-got-another",
+ "(1,31): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+ }
+ },
+ {
+ "data": "<table><caption></table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption></caption></table>"
+ }
+ },
+ {
+ "data": "</table><div>",
+ "errors": [
+ "(1,8): unexpected-end-tag",
+ "(1,13): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,23): unexpected-end-tag",
+ "(1,29): unexpected-end-tag",
+ "(1,40): unexpected-end-tag",
+ "(1,47): unexpected-end-tag",
+ "(1,55): unexpected-end-tag",
+ "(1,60): unexpected-end-tag",
+ "(1,68): unexpected-end-tag",
+ "(1,73): unexpected-end-tag",
+ "(1,81): unexpected-end-tag",
+ "(1,86): unexpected-end-tag",
+ "(1,86): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption></caption></table>"
+ }
+ },
+ {
+ "data": "<table><caption><div></div>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+ }
+ },
+ {
+ "data": "<table><tr><td></body></caption></col></colgroup></html>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-end-tag",
+ "(1,32): unexpected-end-tag",
+ "(1,38): unexpected-end-tag",
+ "(1,49): unexpected-end-tag",
+ "(1,56): unexpected-end-tag",
+ "(1,56): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</table></tbody></tfoot></thead></tr><div>",
+ "errors": [
+ "(1,8): unexpected-end-tag",
+ "(1,16): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,32): unexpected-end-tag",
+ "(1,37): unexpected-end-tag",
+ "(1,42): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><colgroup>foo",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,18): foster-parenting-character-in-table",
+ "(1,19): foster-parenting-character-in-table",
+ "(1,20): foster-parenting-character-in-table",
+ "(1,20): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "foo"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>foo<table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "foo<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "foo<col>",
+ "errors": [
+ "(1,1): unexpected-character-in-colgroup",
+ "(1,2): unexpected-character-in-colgroup",
+ "(1,3): unexpected-character-in-colgroup"
+ ],
+ "fragment": {
+ "name": "colgroup"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "col"
+ }
+ ],
+ "html": "<col>",
+ "noQuirksBodyHtml": "foo"
+ }
+ },
+ {
+ "data": "<table><colgroup></col>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,23): no-end-tag",
+ "(1,23): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "colgroup": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+ "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+ }
+ },
+ {
+ "data": "<frameset><div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,15): unexpected-start-tag-in-frameset",
+ "(1,15): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "</frameset><frame>",
+ "errors": [
+ "(1,11): unexpected-frameset-in-frameset-innerhtml"
+ ],
+ "fragment": {
+ "name": "frameset"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "frame": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "frame"
+ }
+ ],
+ "html": "<frame>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<frameset></div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-end-tag-in-frameset",
+ "(1,16): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</body><div>",
+ "errors": [
+ "(1,7): unexpected-close-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "div"
+ }
+ ],
+ "html": "<div></div>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<table><tr><div>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-start-tag-implies-table-voodoo",
+ "(1,16): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<div></div><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</tr><td>",
+ "errors": [
+ "(1,5): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</tbody></tfoot></thead><td>",
+ "errors": [
+ "(1,8): unexpected-end-tag",
+ "(1,16): unexpected-end-tag",
+ "(1,24): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><tr><div><td>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,16): foster-parenting-start-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<div></div><table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<caption><col><colgroup><tbody><tfoot><thead><tr>",
+ "errors": [
+ "(1,9): unexpected-start-tag",
+ "(1,14): unexpected-start-tag",
+ "(1,24): unexpected-start-tag",
+ "(1,31): unexpected-start-tag",
+ "(1,38): unexpected-start-tag",
+ "(1,45): unexpected-start-tag"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tr"
+ }
+ ],
+ "html": "<tr></tr>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><tbody></thead>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-end-tag-in-table-body",
+ "(1,22): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "</table><tr>",
+ "errors": [
+ "(1,8): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tr"
+ }
+ ],
+ "html": "<tr></tr>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><tbody></body></caption></col></colgroup></html></td></th></tr>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-end-tag-in-table-body",
+ "(1,31): unexpected-end-tag-in-table-body",
+ "(1,37): unexpected-end-tag-in-table-body",
+ "(1,48): unexpected-end-tag-in-table-body",
+ "(1,55): unexpected-end-tag-in-table-body",
+ "(1,60): unexpected-end-tag-in-table-body",
+ "(1,65): unexpected-end-tag-in-table-body",
+ "(1,70): unexpected-end-tag-in-table-body",
+ "(1,70): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tbody></div>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,20): unexpected-end-tag-implies-table-voodoo",
+ "(1,20): end-tag-too-early",
+ "(1,20): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-start-tag-implies-end-tag",
+ "(1,14): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table></table><table></table></body></html>",
+ "noQuirksBodyHtml": "<table></table><table></table>"
+ }
+ },
+ {
+ "data": "<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-end-tag",
+ "(1,24): unexpected-end-tag",
+ "(1,30): unexpected-end-tag",
+ "(1,41): unexpected-end-tag",
+ "(1,48): unexpected-end-tag",
+ "(1,56): unexpected-end-tag",
+ "(1,61): unexpected-end-tag",
+ "(1,69): unexpected-end-tag",
+ "(1,74): unexpected-end-tag",
+ "(1,82): unexpected-end-tag",
+ "(1,87): unexpected-end-tag",
+ "(1,87): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table></table></body></html>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "</table><tr>",
+ "errors": [
+ "(1,8): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body></body></html>",
+ "errors": [
+ "(1,20): unexpected-end-tag-after-body-innerhtml"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ],
+ "html": "<head></head><body></body>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<html><frameset></frameset></html> ",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset> </html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\"><html></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"\""
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<param><frameset></frameset>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<param>"
+ }
+ },
+ {
+ "data": "<source><frameset></frameset>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<source>"
+ }
+ },
+ {
+ "data": "<track><frameset></frameset>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<track>"
+ }
+ },
+ {
+ "data": "</html><frameset></frameset>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag",
+ "(1,17): expected-eof-but-got-start-tag",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</body><frameset></frameset>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-end-tag",
+ "(1,17): unexpected-start-tag-after-body",
+ "(1,17): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "tests7.dat": [
+ {
+ "data": "<!doctype html><body><title>X</title>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>X</title></body></html>",
+ "noQuirksBodyHtml": "<title>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><title>X</title></table>",
+ "errors": [
+ "(1,29): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "title": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><title>X</title><table></table></body></html>",
+ "noQuirksBodyHtml": "<title>X</title><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><head></head><title>X</title>",
+ "errors": [
+ "(1,35): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>X</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html></head><title>X</title>",
+ "errors": [
+ "(1,29): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "title": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "title",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head><title>X</title></head><body></body></html>",
+ "noQuirksBodyHtml": "<title>X</title>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><meta></table>",
+ "errors": [
+ "(1,28): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "meta": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><meta><table></table></body></html>",
+ "noQuirksBodyHtml": "<meta><table></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table>X<tr><td><table> <meta></table></table>",
+ "errors": [
+ "unexpected text in table",
+ "(1,45): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "meta": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<table><tbody><tr><td><meta><table> </table></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "X<table><tbody><tr><td><meta><table> </table></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><html> <head>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html> <head>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": " "
+ }
+ },
+ {
+ "data": "<!doctype html><table><style> <tr>x </style> </table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "style": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "style",
+ "children": [
+ {
+ "text": " <tr>x ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><style> <tr>x </style> </table></body></html>",
+ "noQuirksBodyHtml": "<table><style> <tr>x </style> </table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><TBODY><script> <tr>x </script> </table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "script": true
+ },
+ "doctype": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": " <tr>x ",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><script> <tr>x </script> </tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><script> <tr>x </script> </tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><applet><p>X</p></applet>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "applet": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "applet",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><applet><p>X</p></applet></p></body></html>",
+ "noQuirksBodyHtml": "<p><applet><p>X</p></applet></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><p><object type=\"application/x-non-existant-plugin\"><p>X</p></object>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "object": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "object",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "application/x-non-existant-plugin"
+ }
+ ],
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><p><object type=\"application/x-non-existant-plugin\"><p>X</p></object></p></body></html>",
+ "noQuirksBodyHtml": "<p><object type=\"application/x-non-existant-plugin\"><p>X</p></object></p>"
+ }
+ },
+ {
+ "data": "<!doctype html><listing>\nX</listing>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "listing": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "listing",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><listing>X</listing></body></html>",
+ "noQuirksBodyHtml": "<listing>X</listing>"
+ }
+ },
+ {
+ "data": "<!doctype html><select><input>X",
+ "errors": [
+ "(1,30): unexpected-input-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "input"
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select><input>X</body></html>",
+ "noQuirksBodyHtml": "<select></select><input>X"
+ }
+ },
+ {
+ "data": "<!doctype html><select><select>X",
+ "errors": [
+ "(1,31): unexpected-select-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select>X</body></html>",
+ "noQuirksBodyHtml": "<select></select>X"
+ }
+ },
+ {
+ "data": "<!doctype html><table><input type=hidDEN></table>",
+ "errors": [
+ "(1,41): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "<table><input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table>X<input type=hidDEN></table>",
+ "errors": [
+ "(1,23): foster-parenting-character",
+ "(1,42): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body>X<table><input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "X<table><input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> <input type=hidDEN></table>",
+ "errors": [
+ "(1,43): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table> <input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "<table> <input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table> <input type='hidDEN'></table>",
+ "errors": [
+ "(1,45): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table> <input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "<table> <input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><input type=\" hidden\"><input type=hidDEN></table>",
+ "errors": [
+ "(1,44): unexpected-start-tag-implies-table-voodoo",
+ "(1,63): unexpected-hidden-input-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": " hidden"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "hidDEN"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><input type=\" hidden\"><table><input type=\"hidDEN\"></table></body></html>",
+ "noQuirksBodyHtml": "<input type=\" hidden\"><table><input type=\"hidDEN\"></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><table><select>X<tr>",
+ "errors": [
+ "(1,30): unexpected-start-tag-implies-table-voodoo",
+ "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,35): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select>X</select><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<select>X</select><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!doctype html><select>X</select>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select>X</select></body></html>",
+ "noQuirksBodyHtml": "<select>X</select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE hTmL><html></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<!DOCTYPE HTML><html></html>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body>X</body></body>",
+ "errors": [
+ "(1,21): unexpected-end-tag-after-body"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "X"
+ }
+ ]
+ }
+ ],
+ "html": "<head></head><body>X</body>",
+ "noQuirksBodyHtml": "X"
+ }
+ },
+ {
+ "data": "<div><p>a</x> b",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-end-tag",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "a b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><p>a b</p></div></body></html>",
+ "noQuirksBodyHtml": "<div><p>a b</p></div>"
+ }
+ },
+ {
+ "data": "<table><tr><td><code></code> </table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "code": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "code"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><code></code> </td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><code></code> </td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><b><tr><td>aaa</td></tr>bbb</table>ccc",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,10): foster-parenting-start-tag",
+ "(1,32): foster-parenting-character",
+ "(1,33): foster-parenting-character",
+ "(1,34): foster-parenting-character",
+ "(1,45): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "bbb"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "aaa"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "ccc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><b>bbb</b><table><tbody><tr><td>aaa</td></tr></tbody></table><b>ccc</b></body></html>",
+ "noQuirksBodyHtml": "<b></b><b>bbb</b><table><tbody><tr><td>aaa</td></tr></tbody></table><b>ccc</b>"
+ }
+ },
+ {
+ "data": "A<table><tr> B</tr> B</table>",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,13): foster-parenting-character",
+ "(1,14): foster-parenting-character",
+ "(1,20): foster-parenting-character",
+ "(1,21): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A B B"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>A B B<table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "A B B<table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "A<table><tr> B</tr> </em>C</table>",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,13): foster-parenting-character",
+ "(1,14): foster-parenting-character",
+ "(1,20): foster-parenting-character",
+ "(1,25): unexpected-end-tag",
+ "(1,25): unexpected-end-tag-in-special-element",
+ "(1,26): foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A BC"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>A BC<table><tbody><tr></tr> </tbody></table></body></html>",
+ "noQuirksBodyHtml": "A BC<table><tbody><tr></tr> </tbody></table>"
+ }
+ },
+ {
+ "data": "<select><keygen>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,16): unexpected-input-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "keygen": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "keygen"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select></select><keygen></body></html>",
+ "noQuirksBodyHtml": "<select></select><keygen>"
+ }
+ }
+ ],
+ "tests8.dat": [
+ {
+ "data": "<div>\n<div></div>\n</span>x",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(3,7): unexpected-end-tag",
+ "(3,8): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "\nx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>\n<div></div>\nx</div></body></html>",
+ "noQuirksBodyHtml": "<div>\n<div></div>\nx</div>"
+ }
+ },
+ {
+ "data": "<div>x<div></div>\n</span>x",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(2,7): unexpected-end-tag",
+ "(2,8): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "\nx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>x<div></div>\nx</div></body></html>",
+ "noQuirksBodyHtml": "<div>x<div></div>\nx</div>"
+ }
+ },
+ {
+ "data": "<div>x<div></div>x</span>x",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,25): unexpected-end-tag",
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "xx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>x<div></div>xx</div></body></html>",
+ "noQuirksBodyHtml": "<div>x<div></div>xx</div>"
+ }
+ },
+ {
+ "data": "<div>x<div></div>y</span>z",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,25): unexpected-end-tag",
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "yz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>x<div></div>yz</div></body></html>",
+ "noQuirksBodyHtml": "<div>x<div></div>yz</div>"
+ }
+ },
+ {
+ "data": "<table><div>x<div></div>x</span>x",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,12): foster-parenting-start-tag",
+ "(1,13): foster-parenting-character",
+ "(1,18): foster-parenting-start-tag",
+ "(1,24): foster-parenting-end-tag",
+ "(1,25): foster-parenting-start-tag",
+ "(1,32): foster-parenting-end-tag",
+ "(1,32): unexpected-end-tag",
+ "(1,33): foster-parenting-character",
+ "(1,33): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "div"
+ },
+ {
+ "text": "xx"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>x<div></div>xx</div><table></table></body></html>",
+ "noQuirksBodyHtml": "<div>x<div></div>xx</div><table></table>"
+ }
+ },
+ {
+ "data": "x<table>x",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,9): foster-parenting-character",
+ "(1,9): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "xx"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>xx<table></table></body></html>",
+ "noQuirksBodyHtml": "xx<table></table>"
+ }
+ },
+ {
+ "data": "x<table><table>x",
+ "errors": [
+ "(1,1): expected-doctype-but-got-chars",
+ "(1,15): unexpected-start-tag-implies-end-tag",
+ "(1,16): foster-parenting-character",
+ "(1,16): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "tag": "table"
+ },
+ {
+ "text": "x"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>x<table></table>x<table></table></body></html>",
+ "noQuirksBodyHtml": "x<table></table>x<table></table>"
+ }
+ },
+ {
+ "data": "<b>a<div></div><div></b>y",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,24): adoption-agency-1.3",
+ "(1,25): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "a"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "text": "y"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b>a<div></div></b><div><b></b>y</div></body></html>",
+ "noQuirksBodyHtml": "<b>a<div></div></b><div><b></b>y</div>"
+ }
+ },
+ {
+ "data": "<a><div><p></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,15): adoption-agency-1.3",
+ "(1,15): adoption-agency-1.3",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "div": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><div><a></a><p><a></a></p></div></body></html>",
+ "noQuirksBodyHtml": "<a></a><div><a></a><p><a></a></p></div>"
+ }
+ }
+ ],
+ "tests9.dat": [
+ {
+ "data": "<!DOCTYPE html><math></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><math></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+ "noQuirksBodyHtml": "<math></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><mi>",
+ "errors": [
+ "(1,25) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi></mi></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><math><annotation-xml><svg><u>",
+ "errors": [
+ "(1,45) unexpected-html-element-in-foreign-content",
+ "(1,45) expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math annotation-xml": true,
+ "svg svg": true,
+ "u": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "annotation-xml",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "u"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><annotation-xml><svg></svg></annotation-xml></math><u></u></body></html>",
+ "noQuirksBodyHtml": "<math><annotation-xml><svg><u></u></svg></annotation-xml></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><select><math></math></select>",
+ "errors": [
+ "(1,35) unexpected-start-tag-in-select",
+ "(1,42) unexpected-end-tag-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+ "noQuirksBodyHtml": "<select></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><select><option><math></math></option></select>",
+ "errors": [
+ "(1,43) unexpected-start-tag-in-select",
+ "(1,50) unexpected-end-tag-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+ "noQuirksBodyHtml": "<select><option></option></select>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><math></math></table>",
+ "errors": [
+ "(1,34) unexpected-start-tag-implies-table-voodoo"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math></math><table></table></body></html>",
+ "noQuirksBodyHtml": "<math></math><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><math><mi>foo</mi></math></table>",
+ "errors": [
+ "(1,34) foster-parenting-start-token",
+ "(1,39) foster-parenting-character",
+ "(1,40) foster-parenting-character",
+ "(1,41) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi></math><table></table></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi></math><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table>",
+ "errors": [
+ "(1,34) foster-parenting-start-tag",
+ "(1,39) foster-parenting-character",
+ "(1,40) foster-parenting-character",
+ "(1,41) foster-parenting-character",
+ "(1,51) foster-parenting-character",
+ "(1,52) foster-parenting-character",
+ "(1,53) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "table": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table></table></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table>",
+ "errors": [
+ "(1,41) foster-parenting-start-tag",
+ "(1,46) foster-parenting-character",
+ "(1,47) foster-parenting-character",
+ "(1,48) foster-parenting-character",
+ "(1,58) foster-parenting-character",
+ "(1,59) foster-parenting-character",
+ "(1,60) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "table": true,
+ "tbody": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table><tbody></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table><tbody></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table>",
+ "errors": [
+ "(1,45) foster-parenting-start-tag",
+ "(1,50) foster-parenting-character",
+ "(1,51) foster-parenting-character",
+ "(1,52) foster-parenting-character",
+ "(1,62) foster-parenting-character",
+ "(1,63) foster-parenting-character",
+ "(1,64) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table></body></html>",
+ "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+ "errors": [
+ "(1,70) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</p></math></caption></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux",
+ "errors": [
+ "(1,78) unexpected-end-tag",
+ "(1,78) expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "caption": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ },
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</math></caption></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi>baz</math></caption></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+ "errors": [
+ "(1,44) foster-parenting-start-tag",
+ "(1,49) foster-parenting-character",
+ "(1,50) foster-parenting-character",
+ "(1,51) foster-parenting-character",
+ "(1,61) foster-parenting-character",
+ "(1,62) foster-parenting-character",
+ "(1,63) foster-parenting-character",
+ "(1,71) unexpected-html-element-in-foreign-content",
+ "(1,71) foster-parenting-start-tag",
+ "(1,63) foster-parenting-character",
+ "(1,63) foster-parenting-character",
+ "(1,63) foster-parenting-character"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "p": true,
+ "table": true,
+ "colgroup": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p><table><colgroup></colgroup></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math><table><colgroup></colgroup></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+ "errors": [
+ "(1,50) unexpected-start-tag-in-select",
+ "(1,54) unexpected-start-tag-in-select",
+ "(1,62) unexpected-end-tag-in-select",
+ "(1,66) unexpected-start-tag-in-select",
+ "(1,74) unexpected-end-tag-in-select",
+ "(1,77) unexpected-start-tag-in-select",
+ "(1,88) unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "select": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "foobarbaz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+ "errors": [
+ "(1,36) unexpected-start-tag-implies-table-voodoo",
+ "(1,42) unexpected-start-tag-in-select",
+ "(1,46) unexpected-start-tag-in-select",
+ "(1,54) unexpected-end-tag-in-select",
+ "(1,58) unexpected-start-tag-in-select",
+ "(1,66) unexpected-end-tag-in-select",
+ "(1,69) unexpected-start-tag-in-select",
+ "(1,80) unexpected-table-element-end-tag-in-select-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "table": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "text": "foobarbaz"
+ }
+ ]
+ },
+ {
+ "tag": "table"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "quux"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><select>foobarbaz</select><table></table><p>quux</p></body></html>",
+ "noQuirksBodyHtml": "<select>foobarbaz</select><table></table><p>quux</p>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz",
+ "errors": [
+ "(1,41) expected-eof-but-got-start-tag",
+ "(1,68) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz",
+ "errors": [
+ "(1,34) unexpected-start-tag-after-body",
+ "(1,61) unexpected-html-element-in-foreign-content"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true,
+ "p": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "baz"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></body></html>",
+ "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span>",
+ "errors": [
+ "(1,31) unexpected-start-tag-in-frameset",
+ "(1,35) unexpected-start-tag-in-frameset",
+ "(1,40) unexpected-end-tag-in-frameset",
+ "(1,44) unexpected-start-tag-in-frameset",
+ "(1,49) unexpected-end-tag-in-frameset",
+ "(1,52) unexpected-start-tag-in-frameset",
+ "(1,58) unexpected-start-tag-in-frameset",
+ "(1,58) eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<math><mi></mi><mi></mi><p><span></span></p></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span>",
+ "errors": [
+ "(1,42) unexpected-start-tag-after-frameset",
+ "(1,46) unexpected-start-tag-after-frameset",
+ "(1,51) unexpected-end-tag-after-frameset",
+ "(1,55) unexpected-start-tag-after-frameset",
+ "(1,60) unexpected-end-tag-after-frameset",
+ "(1,63) unexpected-start-tag-after-frameset",
+ "(1,69) unexpected-start-tag-after-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<math><mi></mi><mi></mi><p><span></span></p></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\"><math xlink:href=\"foo\"></math></body></html>",
+ "noQuirksBodyHtml": "<math xlink:href=\"foo\"></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math></body></html>",
+ "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math>"
+ }
+ },
+ {
+ "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mi": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "xlink:href",
+ "value": "foo"
+ },
+ {
+ "name": "xml:lang",
+ "value": "en"
+ }
+ ],
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "attrs": [
+ {
+ "name": "href",
+ "ns": "http://www.w3.org/1999/xlink",
+ "value": "foo"
+ },
+ {
+ "name": "lang",
+ "ns": "http://www.w3.org/XML/1998/namespace",
+ "value": "en"
+ }
+ ]
+ },
+ {
+ "text": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi>bar</math></body></html>",
+ "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi>bar</math>"
+ }
+ }
+ ],
+ "tests_innerHTML_1.dat": [
+ {
+ "data": "<body><span>",
+ "errors": [
+ "(1,6): unexpected-start-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span><body>",
+ "errors": [
+ "(1,12): unexpected-start-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span><body>",
+ "errors": [
+ "(1,12): unexpected-start-tag",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<body><span>",
+ "errors": [
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<head></head><body><span></span></body>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<frameset><span>",
+ "errors": [
+ "(1,10): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span><frameset>",
+ "errors": [
+ "(1,16): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "body"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span><frameset>",
+ "errors": [
+ "(1,16): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<frameset><span>",
+ "errors": [
+ "(1,16): unexpected-start-tag-in-frameset",
+ "(1,16): eof-in-frameset"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "frameset": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ],
+ "html": "<head></head><frameset></frameset>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<table><tr>",
+ "errors": [
+ "(1,7): unexpected-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</table><tr>",
+ "errors": [
+ "(1,8): unexpected-end-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<a>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,3): eof-in-table"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,3): eof-in-table"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><caption>a",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,13): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "caption": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "caption",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><caption>a</caption>",
+ "noQuirksBodyHtml": "<a>a</a>"
+ }
+ },
+ {
+ "data": "<a><colgroup><col>",
+ "errors": [
+ "(1,3): foster-parenting-start-token",
+ "(1,18): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "colgroup": true,
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><colgroup><col></colgroup>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><tbody><tr>",
+ "errors": [
+ "(1,3): foster-parenting-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><tfoot><tr>",
+ "errors": [
+ "(1,3): foster-parenting-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tfoot": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tfoot",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tfoot><tr></tr></tfoot>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><thead><tr>",
+ "errors": [
+ "(1,3): foster-parenting-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "thead": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><thead><tr></tr></thead>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><tr>",
+ "errors": [
+ "(1,3): foster-parenting-start-tag"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tbody><tr></tr></tbody>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><th>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tbody": true,
+ "tr": true,
+ "th": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "th"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tbody><tr><th></th></tr></tbody>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><td>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "table"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tbody><tr><td></td></tr></tbody>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<table></table><tbody>",
+ "errors": [
+ "(1,22): unexpected-start-tag"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "table"
+ }
+ ],
+ "html": "<table></table>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "</table><span>",
+ "errors": [
+ "(1,8): unexpected-end-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span></table>",
+ "errors": [
+ "(1,14): unexpected-end-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "</caption><span>",
+ "errors": [
+ "(1,10): XXX-undefined-error",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span"
+ }
+ ],
+ "html": "<span></span>",
+ "noQuirksBodyHtml": "<span></span>"
+ }
+ },
+ {
+ "data": "<span></caption><span>",
+ "errors": [
+ "(1,16): XXX-undefined-error",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><caption><span>",
+ "errors": [
+ "(1,15): unexpected-start-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><col><span>",
+ "errors": [
+ "(1,11): unexpected-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><colgroup><span>",
+ "errors": [
+ "(1,16): unexpected-start-tag",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><html><span>",
+ "errors": [
+ "(1,12): non-html-root",
+ "(1,18): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><tbody><span>",
+ "errors": [
+ "(1,13): unexpected-start-tag",
+ "(1,19): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><td><span>",
+ "errors": [
+ "(1,10): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><tfoot><span>",
+ "errors": [
+ "(1,13): unexpected-start-tag",
+ "(1,19): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><thead><span>",
+ "errors": [
+ "(1,13): unexpected-start-tag",
+ "(1,19): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><th><span>",
+ "errors": [
+ "(1,10): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span><tr><span>",
+ "errors": [
+ "(1,10): unexpected-start-tag",
+ "(1,16): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "<span></table><span>",
+ "errors": [
+ "(1,14): unexpected-end-tag",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "caption"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "span",
+ "children": [
+ {
+ "tag": "span"
+ }
+ ]
+ }
+ ],
+ "html": "<span><span></span></span>",
+ "noQuirksBodyHtml": "<span><span></span></span>"
+ }
+ },
+ {
+ "data": "</colgroup><col>",
+ "errors": [
+ "(1,11): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "colgroup"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "col"
+ }
+ ],
+ "html": "<col>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<a><col>",
+ "errors": [
+ "(1,3): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "colgroup"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "col": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "col"
+ }
+ ],
+ "html": "<col>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<caption><a>",
+ "errors": [
+ "(1,9): XXX-undefined-error",
+ "(1,12): unexpected-start-tag-implies-table-voodoo",
+ "(1,12): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<col><a>",
+ "errors": [
+ "(1,5): XXX-undefined-error",
+ "(1,8): unexpected-start-tag-implies-table-voodoo",
+ "(1,8): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<colgroup><a>",
+ "errors": [
+ "(1,10): XXX-undefined-error",
+ "(1,13): unexpected-start-tag-implies-table-voodoo",
+ "(1,13): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tbody><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,10): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tfoot><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,10): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<thead><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): unexpected-start-tag-implies-table-voodoo",
+ "(1,10): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</table><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): unexpected-start-tag-implies-table-voodoo",
+ "(1,11): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><tr>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tr"
+ }
+ ],
+ "html": "<a></a><tr></tr>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><td>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tr><td></td></tr>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><td>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tr><td></td></tr>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<a><td>",
+ "errors": [
+ "(1,3): unexpected-start-tag-implies-table-voodoo",
+ "(1,7): unexpected-cell-in-table-body"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ],
+ "html": "<a></a><tr><td></td></tr>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<td><table><tbody><a><tr>",
+ "errors": [
+ "(1,4): unexpected-cell-in-table-body",
+ "(1,21): unexpected-start-tag-implies-table-voodoo",
+ "(1,25): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tbody"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "tr": true,
+ "td": true,
+ "a": true,
+ "table": true,
+ "tbody": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<tr><td><a></a><table><tbody><tr></tr></tbody></table></td></tr>",
+ "noQuirksBodyHtml": "<a></a><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</tr><td>",
+ "errors": [
+ "(1,5): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<td><table><a><tr></tr><tr>",
+ "errors": [
+ "(1,14): unexpected-start-tag-implies-table-voodoo",
+ "(1,27): eof-in-table"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ },
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<td><a></a><table><tbody><tr></tr><tr></tr></tbody></table></td>",
+ "noQuirksBodyHtml": "<a></a><table><tbody><tr></tr><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<caption><td>",
+ "errors": [
+ "(1,9): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<col><td>",
+ "errors": [
+ "(1,5): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<colgroup><td>",
+ "errors": [
+ "(1,10): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<tbody><td>",
+ "errors": [
+ "(1,7): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<tfoot><td>",
+ "errors": [
+ "(1,7): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<thead><td>",
+ "errors": [
+ "(1,7): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<tr><td>",
+ "errors": [
+ "(1,4): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "</table><td>",
+ "errors": [
+ "(1,8): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td></td>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<td><table></table><td>",
+ "errors": [],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td><table></table></td><td></td>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "<td><table></table><td>",
+ "errors": [],
+ "fragment": {
+ "name": "tr"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "td": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "table"
+ }
+ ]
+ },
+ {
+ "tag": "td"
+ }
+ ],
+ "html": "<td><table></table></td><td></td>",
+ "noQuirksBodyHtml": "<table></table>"
+ }
+ },
+ {
+ "data": "<caption><a>",
+ "errors": [
+ "(1,9): XXX-undefined-error",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<col><a>",
+ "errors": [
+ "(1,5): XXX-undefined-error",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<colgroup><a>",
+ "errors": [
+ "(1,10): XXX-undefined-error",
+ "(1,13): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tbody><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tfoot><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<th><a>",
+ "errors": [
+ "(1,4): XXX-undefined-error",
+ "(1,7): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<thead><a>",
+ "errors": [
+ "(1,7): XXX-undefined-error",
+ "(1,10): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<tr><a>",
+ "errors": [
+ "(1,4): XXX-undefined-error",
+ "(1,7): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</table><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</tbody><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</td><a>",
+ "errors": [
+ "(1,5): unexpected-end-tag",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</tfoot><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</thead><a>",
+ "errors": [
+ "(1,8): XXX-undefined-error",
+ "(1,11): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</th><a>",
+ "errors": [
+ "(1,5): unexpected-end-tag",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "</tr><a>",
+ "errors": [
+ "(1,5): XXX-undefined-error",
+ "(1,8): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "a"
+ }
+ ],
+ "html": "<a></a>",
+ "noQuirksBodyHtml": "<a></a>"
+ }
+ },
+ {
+ "data": "<table><td><td>",
+ "errors": [
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,15): expected-closing-tag-but-got-eof"
+ ],
+ "fragment": {
+ "name": "td"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<table><tbody><tr><td></td><td></td></tr></tbody></table>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td></td><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "</select><option>",
+ "errors": [
+ "(1,9): XXX-undefined-error"
+ ],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<option></option>"
+ }
+ },
+ {
+ "data": "<input><option>",
+ "errors": [
+ "(1,7): unexpected-input-in-select"
+ ],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<input><option></option>"
+ }
+ },
+ {
+ "data": "<keygen><option>",
+ "errors": [
+ "(1,8): unexpected-input-in-select"
+ ],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<keygen><option></option>"
+ }
+ },
+ {
+ "data": "<textarea><option>",
+ "errors": [
+ "(1,10): unexpected-input-in-select"
+ ],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<textarea><option></textarea>"
+ }
+ },
+ {
+ "data": "</html><!--abc-->",
+ "errors": [
+ "(1,7): unexpected-end-tag-after-body-innerhtml"
+ ],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ },
+ {
+ "comment": "abc"
+ }
+ ],
+ "html": "<head></head><body></body><!--abc-->",
+ "noQuirksBodyHtml": "<!--abc-->"
+ }
+ },
+ {
+ "data": "</frameset><frame>",
+ "errors": [
+ "(1,11): unexpected-frameset-in-frameset-innerhtml"
+ ],
+ "fragment": {
+ "name": "frameset"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "frame": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "frame"
+ }
+ ],
+ "html": "<frame>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "",
+ "errors": [],
+ "fragment": {
+ "name": "html"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ],
+ "html": "<head></head><body></body>",
+ "noQuirksBodyHtml": ""
+ }
+ }
+ ],
+ "tricky01.dat": [
+ {
+ "data": "<b><p>Bold </b> Not bold</p>\nAlso not bold.",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,15): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Bold "
+ }
+ ]
+ },
+ {
+ "text": " Not bold"
+ }
+ ]
+ },
+ {
+ "text": "\nAlso not bold."
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b></b><p><b>Bold </b> Not bold</p>\nAlso not bold.</body></html>",
+ "noQuirksBodyHtml": "<b></b><p><b>Bold </b> Not bold</p>\nAlso not bold."
+ }
+ },
+ {
+ "data": "<html>\n<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=red>Red. <i>Italic and red.</p>\n<p>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</b> Only Italic </i> Plain",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(2,58): adoption-agency-1.3",
+ "(3,67): unexpected-end-tag",
+ "(4,23): adoption-agency-1.3",
+ "(4,35): adoption-agency-1.3",
+ "(5,30): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "i": true,
+ "p": true,
+ "b": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Italic and Red"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "text": "Italic and Red "
+ }
+ ]
+ },
+ {
+ "text": " Just italic."
+ }
+ ]
+ },
+ {
+ "text": " Italic only."
+ }
+ ]
+ },
+ {
+ "text": " Plain\n"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "I should not be red. "
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "text": "Red. "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Italic and red."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "color",
+ "value": "red"
+ }
+ ],
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Italic and red. "
+ }
+ ]
+ },
+ {
+ "text": " Red."
+ }
+ ]
+ },
+ {
+ "text": " I should not be red."
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Bold "
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Bold and italic"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " Only Italic "
+ }
+ ]
+ },
+ {
+ "text": " Plain"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><font color=\"red\"><i>Italic and Red</i></font><i><p><font color=\"red\">Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=\"red\">Red. <i>Italic and red.</i></font></p><font color=\"red\"><i>\n</i></font><p><font color=\"red\"><i>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</i></b><i> Only Italic </i> Plain</body></html>",
+ "noQuirksBodyHtml": "\n<font color=\"red\"><i>Italic and Red</i></font><i><p><font color=\"red\">Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=\"red\">Red. <i>Italic and red.</i></font></p><font color=\"red\"><i>\n</i></font><p><font color=\"red\"><i>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</i></b><i> Only Italic </i> Plain"
+ }
+ },
+ {
+ "data": "<html><body>\n<p><font size=\"7\">First paragraph.</p>\n<p>Second paragraph.</p></font>\n<b><p><i>Bold and Italic</b> Italic</p>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(2,38): unexpected-end-tag",
+ "(4,28): adoption-agency-1.3",
+ "(4,28): adoption-agency-1.3",
+ "(4,39): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "font": true,
+ "b": true,
+ "i": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "text": "First paragraph."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "attrs": [
+ {
+ "name": "size",
+ "value": "7"
+ }
+ ],
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "Second paragraph."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "b"
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": "Bold and Italic"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "i",
+ "children": [
+ {
+ "text": " Italic"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>\n<p><font size=\"7\">First paragraph.</font></p><font size=\"7\">\n<p>Second paragraph.</p></font>\n<b></b><p><b><i>Bold and Italic</i></b><i> Italic</i></p></body></html>",
+ "noQuirksBodyHtml": "\n<p><font size=\"7\">First paragraph.</font></p><font size=\"7\">\n<p>Second paragraph.</p></font>\n<b></b><p><b><i>Bold and Italic</i></b><i> Italic</i></p>"
+ }
+ },
+ {
+ "data": "<html>\n<dl>\n<dt><b>Boo\n<dd>Goo?\n</dl>\n</html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(4,4): end-tag-too-early",
+ "(5,5): end-tag-too-early",
+ "(6,7): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dl": true,
+ "dt": true,
+ "b": true,
+ "dd": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dl",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "dt",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Boo\n"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "Goo?\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><dl>\n<dt><b>Boo\n</b></dt><dd><b>Goo?\n</b></dd></dl><b>\n</b></body></html>",
+ "noQuirksBodyHtml": "\n<dl>\n<dt><b>Boo\n</b></dt><dd><b>Goo?\n</b></dd></dl><b>\n</b>"
+ }
+ },
+ {
+ "data": "<html><body>\n<label><a><div>Hello<div>World</div></a></label> \n</body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(2,40): adoption-agency-1.3",
+ "(2,48): unexpected-end-tag",
+ "(3,7): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "label": true,
+ "a": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "label",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "Hello"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "World"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": " \n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>\n<label><a></a><div><a>Hello<div>World</div></a> \n</div></label></body></html>",
+ "noQuirksBodyHtml": "\n<label><a></a><div><a>Hello<div>World</div></a> \n</div></label>"
+ }
+ },
+ {
+ "data": "<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table>",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,15): foster-parenting-start-tag",
+ "(1,16): foster-parenting-character",
+ "(1,22): foster-parenting-start-tag",
+ "(1,23): foster-parenting-character",
+ "(1,32): foster-parenting-end-tag",
+ "(1,32): end-tag-too-early",
+ "(1,33): foster-parenting-character",
+ "(1,38): foster-parenting-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "center": true,
+ "font": true,
+ "img": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "center",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "img"
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": " "
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ },
+ {
+ "text": " "
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><center> <font>a</font></center><font><img> </font><table> <tbody><tr><td> </td> </tr> </tbody></table></body></html>",
+ "noQuirksBodyHtml": "<center> <font>a</font></center><font><img> </font><table> <tbody><tr><td> </td> </tr> </tbody></table>"
+ }
+ },
+ {
+ "data": "<table><tr><p><a><p>You should see this text.",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,14): unexpected-start-tag-implies-table-voodoo",
+ "(1,17): unexpected-start-tag-implies-table-voodoo",
+ "(1,20): unexpected-start-tag-implies-table-voodoo",
+ "(1,20): closing-non-current-p-element",
+ "(1,21): foster-parenting-character",
+ "(1,22): foster-parenting-character",
+ "(1,23): foster-parenting-character",
+ "(1,24): foster-parenting-character",
+ "(1,25): foster-parenting-character",
+ "(1,26): foster-parenting-character",
+ "(1,27): foster-parenting-character",
+ "(1,28): foster-parenting-character",
+ "(1,29): foster-parenting-character",
+ "(1,30): foster-parenting-character",
+ "(1,31): foster-parenting-character",
+ "(1,32): foster-parenting-character",
+ "(1,33): foster-parenting-character",
+ "(1,34): foster-parenting-character",
+ "(1,35): foster-parenting-character",
+ "(1,36): foster-parenting-character",
+ "(1,37): foster-parenting-character",
+ "(1,38): foster-parenting-character",
+ "(1,39): foster-parenting-character",
+ "(1,40): foster-parenting-character",
+ "(1,41): foster-parenting-character",
+ "(1,42): foster-parenting-character",
+ "(1,43): foster-parenting-character",
+ "(1,44): foster-parenting-character",
+ "(1,45): foster-parenting-character",
+ "(1,45): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "a": true,
+ "table": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "You should see this text."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p><a></a></p><p><a>You should see this text.</a></p><table><tbody><tr></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<p><a></a></p><p><a>You should see this text.</a></p><table><tbody><tr></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<TABLE>\n<TR>\n<CENTER><CENTER><TD></TD></TR><TR>\n<FONT>\n<TABLE><tr></tr></TABLE>\n</P>\n<a></font><font></a>\nThis page contains an insanely badly-nested tag sequence.",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(3,8): unexpected-start-tag-implies-table-voodoo",
+ "(3,16): unexpected-start-tag-implies-table-voodoo",
+ "(4,6): unexpected-start-tag-implies-table-voodoo",
+ "(4,6): unexpected character token in table (the newline)",
+ "(5,7): unexpected-start-tag-implies-end-tag",
+ "(6,4): unexpected p end tag",
+ "(7,10): adoption-agency-1.3",
+ "(7,20): adoption-agency-1.3",
+ "(8,57): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "center": true,
+ "font": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "p": true,
+ "a": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "center",
+ "children": [
+ {
+ "tag": "center"
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "td"
+ }
+ ]
+ },
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "text": "\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "p"
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ },
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "font"
+ }
+ ]
+ },
+ {
+ "tag": "font",
+ "children": [
+ {
+ "text": "\nThis page contains an insanely badly-nested tag sequence."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><center><center></center></center><font>\n</font><table>\n<tbody><tr>\n<td></td></tr><tr>\n</tr></tbody></table><table><tbody><tr></tr></tbody></table><font>\n<p></p>\n<a></a></font><a><font></font></a><font>\nThis page contains an insanely badly-nested tag sequence.</font></body></html>",
+ "noQuirksBodyHtml": "<center><center></center></center><font>\n</font><table>\n<tbody><tr>\n<td></td></tr><tr>\n</tr></tbody></table><table><tbody><tr></tr></tbody></table><font>\n<p></p>\n<a></a></font><a><font></font></a><font>\nThis page contains an insanely badly-nested tag sequence.</font>"
+ }
+ },
+ {
+ "data": "<html>\n<body>\n<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n</body>\n</html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(3,56): adoption-agency-1.3",
+ "(4,58): adoption-agency-1.3",
+ "(5,7): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "nobr": true,
+ "div": true,
+ "pre": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "This text is in a div inside a nobr"
+ }
+ ]
+ },
+ {
+ "text": "More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. "
+ }
+ ]
+ },
+ {
+ "tag": "pre",
+ "children": [
+ {
+ "text": "A pre tag outside everything else."
+ }
+ ]
+ },
+ {
+ "text": "\n\n"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>\n<b><nobr></nobr></b><div><b><nobr>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n\n</div></body></html>",
+ "noQuirksBodyHtml": "\n\n<b><nobr></nobr></b><div><b><nobr>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n\n</div>"
+ }
+ }
+ ],
+ "webkit01.dat": [
+ {
+ "data": "Test",
+ "errors": [
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "Test"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>Test</body></html>",
+ "noQuirksBodyHtml": "Test"
+ }
+ },
+ {
+ "data": "<div></div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div></div></body></html>",
+ "noQuirksBodyHtml": "<div></div>"
+ }
+ },
+ {
+ "data": "<div>Test</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>Test</div></body></html>",
+ "noQuirksBodyHtml": "<div>Test</div>"
+ }
+ },
+ {
+ "data": "<di",
+ "errors": [
+ "(1,3): eof-in-tag-name",
+ "(1,3): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "\nconsole.log(\"PASS\");\n",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Bye"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div></body></html>",
+ "noQuirksBodyHtml": "<div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div>"
+ }
+ },
+ {
+ "data": "<div foo=\"bar\">Hello</div>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ],
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div foo=\"bar\">Hello</div></body></html>",
+ "noQuirksBodyHtml": "<div foo=\"bar\">Hello</div>"
+ }
+ },
+ {
+ "data": "<div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "script": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Hello"
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "script",
+ "children": [
+ {
+ "text": "\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "Bye"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div></body></html>",
+ "noQuirksBodyHtml": "<div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div>"
+ }
+ },
+ {
+ "data": "<foo bar=\"baz\"></foo><potato quack=\"duck\"></potato>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "potato": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "baz"
+ }
+ ]
+ },
+ {
+ "tag": "potato",
+ "attrs": [
+ {
+ "name": "quack",
+ "value": "duck"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo bar=\"baz\"></foo><potato quack=\"duck\"></potato></body></html>",
+ "noQuirksBodyHtml": "<foo bar=\"baz\"></foo><potato quack=\"duck\"></potato>"
+ }
+ },
+ {
+ "data": "<foo bar=\"baz\"><potato quack=\"duck\"></potato></foo>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "potato": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "baz"
+ }
+ ],
+ "children": [
+ {
+ "tag": "potato",
+ "attrs": [
+ {
+ "name": "quack",
+ "value": "duck"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo bar=\"baz\"><potato quack=\"duck\"></potato></foo></body></html>",
+ "noQuirksBodyHtml": "<foo bar=\"baz\"><potato quack=\"duck\"></potato></foo>"
+ }
+ },
+ {
+ "data": "<foo></foo bar=\"baz\"><potato></potato quack=\"duck\">",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,21): attributes-in-end-tag",
+ "(1,51): attributes-in-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true,
+ "potato": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo"
+ },
+ {
+ "tag": "potato"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo></foo><potato></potato></body></html>",
+ "noQuirksBodyHtml": "<foo></foo><potato></potato>"
+ }
+ },
+ {
+ "data": "</ tttt>",
+ "errors": [
+ "(1,2): expected-closing-tag-but-got-char",
+ "(1,8): expected-doctype-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "comment": " tttt"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<!-- tttt--><html><head></head><body></body></html>",
+ "noQuirksBodyHtml": "<!-- tttt-->"
+ }
+ },
+ {
+ "data": "<div FOO ><img><img></div>",
+ "errors": [
+ "(1,10): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "img": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": ""
+ }
+ ],
+ "children": [
+ {
+ "tag": "img"
+ },
+ {
+ "tag": "img"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div foo=\"\"><img><img></div></body></html>",
+ "noQuirksBodyHtml": "<div foo=\"\"><img><img></div>"
+ }
+ },
+ {
+ "data": "<p>Test</p<p>Test2</p>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,13): unexpected-end-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "children": [
+ {
+ "text": "TestTest2"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p>TestTest2</p></body></html>",
+ "noQuirksBodyHtml": "<p>TestTest2</p>"
+ }
+ },
+ {
+ "data": "<rdar://problem/6869687>",
+ "errors": [
+ "(1,7): unexpected-character-after-solidus-in-tag",
+ "(1,8): unexpected-character-after-solidus-in-tag",
+ "(1,16): unexpected-character-after-solidus-in-tag",
+ "(1,24): expected-doctype-but-got-start-tag",
+ "(1,24): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "rdar:": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "rdar:",
+ "attrs": [
+ {
+ "name": "6869687",
+ "value": ""
+ },
+ {
+ "name": "problem",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><rdar: problem=\"\" 6869687=\"\"></rdar:></body></html>",
+ "noQuirksBodyHtml": "<rdar: problem=\"\" 6869687=\"\"></rdar:>"
+ }
+ },
+ {
+ "data": "<A>test< /A>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,8): expected-tag-name",
+ "(1,12): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "text": "test< /A>",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a>test< /A></a></body></html>",
+ "noQuirksBodyHtml": "<a>test< /A></a>"
+ }
+ },
+ {
+ "data": "<",
+ "errors": [
+ "(1,4): expected-doctype-but-got-chars"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "escaped": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "<",
+ "escaped": true
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><</body></html>",
+ "noQuirksBodyHtml": "<"
+ }
+ },
+ {
+ "data": "<body foo='bar'><body foo='baz' yo='mama'>",
+ "errors": [
+ "(1,16): expected-doctype-but-got-start-tag",
+ "(1,42): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ },
+ {
+ "name": "yo",
+ "value": "mama"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body foo=\"bar\" yo=\"mama\"></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<body></br foo=\"bar\"></body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): attributes-in-end-tag",
+ "(1,21): unexpected-end-tag-treated-as"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><br></body></html>",
+ "noQuirksBodyHtml": "<br>"
+ }
+ },
+ {
+ "data": "<bdy><br foo=\"bar\"></body>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,26): expected-one-end-tag-but-got-another"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bdy": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "bdy",
+ "children": [
+ {
+ "tag": "br",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><bdy><br foo=\"bar\"></bdy></body></html>",
+ "noQuirksBodyHtml": "<bdy><br foo=\"bar\"></bdy>"
+ }
+ },
+ {
+ "data": "<body></body></br foo=\"bar\">",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,28): attributes-in-end-tag",
+ "(1,28): unexpected-end-tag-after-body",
+ "(1,28): unexpected-end-tag-treated-as"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "br"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><br></body></html>",
+ "noQuirksBodyHtml": "<br>"
+ }
+ },
+ {
+ "data": "<bdy></body><br foo=\"bar\">",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,12): expected-one-end-tag-but-got-another",
+ "(1,26): unexpected-start-tag-after-body",
+ "(1,26): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "bdy": true,
+ "br": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "bdy",
+ "children": [
+ {
+ "tag": "br",
+ "attrs": [
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><bdy><br foo=\"bar\"></bdy></body></html>",
+ "noQuirksBodyHtml": "<bdy><br foo=\"bar\"></bdy>"
+ }
+ },
+ {
+ "data": "<html><body></body></html><!-- Hi there -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ },
+ {
+ "comment": " Hi there "
+ }
+ ],
+ "html": "<html><head></head><body></body></html><!-- Hi there -->",
+ "noQuirksBodyHtml": "<!-- Hi there -->"
+ }
+ },
+ {
+ "data": "<html><body></body></html>x<!-- Hi there -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "comment": " Hi there "
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>x<!-- Hi there --></body></html>",
+ "noQuirksBodyHtml": "x<!-- Hi there -->"
+ }
+ },
+ {
+ "data": "<html><body></body></html>x<!-- Hi there --></html><!-- Again -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "comment": " Hi there "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": " Again "
+ }
+ ],
+ "html": "<html><head></head><body>x<!-- Hi there --></body></html><!-- Again -->",
+ "noQuirksBodyHtml": "x<!-- Hi there --><!-- Again -->"
+ }
+ },
+ {
+ "data": "<html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): expected-eof-but-got-char"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ },
+ "comment": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "x"
+ },
+ {
+ "comment": " Hi there "
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": " Again "
+ }
+ ],
+ "html": "<html><head></head><body>x<!-- Hi there --></body></html><!-- Again -->",
+ "noQuirksBodyHtml": "x<!-- Hi there --><!-- Again -->"
+ }
+ },
+ {
+ "data": "<html><body><ruby><div><rp>xx</rp></div></ruby></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): XXX-undefined-error"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "rp": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "rp",
+ "children": [
+ {
+ "text": "xx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby><div><rp>xx</rp></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><rp>xx</rp></div></ruby>"
+ }
+ },
+ {
+ "data": "<html><body><ruby><div><rt>xx</rt></div></ruby></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,27): XXX-undefined-error"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ruby": true,
+ "div": true,
+ "rt": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ruby",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "rt",
+ "children": [
+ {
+ "text": "xx"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ruby><div><rt>xx</rt></div></ruby></body></html>",
+ "noQuirksBodyHtml": "<ruby><div><rt>xx</rt></div></ruby>"
+ }
+ },
+ {
+ "data": "<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true,
+ "noframes": true
+ },
+ "comment": true,
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset",
+ "children": [
+ {
+ "comment": "1"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "A",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": "2"
+ }
+ ]
+ },
+ {
+ "comment": "3"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "B",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "comment": "4"
+ },
+ {
+ "tag": "noframes",
+ "children": [
+ {
+ "text": "C",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "5"
+ },
+ {
+ "comment": "6"
+ }
+ ],
+ "html": "<html><head></head><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--><noframes>C</noframes></html><!--5--><!--6-->",
+ "noQuirksBodyHtml": "<!--1--><noframes>A</noframes><!--2--><!--3--><noframes>B</noframes><!--4--><!--5--><noframes>C</noframes><!--6-->"
+ }
+ },
+ {
+ "data": "<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>",
+ "errors": [
+ "(1,8): expected-doctype-but-got-start-tag",
+ "(1,25): unexpected-select-in-select",
+ "(1,59): unexpected-select-in-select",
+ "(1,93): unexpected-select-in-select",
+ "(1,127): unexpected-select-in-select"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "select": true,
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "B"
+ },
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "C"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "D"
+ },
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "E"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "F"
+ },
+ {
+ "tag": "select",
+ "children": [
+ {
+ "tag": "option",
+ "children": [
+ {
+ "text": "G"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><select><option>A</option></select><option>B<select><option>C</option></select></option><option>D<select><option>E</option></select></option><option>F<select><option>G</option></select></option></body></html>",
+ "noQuirksBodyHtml": "<select><option>A</option></select><option>B<select><option>C</option></select></option><option>D<select><option>E</option></select></option><option>F<select><option>G</option></select></option>"
+ }
+ },
+ {
+ "data": "<dd><dd><dt><dt><dd><li><li>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "dd": true,
+ "dt": true,
+ "li": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "dd"
+ },
+ {
+ "tag": "dd"
+ },
+ {
+ "tag": "dt"
+ },
+ {
+ "tag": "dt"
+ },
+ {
+ "tag": "dd",
+ "children": [
+ {
+ "tag": "li"
+ },
+ {
+ "tag": "li"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><dd></dd><dd></dd><dt></dt><dt></dt><dd><li></li><li></li></dd></body></html>",
+ "noQuirksBodyHtml": "<dd></dd><dd></dd><dt></dt><dt></dt><dd><li></li><li></li></dd>"
+ }
+ },
+ {
+ "data": "<div><b></div><div><nobr>a<nobr>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,14): end-tag-too-early",
+ "(1,32): unexpected-start-tag-implies-end-tag",
+ "(1,32): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "b": true,
+ "nobr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "nobr",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ },
+ {
+ "tag": "nobr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><b></b></div><div><b><nobr>a</nobr><nobr></nobr></b></div></body></html>",
+ "noQuirksBodyHtml": "<div><b></b></div><div><b><nobr>a</nobr><nobr></nobr></b></div>"
+ }
+ },
+ {
+ "data": "<head></head>\n<body></body>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "text": "\n"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head>\n<body></body></html>",
+ "noQuirksBodyHtml": "\n"
+ }
+ },
+ {
+ "data": "<head></head> <style></style>ddd",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,21): unexpected-start-tag-out-of-my-head"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "style": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head",
+ "children": [
+ {
+ "tag": "style"
+ }
+ ]
+ },
+ {
+ "text": " "
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "ddd"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head><style></style></head> <body>ddd</body></html>",
+ "noQuirksBodyHtml": " <style></style>ddd"
+ }
+ },
+ {
+ "data": "<kbd><table></kbd><col><select><tr>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-end-tag-implies-table-voodoo",
+ "(1,18): unexpected-end-tag",
+ "(1,31): unexpected-start-tag-implies-table-voodoo",
+ "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,35): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "kbd": true,
+ "select": true,
+ "table": true,
+ "colgroup": true,
+ "col": true,
+ "tbody": true,
+ "tr": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "kbd",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table></kbd></body></html>",
+ "noQuirksBodyHtml": "<kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table></kbd>"
+ }
+ },
+ {
+ "data": "<kbd><table></kbd><col><select><tr></table><div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-end-tag-implies-table-voodoo",
+ "(1,18): unexpected-end-tag",
+ "(1,31): unexpected-start-tag-implies-table-voodoo",
+ "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+ "(1,48): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "kbd": true,
+ "select": true,
+ "table": true,
+ "colgroup": true,
+ "col": true,
+ "tbody": true,
+ "tr": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "kbd",
+ "children": [
+ {
+ "tag": "select"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "colgroup",
+ "children": [
+ {
+ "tag": "col"
+ }
+ ]
+ },
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table><div></div></kbd></body></html>",
+ "noQuirksBodyHtml": "<kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table><div></div></kbd>"
+ }
+ },
+ {
+ "data": "<a><li><style></style><title></title></a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,41): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "li": true,
+ "style": true,
+ "title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "style"
+ },
+ {
+ "tag": "title"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><li><a><style></style><title></title></a></li></body></html>",
+ "noQuirksBodyHtml": "<a></a><li><a><style></style><title></title></a></li>"
+ }
+ },
+ {
+ "data": "<font></p><p><meta><title></title></font>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,10): unexpected-end-tag",
+ "(1,41): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "font": true,
+ "p": true,
+ "meta": true,
+ "title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "p"
+ }
+ ]
+ },
+ {
+ "tag": "p",
+ "children": [
+ {
+ "tag": "font",
+ "children": [
+ {
+ "tag": "meta"
+ },
+ {
+ "tag": "title"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><font><p></p></font><p><font><meta><title></title></font></p></body></html>",
+ "noQuirksBodyHtml": "<font><p></p></font><p><font><meta><title></title></font></p>"
+ }
+ },
+ {
+ "data": "<a><center><title></title><a>",
+ "errors": [
+ "(1,3): expected-doctype-but-got-start-tag",
+ "(1,29): unexpected-start-tag-implies-end-tag",
+ "(1,29): adoption-agency-1.3",
+ "(1,29): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "a": true,
+ "center": true,
+ "title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "a"
+ },
+ {
+ "tag": "center",
+ "children": [
+ {
+ "tag": "a",
+ "children": [
+ {
+ "tag": "title"
+ }
+ ]
+ },
+ {
+ "tag": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><a></a><center><a><title></title></a><a></a></center></body></html>",
+ "noQuirksBodyHtml": "<a></a><center><a><title></title></a><a></a></center>"
+ }
+ },
+ {
+ "data": "<svg><title><div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg title": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><title><div></div></title></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><title><div></div></title></svg>"
+ }
+ },
+ {
+ "data": "<svg><title><rect><div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,23): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg title": true,
+ "rect": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "rect",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><title><rect><div></div></rect></title></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><title><rect><div></div></rect></title></svg>"
+ }
+ },
+ {
+ "data": "<svg><title><svg><div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,22): unexpected-html-element-in-foreign-content",
+ "(1,22): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg title": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><title><svg></svg><div></div></title></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><title><svg><div></div></svg></title></svg>"
+ }
+ },
+ {
+ "data": "<img <=\"\" FAIL>",
+ "errors": [
+ "(1,6): invalid-character-in-attribute-name",
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "img": true
+ },
+ "attrWithFunnyChar": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "img",
+ "attrs": [
+ {
+ "name": "<",
+ "value": ""
+ },
+ {
+ "name": "fail",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><img <=\"\" fail=\"\"></body></html>",
+ "noQuirksBodyHtml": "<img <=\"\" fail=\"\">"
+ }
+ },
+ {
+ "data": "<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>",
+ "errors": [
+ "(1,4): expected-doctype-but-got-start-tag",
+ "(1,23): non-void-element-with-trailing-solidus",
+ "(1,29): end-tag-too-early"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "ul": true,
+ "li": true,
+ "div": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "ul",
+ "children": [
+ {
+ "tag": "li",
+ "children": [
+ {
+ "tag": "div",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "foo"
+ }
+ ],
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "li",
+ "children": [
+ {
+ "text": "B"
+ },
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "C"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><ul><li><div id=\"foo\">A</div></li><li>B<div>C</div></li></ul></body></html>",
+ "noQuirksBodyHtml": "<ul><li><div id=\"foo\">A</div></li><li>B<div>C</div></li></ul>"
+ }
+ },
+ {
+ "data": "<svg><em><desc></em>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,9): unexpected-html-element-in-foreign-content",
+ "(1,20): adoption-agency-1.3"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "em": true,
+ "desc": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "desc"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg></svg><em><desc></desc></em></body></html>",
+ "noQuirksBodyHtml": "<svg><em><desc></desc></em></svg>"
+ }
+ },
+ {
+ "data": "<table><tr><td><svg><desc><td></desc><circle>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true,
+ "svg svg": true,
+ "svg desc": true,
+ "circle": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "desc",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "td",
+ "children": [
+ {
+ "tag": "circle"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<svg><tfoot></mi><td>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag",
+ "(1,17): unexpected-end-tag",
+ "(1,17): unexpected-end-tag",
+ "(1,21): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg tfoot": true,
+ "svg td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "tfoot",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "td",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><tfoot><td></td></tfoot></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><tfoot><td></td></tfoot></svg>"
+ }
+ },
+ {
+ "data": "<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "math math": true,
+ "math mrow": true,
+ "math mn": true,
+ "math mi": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "math",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mrow",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mrow",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "tag": "mn",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "1"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "mi",
+ "ns": "http://www.w3.org/1998/Math/MathML",
+ "children": [
+ {
+ "text": "a"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math></body></html>",
+ "noQuirksBodyHtml": "<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>"
+ }
+ },
+ {
+ "data": "<!doctype html><input type=\"hidden\"><frameset>",
+ "errors": [
+ "(1,46): unexpected-start-tag",
+ "(1,46): eof-in-frameset"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "frameset": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "frameset"
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+ "noQuirksBodyHtml": "<input type=\"hidden\">"
+ }
+ },
+ {
+ "data": "<!doctype html><input type=\"button\"><frameset>",
+ "errors": [
+ "(1,46): unexpected-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true
+ },
+ "doctype": true
+ },
+ "tree": [
+ {
+ "doctype": "html"
+ },
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input",
+ "attrs": [
+ {
+ "name": "type",
+ "value": "button"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<!DOCTYPE html><html><head></head><body><input type=\"button\"></body></html>",
+ "noQuirksBodyHtml": "<input type=\"button\">"
+ }
+ }
+ ],
+ "webkit02.dat": [
+ {
+ "data": "<foo bar=qux/>",
+ "errors": [
+ "(1,14): expected-doctype-but-got-start-tag",
+ "(1,14): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "foo": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "foo",
+ "attrs": [
+ {
+ "name": "bar",
+ "value": "qux/"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><foo bar=\"qux/\"></foo></body></html>",
+ "noQuirksBodyHtml": "<foo bar=\"qux/\"></foo>"
+ }
+ },
+ {
+ "data": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "script": "on",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "noscript": true,
+ "span": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "status"
+ }
+ ],
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "text": "<strong>A</strong>",
+ "no_escape": true
+ }
+ ]
+ },
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p></body></html>",
+ "noQuirksBodyHtml": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>"
+ }
+ },
+ {
+ "data": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
+ "errors": [
+ "(1,15): expected-doctype-but-got-start-tag"
+ ],
+ "script": "off",
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "p": true,
+ "noscript": true,
+ "strong": true,
+ "span": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "p",
+ "attrs": [
+ {
+ "name": "id",
+ "value": "status"
+ }
+ ],
+ "children": [
+ {
+ "tag": "noscript",
+ "children": [
+ {
+ "tag": "strong",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "span",
+ "children": [
+ {
+ "text": "B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p></body></html>",
+ "noQuirksBodyHtml": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>"
+ }
+ },
+ {
+ "data": "<div><sarcasm><div></div></sarcasm></div>",
+ "errors": [
+ "(1,5): expected-doctype-but-got-start-tag"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "div": true,
+ "sarcasm": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "tag": "sarcasm",
+ "children": [
+ {
+ "tag": "div"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><div><sarcasm><div></div></sarcasm></div></body></html>",
+ "noQuirksBodyHtml": "<div><sarcasm><div></div></sarcasm></div>"
+ }
+ },
+ {
+ "data": "<html><body><img src=\"\" border=\"0\" alt=\"><div>A</div></body></html>",
+ "errors": [
+ "(1,6): expected-doctype-but-got-start-tag",
+ "(1,67): eof-in-attribute-value-double-quote"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body"
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body></body></html>",
+ "noQuirksBodyHtml": ""
+ }
+ },
+ {
+ "data": "<table><td></tbody>A",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,20): foster-parenting-character",
+ "(1,20): eof-in-table"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "text": "A"
+ },
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body>A<table><tbody><tr><td></td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "A<table><tbody><tr><td></td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td></thead>A",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,19): XXX-undefined-error",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><td></tfoot>A",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,11): unexpected-cell-in-table-body",
+ "(1,19): XXX-undefined-error",
+ "(1,20): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "tbody": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "tbody",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table></body></html>",
+ "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>"
+ }
+ },
+ {
+ "data": "<table><thead><td></tbody>A",
+ "errors": [
+ "(1,7): expected-doctype-but-got-start-tag",
+ "(1,18): unexpected-cell-in-table-body",
+ "(1,26): XXX-undefined-error",
+ "(1,27): expected-closing-tag-but-got-eof"
+ ],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "table": true,
+ "thead": true,
+ "tr": true,
+ "td": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "table",
+ "children": [
+ {
+ "tag": "thead",
+ "children": [
+ {
+ "tag": "tr",
+ "children": [
+ {
+ "tag": "td",
+ "children": [
+ {
+ "text": "A"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><table><thead><tr><td>A</td></tr></thead></table></body></html>",
+ "noQuirksBodyHtml": "<table><thead><tr><td>A</td></tr></thead></table>"
+ }
+ },
+ {
+ "data": "<legend>test</legend>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "legend": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "legend",
+ "children": [
+ {
+ "text": "test"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><legend>test</legend></body></html>",
+ "noQuirksBodyHtml": "<legend>test</legend>"
+ }
+ },
+ {
+ "data": "<table><input>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "input": true,
+ "table": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "input"
+ },
+ {
+ "tag": "table"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><input><table></table></body></html>",
+ "noQuirksBodyHtml": "<input><table></table>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><aside></b>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><em><foo><foo></foo></foo></em></b><em><aside><b></b></aside></em></body></html>",
+ "noQuirksBodyHtml": "<b><em><foo><foo></foo></foo></em></b><em><aside><b></b></aside></em>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><aside></b></em>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "em"
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><em><foo><foo></foo></foo></em></b><em></em><aside><em><b></b></em></aside></body></html>",
+ "noQuirksBodyHtml": "<b><em><foo><foo></foo></foo></em></b><em></em><aside><em><b></b></em></aside>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><foo><aside></b>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside></body></html>",
+ "noQuirksBodyHtml": "<b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><foo><aside></b></em>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside></body></html>",
+ "noQuirksBodyHtml": "<b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo><aside></b></em>",
+ "errors": [],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "em": true,
+ "foo": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ],
+ "html": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></em></b><aside><b></b></aside>",
+ "noQuirksBodyHtml": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></em></b><aside><b></b></aside>"
+ }
+ },
+ {
+ "data": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food><aside></b></em>",
+ "errors": [],
+ "fragment": {
+ "name": "div"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "b": true,
+ "em": true,
+ "foo": true,
+ "foob": true,
+ "fooc": true,
+ "food": true,
+ "aside": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "b",
+ "children": [
+ {
+ "tag": "em",
+ "children": [
+ {
+ "tag": "foo",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "foob",
+ "children": [
+ {
+ "tag": "fooc",
+ "children": [
+ {
+ "tag": "fooc",
+ "children": [
+ {
+ "tag": "fooc",
+ "children": [
+ {
+ "tag": "fooc",
+ "children": [
+ {
+ "tag": "food"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "tag": "aside",
+ "children": [
+ {
+ "tag": "b"
+ }
+ ]
+ }
+ ],
+ "html": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food></food></fooc></fooc></fooc></fooc></foob></foob></foob></foob></foo></em></b><aside><b></b></aside>",
+ "noQuirksBodyHtml": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food></food></fooc></fooc></fooc></fooc></foob></foob></foob></foob></foo></em></b><aside><b></b></aside>"
+ }
+ },
+ {
+ "data": "<option><XH<optgroup></optgroup>",
+ "errors": [],
+ "fragment": {
+ "name": "select"
+ },
+ "document": {
+ "props": {
+ "tags": {
+ "option": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "option"
+ }
+ ],
+ "html": "<option></option>",
+ "noQuirksBodyHtml": "<option><xh<optgroup></xh<optgroup></option>"
+ }
+ },
+ {
+ "data": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "div": true,
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "div",
+ "children": [
+ {
+ "text": "foo"
+ }
+ ]
+ },
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "</foreignObject></svg><div>bar</div>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div></plaintext></foreignObject></svg></body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div></plaintext></foreignObject></svg>"
+ }
+ },
+ {
+ "data": "<svg><foreignObject></foreignObject><title></svg>foo",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "svg svg": true,
+ "svg foreignObject": true,
+ "svg title": true
+ }
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "svg",
+ "ns": "http://www.w3.org/2000/svg",
+ "children": [
+ {
+ "tag": "foreignObject",
+ "ns": "http://www.w3.org/2000/svg"
+ },
+ {
+ "tag": "title",
+ "ns": "http://www.w3.org/2000/svg"
+ }
+ ]
+ },
+ {
+ "text": "foo"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><svg><foreignObject></foreignObject><title></title></svg>foo</body></html>",
+ "noQuirksBodyHtml": "<svg><foreignObject></foreignObject><title></title></svg>foo"
+ }
+ },
+ {
+ "data": "</foreignObject><plaintext><div>foo</div>",
+ "errors": [],
+ "document": {
+ "props": {
+ "tags": {
+ "html": true,
+ "head": true,
+ "body": true,
+ "plaintext": true
+ },
+ "no_escape": true
+ },
+ "tree": [
+ {
+ "tag": "html",
+ "children": [
+ {
+ "tag": "head"
+ },
+ {
+ "tag": "body",
+ "children": [
+ {
+ "tag": "plaintext",
+ "children": [
+ {
+ "text": "<div>foo</div>",
+ "no_escape": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "html": "<html><head></head><body><plaintext><div>foo</div></plaintext></body></html>",
+ "noQuirksBodyHtml": "<plaintext><div>foo</div></plaintext>"
+ }
+ }
+ ]
+}
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Tests for IP validity functions.
+ *
+ * Ported from /t/inc/IP.t by avar.
+ *
+ * @todo Test methods in this call should be split into a method and a
+ * dataprovider.
+ */
+
+/**
+ * @group IP
+ * @covers AvroValidator
+ */
+class AvroValidatorTest extends MediaWikiUnitTestCase {
+
+ public function setUp() {
+ if ( !class_exists( 'AvroSchema' ) ) {
+ $this->markTestSkipped( 'Avro is required to run the AvroValidatorTest' );
+ }
+ parent::setUp();
+ }
+
+ public function getErrorsProvider() {
+ $stringSchema = AvroSchema::parse( json_encode( [ 'type' => 'string' ] ) );
+ $stringArraySchema = AvroSchema::parse( json_encode( [
+ 'type' => 'array',
+ 'items' => 'string',
+ ] ) );
+ $recordSchema = AvroSchema::parse( json_encode( [
+ 'type' => 'record',
+ 'name' => 'ut',
+ 'fields' => [
+ [ 'name' => 'id', 'type' => 'int', 'required' => true ],
+ ],
+ ] ) );
+ $enumSchema = AvroSchema::parse( json_encode( [
+ 'type' => 'record',
+ 'name' => 'ut',
+ 'fields' => [
+ [ 'name' => 'count', 'type' => [ 'int', 'null' ] ],
+ ],
+ ] ) );
+
+ return [
+ [
+ 'No errors with a simple string serialization',
+ $stringSchema, 'foobar', [],
+ ],
+
+ [
+ 'Cannot serialize integer into string',
+ $stringSchema, 5, 'Expected string, but recieved integer',
+ ],
+
+ [
+ 'Cannot serialize array into string',
+ $stringSchema, [], 'Expected string, but recieved array',
+ ],
+
+ [
+ 'allows and ignores extra fields',
+ $recordSchema, [ 'id' => 4, 'foo' => 'bar' ], [],
+ ],
+
+ [
+ 'detects missing fields',
+ $recordSchema, [], [ 'id' => 'Missing expected field' ],
+ ],
+
+ [
+ 'handles first element in enum',
+ $enumSchema, [ 'count' => 4 ], [],
+ ],
+
+ [
+ 'handles second element in enum',
+ $enumSchema, [ 'count' => null ], [],
+ ],
+
+ [
+ 'rejects element not in union',
+ $enumSchema, [ 'count' => 'invalid' ], [ 'count' => [
+ 'Expected any one of these to be true',
+ [
+ 'Expected integer, but recieved string',
+ 'Expected null, but recieved string',
+ ]
+ ] ]
+ ],
+ [
+ 'Empty array is accepted',
+ $stringArraySchema, [], []
+ ],
+ [
+ 'correct array element accepted',
+ $stringArraySchema, [ 'fizzbuzz' ], []
+ ],
+ [
+ 'incorrect array element rejected',
+ $stringArraySchema, [ '12', 34 ], [ 'Expected string, but recieved integer' ]
+ ],
+ ];
+ }
+
+ /**
+ * @dataProvider getErrorsProvider
+ */
+ public function testGetErrors( $message, $schema, $datum, $expected ) {
+ $this->assertEquals(
+ $expected,
+ AvroValidator::getErrors( $schema, $datum ),
+ $message
+ );
+ }
+}
--- /dev/null
+<?php
+
+/**
+ * @covers ClassCollector
+ */
+class ClassCollectorTest extends MediaWikiUnitTestCase {
+
+ public static function provideCases() {
+ return [
+ [
+ "class Foo {}",
+ [ 'Foo' ],
+ ],
+ [
+ "namespace Example;\nclass Foo {}\nclass Bar {}",
+ [ 'Example\Foo', 'Example\Bar' ],
+ ],
+ [
+ "class_alias( 'Foo', 'Bar' );",
+ [ 'Bar' ],
+ ],
+ [
+ "namespace Example;\nclass Foo {}\nclass_alias( 'Example\Foo', 'Foo' );",
+ [ 'Example\Foo', 'Foo' ],
+ ],
+ [
+ "namespace Example;\nclass Foo {}\nclass_alias( 'Example\Foo', 'Bar' );",
+ [ 'Example\Foo', 'Bar' ],
+ ],
+ [
+ // Support a multiline 'class' statement
+ "namespace Example;\nclass Foo extends\n\tFooBase {\n\t"
+ . "public function x() {}\n}\nclass_alias( 'Example\Foo', 'Bar' );",
+ [ 'Example\Foo', 'Bar' ],
+ ],
+ [
+ "class_alias( Foo::class, 'Bar' );",
+ [ 'Bar' ],
+ ],
+ [
+ // Support nested class_alias() calls
+ "if ( false ) {\n\tclass_alias( Foo::class, 'Bar' );\n}",
+ [ 'Bar' ],
+ ],
+ [
+ // Namespaced class is not currently supported. Must use namespace declaration
+ // earlier in the file.
+ "class_alias( Example\Foo::class, 'Bar' );",
+ [],
+ ],
+ [
+ "namespace Example;\nclass Foo {}\nclass_alias( Foo::class, 'Bar' );",
+ [ 'Example\Foo', 'Bar' ],
+ ],
+ [
+ "new class() extends Foo {}",
+ []
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider provideCases
+ */
+ public function testGetClasses( $code, array $classes, $message = null ) {
+ $cc = new ClassCollector();
+ $this->assertEquals( $classes, $cc->getClasses( "<?php\n$code" ), $message );
+ }
+}
--- /dev/null
+<?php
+
+/**
+ * @group Hash
+ *
+ * @covers MWCryptHash
+ */
+class MWCryptHashTest extends MediaWikiUnitTestCase {
+
+ public function testHashLength() {
+ if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
+ $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
+ }
+
+ $this->assertEquals( 64, MWCryptHash::hashLength(), 'Raw hash length' );
+ $this->assertEquals( 128, MWCryptHash::hashLength( false ), 'Hex hash length' );
+ }
+
+ public function testHash() {
+ if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
+ $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
+ }
+
+ $data = 'foobar';
+ // phpcs:ignore Generic.Files.LineLength
+ $hash = '9923afaec3a86f865bb231a588f453f84e8151a2deb4109aebc6de4284be5bebcff4fab82a7e51d920237340a043736e9d13bab196006dcca0fe65314d68eab9';
+
+ $this->assertEquals(
+ hex2bin( $hash ),
+ MWCryptHash::hash( $data ),
+ 'Raw hash'
+ );
+ $this->assertEquals(
+ $hash,
+ MWCryptHash::hash( $data, false ),
+ 'Hex hash'
+ );
+ }
+
+ public function testHmac() {
+ if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
+ $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
+ }
+
+ $data = 'foobar';
+ $key = 'secret';
+ // phpcs:ignore Generic.Files.LineLength
+ $hash = 'ddc94177b2020e55ce2049199fd9cc6327f416ff6dc621cc34cb43d9bec61d73372b4790c0e24957f565ecaf2d42821e6303619093e99cbe14a3b9250bda5f81';
+
+ $this->assertEquals(
+ hex2bin( $hash ),
+ MWCryptHash::hmac( $data, $key ),
+ 'Raw hmac'
+ );
+ $this->assertEquals(
+ $hash,
+ MWCryptHash::hmac( $data, $key, false ),
+ 'Hex hmac'
+ );
+ }
+
+}
--- /dev/null
+<?php
+class MWRestrictionsTest extends MediaWikiUnitTestCase {
+
+ protected static $restrictionsForChecks;
+
+ public static function setUpBeforeClass() {
+ self::$restrictionsForChecks = MWRestrictions::newFromArray( [
+ 'IPAddresses' => [
+ '10.0.0.0/8',
+ '172.16.0.0/12',
+ '2001:db8::/33',
+ ]
+ ] );
+ }
+
+ /**
+ * @covers MWRestrictions::newDefault
+ * @covers MWRestrictions::__construct
+ */
+ public function testNewDefault() {
+ $ret = MWRestrictions::newDefault();
+ $this->assertInstanceOf( MWRestrictions::class, $ret );
+ $this->assertSame(
+ '{"IPAddresses":["0.0.0.0/0","::/0"]}',
+ $ret->toJson()
+ );
+ }
+
+ /**
+ * @covers MWRestrictions::newFromArray
+ * @covers MWRestrictions::__construct
+ * @covers MWRestrictions::loadFromArray
+ * @covers MWRestrictions::toArray
+ * @dataProvider provideArray
+ * @param array $data
+ * @param bool|InvalidArgumentException $expect True if the call succeeds,
+ * otherwise the exception that should be thrown.
+ */
+ public function testArray( $data, $expect ) {
+ if ( $expect === true ) {
+ $ret = MWRestrictions::newFromArray( $data );
+ $this->assertInstanceOf( MWRestrictions::class, $ret );
+ $this->assertSame( $data, $ret->toArray() );
+ } else {
+ try {
+ MWRestrictions::newFromArray( $data );
+ $this->fail( 'Expected exception not thrown' );
+ } catch ( InvalidArgumentException $ex ) {
+ $this->assertEquals( $expect, $ex );
+ }
+ }
+ }
+
+ public static function provideArray() {
+ return [
+ [ [ 'IPAddresses' => [] ], true ],
+ [ [ 'IPAddresses' => [ '127.0.0.1/32' ] ], true ],
+ [
+ [ 'IPAddresses' => [ '256.0.0.1/32' ] ],
+ new InvalidArgumentException( 'Invalid IP address: 256.0.0.1/32' )
+ ],
+ [
+ [ 'IPAddresses' => '127.0.0.1/32' ],
+ new InvalidArgumentException( 'IPAddresses is not an array' )
+ ],
+ [
+ [],
+ new InvalidArgumentException( 'Array is missing required keys: IPAddresses' )
+ ],
+ [
+ [ 'foo' => 'bar', 'bar' => 42 ],
+ new InvalidArgumentException( 'Array contains invalid keys: foo, bar' )
+ ],
+ ];
+ }
+
+ /**
+ * @covers MWRestrictions::newFromJson
+ * @covers MWRestrictions::__construct
+ * @covers MWRestrictions::loadFromArray
+ * @covers MWRestrictions::toJson
+ * @covers MWRestrictions::__toString
+ * @dataProvider provideJson
+ * @param string $json
+ * @param array|InvalidArgumentException $expect
+ */
+ public function testJson( $json, $expect ) {
+ if ( is_array( $expect ) ) {
+ $ret = MWRestrictions::newFromJson( $json );
+ $this->assertInstanceOf( MWRestrictions::class, $ret );
+ $this->assertSame( $expect, $ret->toArray() );
+
+ $this->assertSame( $json, $ret->toJson( false ) );
+ $this->assertSame( $json, (string)$ret );
+
+ $this->assertSame(
+ FormatJson::encode( $expect, true, FormatJson::ALL_OK ),
+ $ret->toJson( true )
+ );
+ } else {
+ try {
+ MWRestrictions::newFromJson( $json );
+ $this->fail( 'Expected exception not thrown' );
+ } catch ( InvalidArgumentException $ex ) {
+ $this->assertTrue( true );
+ }
+ }
+ }
+
+ public static function provideJson() {
+ return [
+ [
+ '{"IPAddresses":[]}',
+ [ 'IPAddresses' => [] ]
+ ],
+ [
+ '{"IPAddresses":["127.0.0.1/32"]}',
+ [ 'IPAddresses' => [ '127.0.0.1/32' ] ]
+ ],
+ [
+ '{"IPAddresses":["256.0.0.1/32"]}',
+ new InvalidArgumentException( 'Invalid IP address: 256.0.0.1/32' )
+ ],
+ [
+ '{"IPAddresses":"127.0.0.1/32"}',
+ new InvalidArgumentException( 'IPAddresses is not an array' )
+ ],
+ [
+ '{}',
+ new InvalidArgumentException( 'Array is missing required keys: IPAddresses' )
+ ],
+ [
+ '{"foo":"bar","bar":42}',
+ new InvalidArgumentException( 'Array contains invalid keys: foo, bar' )
+ ],
+ [
+ '{"IPAddresses":[]',
+ new InvalidArgumentException( 'Invalid restrictions JSON' )
+ ],
+ [
+ '"IPAddresses"',
+ new InvalidArgumentException( 'Invalid restrictions JSON' )
+ ],
+ ];
+ }
+
+ /**
+ * @covers MWRestrictions::checkIP
+ * @dataProvider provideCheckIP
+ * @param string $ip
+ * @param bool $pass
+ */
+ public function testCheckIP( $ip, $pass ) {
+ $this->assertSame( $pass, self::$restrictionsForChecks->checkIP( $ip ) );
+ }
+
+ public static function provideCheckIP() {
+ return [
+ [ '10.0.0.1', true ],
+ [ '172.16.0.0', true ],
+ [ '192.0.2.1', false ],
+ [ '2001:db8:1::', true ],
+ [ '2001:0db8:0000:0000:0000:0000:0000:0000', true ],
+ [ '2001:0DB8:8000::', false ],
+ ];
+ }
+
+ /**
+ * @covers MWRestrictions::check
+ * @dataProvider provideCheck
+ * @param WebRequest $request
+ * @param Status $expect
+ */
+ public function testCheck( $request, $expect ) {
+ $this->assertEquals( $expect, self::$restrictionsForChecks->check( $request ) );
+ }
+
+ public function provideCheck() {
+ $ret = [];
+
+ $mockBuilder = $this->getMockBuilder( FauxRequest::class )
+ ->setMethods( [ 'getIP' ] );
+
+ foreach ( self::provideCheckIP() as $checkIP ) {
+ $ok = [];
+ $request = $mockBuilder->getMock();
+
+ $request->expects( $this->any() )->method( 'getIP' )
+ ->will( $this->returnValue( $checkIP[0] ) );
+ $ok['ip'] = $checkIP[1];
+
+ /* If we ever add more restrictions, add nested for loops here:
+ * foreach ( self::provideCheckFoo() as $checkFoo ) {
+ * $request->expects( $this->any() )->method( 'getFoo' )
+ * ->will( $this->returnValue( $checkFoo[0] );
+ * $ok['foo'] = $checkFoo[1];
+ *
+ * foreach ( self::provideCheckBar() as $checkBar ) {
+ * $request->expects( $this->any() )->method( 'getBar' )
+ * ->will( $this->returnValue( $checkBar[0] );
+ * $ok['bar'] = $checkBar[1];
+ *
+ * // etc.
+ * }
+ * }
+ */
+
+ $status = Status::newGood();
+ $status->setResult( $ok === array_filter( $ok ), $ok );
+ $ret[] = [ $request, $status ];
+ }
+
+ return $ret;
+ }
+}