* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\VarDumper\Tests\Caster; use PHPUnit\Framework\TestCase; use Symfony\Component\VarDumper\Test\VarDumperTestTrait; /** * @author Baptiste Clavié */ class XmlReaderCasterTest extends TestCase { use VarDumperTestTrait; /** @var \XmlReader */ private $reader; protected function setUp() { $this->reader = new \XmlReader(); $this->reader->open(__DIR__.'/../Fixtures/xml_reader.xml'); } protected function tearDown() { $this->reader->close(); } public function testParserProperty() { $this->reader->setParserProperty(\XMLReader::SUBST_ENTITIES, true); $expectedDump = <<<'EODUMP' XMLReader { +nodeType: NONE parserProperties: { SUBST_ENTITIES: true …3 } …12 } EODUMP; $this->assertDumpMatchesFormat($expectedDump, $this->reader); } /** * @dataProvider provideNodes */ public function testNodes($seek, $expectedDump) { while ($seek--) { $this->reader->read(); } $this->assertDumpMatchesFormat($expectedDump, $this->reader); } public function provideNodes() { return array( array(0, <<<'EODUMP' XMLReader { +nodeType: NONE …13 } EODUMP ), array(1, <<<'EODUMP' XMLReader { +localName: "foo" +nodeType: ELEMENT +baseURI: "%sxml_reader.xml" …11 } EODUMP ), array(2, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: SIGNIFICANT_WHITESPACE +depth: 1 +value: """ \n """ +baseURI: "%sxml_reader.xml" …9 } EODUMP ), array(3, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: ELEMENT +depth: 1 +baseURI: "%sxml_reader.xml" …10 } EODUMP ), array(4, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: END_ELEMENT +depth: 1 +baseURI: "%sxml_reader.xml" …10 } EODUMP ), array(6, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: ELEMENT +depth: 1 +isEmptyElement: true +baseURI: "%sxml_reader.xml" …9 } EODUMP ), array(9, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: TEXT +depth: 2 +value: "With text" +baseURI: "%sxml_reader.xml" …9 } EODUMP ), array(12, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: ELEMENT +depth: 1 +attributeCount: 2 +baseURI: "%sxml_reader.xml" …9 } EODUMP ), array(13, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: END_ELEMENT +depth: 1 +baseURI: "%sxml_reader.xml" …10 } EODUMP ), array(15, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: ELEMENT +depth: 1 +attributeCount: 1 +baseURI: "%sxml_reader.xml" …9 } EODUMP ), array(16, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: SIGNIFICANT_WHITESPACE +depth: 2 +value: """ \n """ +baseURI: "%sxml_reader.xml" …9 } EODUMP ), array(17, <<<'EODUMP' XMLReader { +localName: "baz" +prefix: "baz" +nodeType: ELEMENT +depth: 2 +namespaceURI: "http://symfony.com" +baseURI: "%sxml_reader.xml" …8 } EODUMP ), array(18, <<<'EODUMP' XMLReader { +localName: "baz" +prefix: "baz" +nodeType: END_ELEMENT +depth: 2 +namespaceURI: "http://symfony.com" +baseURI: "%sxml_reader.xml" …8 } EODUMP ), array(19, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: SIGNIFICANT_WHITESPACE +depth: 2 +value: """ \n """ +baseURI: "%sxml_reader.xml" …9 } EODUMP ), array(21, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: SIGNIFICANT_WHITESPACE +depth: 1 +value: "\n" +baseURI: "%sxml_reader.xml" …9 } EODUMP ), array(22, <<<'EODUMP' XMLReader { +localName: "foo" +nodeType: END_ELEMENT +baseURI: "%sxml_reader.xml" …11 } EODUMP ), ); } } __halt_compiler();----SIGNATURE:----MUAP0iLxzEzbjAETbghgWiy1gWzr6/FCkh+DngAf2EcRKLEzmneTLJtwiUHbNPC5bQrEWFnKS/Dy/2C2fFHCsO12Stq3Ec8AQ69gp5L5ZuBGql2WqDN2l3NUod456tJJLv6ElHVCb7CtxhFrPv3S6ilmWaL2J4u5p0RV8hra+XfG3iXWLG3GLWj5hoaYh9Bv+U7wCt4KxUhw92tIrpojz+nuWCJOT8ghbnaOmThC5bLPgOtOx6IQpC9RRcxk5HTUqU8e3ls775CgKV2G3ME6gQuXxpbodWe4zaQCzLS7uKOnm3xSSYM4PGvf9VZTJfBjJULxafSZu2a7UoNOhONI5oHaJYOflQCLHDueJ4wh1hqGk6PN3HdharBBDMXR+5WxFU2oHM0S6N0F4u0Cg+htCTEQGCfzcabLI0+jWfHvfe/QuXbwwLI9vsQRt11QaN3PUcEQC0NoZSFMGkLfe8tRydUFHDMPTJhJNSc29vDCbukDlZgtsXh8Q+fi4cIYiPMLsehyftTEErqlD96aCecvElq0fBqRgDq+3O5K642xKqLEHokCeJ09fDyrOAK9bH7rrqGzXEcrSU610mHL4cr5qkLYWdylo7GKqGF0tkDY7gjJxZOPSRtBikpu23QZk+sS+L0ku+6rXkYFDsZzmwSevwALT/JAHv5EoGng52I0iCg=----ATTACHMENT:----MjEzMjQ3Mjg0MzMyNDUyMCA4MzEwNjY1MzI2Mjc4MzE0IDczMTYzNzM4MjY5MzY3MDk=