public function testAttributeQuoted() { $html = '<img id=id class=\'class\' src="img.png" />'; $SegmentedString = new SegmentedString($html); $HTMLTokenizer = new HTMLTokenizer($SegmentedString, array('debug' => true)); $tokens = $HTMLTokenizer->tokenizer(); $token = $tokens[0]; $this->assertEquals(array(0 => array('name' => 'id', 'value' => 'id', 'quoted' => false), 1 => array('name' => 'class', 'value' => 'class', 'quoted' => '\''), 2 => array('name' => 'src', 'value' => 'img.png', 'quoted' => '"')), $token->getAttributes()); }
public function testCDATASectionState() { $source = '<![CDATA[>'; $SegmentedString = new SegmentedString($source); $sourceTokenizer = new HTMLTokenizer($SegmentedString, array('debug' => true)); $sourceTokenizer->tokenizer(); $actual = $sourceTokenizer->getTokensAsArray(); $expect = array(0 => array('type' => 'Character', 'data' => $source, 'selfClosing' => false, 'attributes' => array(), 'parseError' => false, 'html' => $source, 'state' => array(0 => 'DataState', 1 => 'TagOpenState', 2 => 'MarkupDeclarationOpenState', 9 => 'CDATASectionState'))); $this->assertEquals($expect, $actual); $source = '<![CDATA[]>'; $SegmentedString = new SegmentedString($source); $sourceTokenizer = new HTMLTokenizer($SegmentedString, array('debug' => true)); $sourceTokenizer->tokenizer(); $actual = $sourceTokenizer->getTokensAsArray(); $expect = array(0 => array('type' => 'Character', 'data' => $source, 'selfClosing' => false, 'attributes' => array(), 'parseError' => false, 'html' => $source, 'state' => array(0 => 'DataState', 1 => 'TagOpenState', 2 => 'MarkupDeclarationOpenState', 9 => 'CDATASectionState'))); $this->assertEquals($expect, $actual); $source = '<![CDATA[ //]]a'; $SegmentedString = new SegmentedString($source); $sourceTokenizer = new HTMLTokenizer($SegmentedString, array('debug' => true)); $sourceTokenizer->tokenizer(); $actual = $sourceTokenizer->getTokensAsArray(); $expect = array(0 => array('type' => 'Character', 'data' => $source, 'selfClosing' => false, 'attributes' => array(), 'parseError' => false, 'html' => $source, 'state' => array(0 => 'DataState', 1 => 'TagOpenState', 2 => 'MarkupDeclarationOpenState', 9 => 'CDATASectionState', 13 => 'CDATASectionRightSquareBracketState', 14 => 'CDATASectionState'))); $this->assertEquals($expect, $actual); }