D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
t
/
a
/
t
/
tattooscyy
/
www
/
public
/
plugins
/
cropper
/
css
/
canvas
/
Filename :
Caster.tar
back
Copy
ExceptionCasterTest.php 0000604 00000013436 15225575471 0011235 0 ustar 00 <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * 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\Caster\ExceptionCaster; use Symfony\Component\VarDumper\Caster\FrameStub; use Symfony\Component\VarDumper\Cloner\VarCloner; use Symfony\Component\VarDumper\Dumper\HtmlDumper; use Symfony\Component\VarDumper\Test\VarDumperTestTrait; class ExceptionCasterTest extends TestCase { use VarDumperTestTrait; private function getTestException($msg, &$ref = null) { return new \Exception(''.$msg); } protected function tearDown() { ExceptionCaster::$srcContext = 1; ExceptionCaster::$traceArgs = true; } public function testDefaultSettings() { $ref = array('foo'); $e = $this->getTestException('foo', $ref); $expectedDump = <<<'EODUMP' Exception { #message: "foo" #code: 0 #file: "%sExceptionCasterTest.php" #line: 27 trace: { %sExceptionCasterTest.php:27: { : { : return new \Exception(''.$msg); : } } %sExceptionCasterTest.php:%d: { : $ref = array('foo'); : $e = $this->getTestException('foo', $ref); : arguments: { $msg: "foo" &$ref: array:1 [ …1] } } %A EODUMP; $this->assertDumpMatchesFormat($expectedDump, $e); $this->assertSame(array('foo'), $ref); } public function testSeek() { $e = $this->getTestException(2); $expectedDump = <<<'EODUMP' { %sExceptionCasterTest.php:27: { : { : return new \Exception(''.$msg); : } } %sExceptionCasterTest.php:%d: { : { : $e = $this->getTestException(2); : arguments: { $msg: 2 } } %A EODUMP; $this->assertStringMatchesFormat($expectedDump, $this->getDump($e, 'trace')); } public function testNoArgs() { $e = $this->getTestException(1); ExceptionCaster::$traceArgs = false; $expectedDump = <<<'EODUMP' Exception { #message: "1" #code: 0 #file: "%sExceptionCasterTest.php" #line: 27 trace: { %sExceptionCasterTest.php:27: { : { : return new \Exception(''.$msg); : } } %sExceptionCasterTest.php:%d: { : { : $e = $this->getTestException(1); : ExceptionCaster::$traceArgs = false; } %A EODUMP; $this->assertDumpMatchesFormat($expectedDump, $e); } public function testNoSrcContext() { $e = $this->getTestException(1); ExceptionCaster::$srcContext = -1; $expectedDump = <<<'EODUMP' Exception { #message: "1" #code: 0 #file: "%sExceptionCasterTest.php" #line: 27 trace: { %sExceptionCasterTest.php: 27 %sExceptionCasterTest.php: %d %A EODUMP; $this->assertDumpMatchesFormat($expectedDump, $e); } public function testHtmlDump() { $e = $this->getTestException(1); ExceptionCaster::$srcContext = -1; $cloner = new VarCloner(); $cloner->setMaxItems(1); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); $dump = $dumper->dump($cloner->cloneVar($e)->withRefHandles(false), true); $expectedDump = <<<'EODUMP' <foo></foo><bar><span class=sf-dump-note>Exception</span> {<samp> #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str>1</span>" #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span> #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="%sExceptionCasterTest.php %d characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%s%eVarDumper</span><span class=sf-dump-ellipsis>%e</span>Tests%eCaster%eExceptionCasterTest.php</span>" #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>27</span> <span class=sf-dump-meta>trace</span>: {<samp> <span class=sf-dump-meta title="%sExceptionCasterTest.php Stack level %d."><span class="sf-dump-ellipsis sf-dump-ellipsis-path">%s%eVarDumper</span><span class=sf-dump-ellipsis>%e</span>Tests%eCaster%eExceptionCasterTest.php</span>: <span class=sf-dump-num>27</span> …%d </samp>} </samp>} </bar> EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } /** * @requires function Twig\Template::getSourceContext */ public function testFrameWithTwig() { require_once dirname(__DIR__).'/Fixtures/Twig.php'; $f = array( new FrameStub(array( 'file' => dirname(__DIR__).'/Fixtures/Twig.php', 'line' => 20, 'class' => '__TwigTemplate_VarDumperFixture_u75a09', )), new FrameStub(array( 'file' => dirname(__DIR__).'/Fixtures/Twig.php', 'line' => 21, 'class' => '__TwigTemplate_VarDumperFixture_u75a09', 'object' => new \__TwigTemplate_VarDumperFixture_u75a09(null, __FILE__), )), ); $expectedDump = <<<'EODUMP' array:2 [ 0 => { class: "__TwigTemplate_VarDumperFixture_u75a09" src: { %sTwig.php:1: { : : foo bar : twig source } } } 1 => { class: "__TwigTemplate_VarDumperFixture_u75a09" object: __TwigTemplate_VarDumperFixture_u75a09 { %A } src: { %sExceptionCasterTest.php:2: { : foo bar : twig source : } } } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $f); } } RedisCasterTest.php 0000604 00000003033 15225575471 0010335 0 ustar 00 <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * 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 Nicolas Grekas <p@tchwork.com> * @requires extension redis */ class RedisCasterTest extends TestCase { use VarDumperTestTrait; public function testNotConnected() { $redis = new \Redis(); if (defined('HHVM_VERSION_ID')) { $xCast = <<<'EODUMP' Redis { #host: "" %A } EODUMP; } else { $xCast = <<<'EODUMP' Redis { isConnected: false } EODUMP; } $this->assertDumpMatchesFormat($xCast, $redis); } public function testConnected() { $redis = new \Redis(); if (!@$redis->connect('127.0.0.1')) { $e = error_get_last(); self::markTestSkipped($e['message']); } if (defined('HHVM_VERSION_ID')) { $xCast = <<<'EODUMP' Redis { #host: "127.0.0.1" %A } EODUMP; } else { $xCast = <<<'EODUMP' Redis {%A isConnected: true host: "127.0.0.1" port: 6379 auth: null dbNum: 0 timeout: 0.0 persistentId: null options: { READ_TIMEOUT: 0.0 SERIALIZER: NONE PREFIX: null SCAN: NORETRY } } EODUMP; } $this->assertDumpMatchesFormat($xCast, $redis); } } XmlReaderCasterTest.php 0000604 00000010453 15225575471 0011156 0 ustar 00 <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * 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é <clavie.b@gmail.com> */ 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 ), ); } } CasterTest.php 0000604 00000011531 15225575471 0007350 0 ustar 00 <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * 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\Caster\Caster; use Symfony\Component\VarDumper\Test\VarDumperTestTrait; /** * @author Nicolas Grekas <p@tchwork.com> */ class CasterTest extends TestCase { use VarDumperTestTrait; private $referenceArray = array( 'null' => null, 'empty' => false, 'public' => 'pub', "\0~\0virtual" => 'virt', "\0+\0dynamic" => 'dyn', "\0*\0protected" => 'prot', "\0Foo\0private" => 'priv', ); /** * @dataProvider provideFilter */ public function testFilter($filter, $expectedDiff, $listedProperties = null) { if (null === $listedProperties) { $filteredArray = Caster::filter($this->referenceArray, $filter); } else { $filteredArray = Caster::filter($this->referenceArray, $filter, $listedProperties); } $this->assertSame($expectedDiff, array_diff_assoc($this->referenceArray, $filteredArray)); } public function provideFilter() { return array( array( 0, array(), ), array( Caster::EXCLUDE_PUBLIC, array( 'null' => null, 'empty' => false, 'public' => 'pub', ), ), array( Caster::EXCLUDE_NULL, array( 'null' => null, ), ), array( Caster::EXCLUDE_EMPTY, array( 'null' => null, 'empty' => false, ), ), array( Caster::EXCLUDE_VIRTUAL, array( "\0~\0virtual" => 'virt', ), ), array( Caster::EXCLUDE_DYNAMIC, array( "\0+\0dynamic" => 'dyn', ), ), array( Caster::EXCLUDE_PROTECTED, array( "\0*\0protected" => 'prot', ), ), array( Caster::EXCLUDE_PRIVATE, array( "\0Foo\0private" => 'priv', ), ), array( Caster::EXCLUDE_VERBOSE, array( 'public' => 'pub', "\0*\0protected" => 'prot', ), array('public', "\0*\0protected"), ), array( Caster::EXCLUDE_NOT_IMPORTANT, array( 'null' => null, 'empty' => false, "\0~\0virtual" => 'virt', "\0+\0dynamic" => 'dyn', "\0Foo\0private" => 'priv', ), array('public', "\0*\0protected"), ), array( Caster::EXCLUDE_VIRTUAL | Caster::EXCLUDE_DYNAMIC, array( "\0~\0virtual" => 'virt', "\0+\0dynamic" => 'dyn', ), ), array( Caster::EXCLUDE_NOT_IMPORTANT | Caster::EXCLUDE_VERBOSE, $this->referenceArray, array('public', "\0*\0protected"), ), array( Caster::EXCLUDE_NOT_IMPORTANT | Caster::EXCLUDE_EMPTY, array( 'null' => null, 'empty' => false, "\0~\0virtual" => 'virt', "\0+\0dynamic" => 'dyn', "\0*\0protected" => 'prot', "\0Foo\0private" => 'priv', ), array('public', 'empty'), ), array( Caster::EXCLUDE_VERBOSE | Caster::EXCLUDE_EMPTY | Caster::EXCLUDE_STRICT, array( 'empty' => false, ), array('public', 'empty'), ), ); } /** * @requires PHP 7.0 */ public function testAnonymousClass() { $c = eval('return new class extends stdClass { private $foo = "foo"; };'); $this->assertDumpMatchesFormat( <<<'EOTXT' stdClass@anonymous { -foo: "foo" } EOTXT , $c ); $c = eval('return new class { private $foo = "foo"; };'); $this->assertDumpMatchesFormat( <<<'EOTXT' @anonymous { -foo: "foo" } EOTXT , $c ); } } StubCasterTest.php 0000604 00000012105 15225575471 0010204 0 ustar 00 <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * 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\Caster\ArgsStub; use Symfony\Component\VarDumper\Caster\ClassStub; use Symfony\Component\VarDumper\Caster\LinkStub; use Symfony\Component\VarDumper\Cloner\VarCloner; use Symfony\Component\VarDumper\Dumper\HtmlDumper; use Symfony\Component\VarDumper\Test\VarDumperTestTrait; use Symfony\Component\VarDumper\Tests\Fixtures\FooInterface; class StubCasterTest extends TestCase { use VarDumperTestTrait; public function testArgsStubWithDefaults($foo = 234, $bar = 456) { $args = array(new ArgsStub(array(123), __FUNCTION__, __CLASS__)); $expectedDump = <<<'EODUMP' array:1 [ 0 => { $foo: 123 } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $args); } public function testArgsStubWithExtraArgs($foo = 234) { $args = array(new ArgsStub(array(123, 456), __FUNCTION__, __CLASS__)); $expectedDump = <<<'EODUMP' array:1 [ 0 => { $foo: 123 ...: { 456 } } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $args); } public function testArgsStubNoParamWithExtraArgs() { $args = array(new ArgsStub(array(123), __FUNCTION__, __CLASS__)); $expectedDump = <<<'EODUMP' array:1 [ 0 => { 123 } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $args); } public function testArgsStubWithClosure() { $args = array(new ArgsStub(array(123), '{closure}', null)); $expectedDump = <<<'EODUMP' array:1 [ 0 => { 123 } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $args); } public function testLinkStub() { $var = array(new LinkStub(__CLASS__, 0, __FILE__)); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); $dumper->setDisplayOptions(array('fileLinkFormat' => '%f:%l')); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp> <span class=sf-dump-index>0</span> => "<a href="%sStubCasterTest.php:0" target="_blank" rel="noopener noreferrer"><span class=sf-dump-str title="55 characters">Symfony\Component\VarDumper\Tests\Caster\StubCasterTest</span></a>" </samp>] </bar> EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testClassStub() { $var = array(new ClassStub('hello', array(FooInterface::class, 'foo'))); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l')); $expectedDump = <<<'EODUMP' <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp> <span class=sf-dump-index>0</span> => "<a href="%sFooInterface.php:10" target="_blank" rel="noopener noreferrer"><span class=sf-dump-str title="5 characters">hello</span></a>" </samp>] </bar> EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testClassStubWithNotExistingClass() { $var = array(new ClassStub(NotExisting::class)); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp> <span class=sf-dump-index>0</span> => "<span class=sf-dump-str title="Symfony\Component\VarDumper\Tests\Caster\NotExisting 52 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-class">Symfony\Component\VarDumper\Tests\Caster</span><span class=sf-dump-ellipsis>\</span>NotExisting</span>" </samp>] </bar> EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testClassStubWithNotExistingMethod() { $var = array(new ClassStub('hello', array(FooInterface::class, 'missing'))); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l')); $expectedDump = <<<'EODUMP' <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp> <span class=sf-dump-index>0</span> => "<a href="%sFooInterface.php:5" target="_blank" rel="noopener noreferrer"><span class=sf-dump-str title="5 characters">hello</span></a>" </samp>] </bar> EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } } PdoCasterTest.php 0000604 00000003376 15225575471 0010023 0 ustar 00 <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * 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\Caster\PdoCaster; use Symfony\Component\VarDumper\Cloner\Stub; use Symfony\Component\VarDumper\Test\VarDumperTestTrait; /** * @author Nicolas Grekas <p@tchwork.com> */ class PdoCasterTest extends TestCase { use VarDumperTestTrait; /** * @requires extension pdo_sqlite */ public function testCastPdo() { $pdo = new \PDO('sqlite::memory:'); $pdo->setAttribute(\PDO::ATTR_STATEMENT_CLASS, array('PDOStatement', array($pdo))); $cast = PdoCaster::castPdo($pdo, array(), new Stub(), false); $this->assertInstanceOf('Symfony\Component\VarDumper\Caster\EnumStub', $cast["\0~\0attributes"]); $attr = $cast["\0~\0attributes"] = $cast["\0~\0attributes"]->value; $this->assertInstanceOf('Symfony\Component\VarDumper\Caster\ConstStub', $attr['CASE']); $this->assertSame('NATURAL', $attr['CASE']->class); $this->assertSame('BOTH', $attr['DEFAULT_FETCH_MODE']->class); $xDump = <<<'EODUMP' array:2 [ "\x00~\x00inTransaction" => false "\x00~\x00attributes" => array:9 [ "CASE" => NATURAL "ERRMODE" => SILENT "PERSISTENT" => false "DRIVER_NAME" => "sqlite" "ORACLE_NULLS" => NATURAL "CLIENT_VERSION" => "%s" "SERVER_VERSION" => "%s" "STATEMENT_CLASS" => array:%d [ 0 => "PDOStatement"%A ] "DEFAULT_FETCH_MODE" => BOTH ] ] EODUMP; $this->assertDumpMatchesFormat($xDump, $cast); } } SplCasterTest.php 0000604 00000006500 15225575471 0010027 0 ustar 00 <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * 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 Grégoire Pineau <lyrixx@lyrixx.info> */ class SplCasterTest extends TestCase { use VarDumperTestTrait; public function getCastFileInfoTests() { return array( array(__FILE__, <<<'EOTXT' SplFileInfo { %Apath: "%sCaster" filename: "SplCasterTest.php" basename: "SplCasterTest.php" pathname: "%sSplCasterTest.php" extension: "php" realPath: "%sSplCasterTest.php" aTime: %s-%s-%d %d:%d:%d mTime: %s-%s-%d %d:%d:%d cTime: %s-%s-%d %d:%d:%d inode: %d size: %d perms: 0%d owner: %d group: %d type: "file" writable: true readable: true executable: false file: true dir: false link: false %A} EOTXT ), array('https://google.com/about', <<<'EOTXT' SplFileInfo { %Apath: "https://google.com" filename: "about" basename: "about" pathname: "https://google.com/about" extension: "" realPath: false %A} EOTXT ), ); } /** @dataProvider getCastFileInfoTests */ public function testCastFileInfo($file, $dump) { $this->assertDumpMatchesFormat($dump, new \SplFileInfo($file)); } public function testCastFileObject() { $var = new \SplFileObject(__FILE__); $var->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY); $dump = <<<'EOTXT' SplFileObject { %Apath: "%sCaster" filename: "SplCasterTest.php" basename: "SplCasterTest.php" pathname: "%sSplCasterTest.php" extension: "php" realPath: "%sSplCasterTest.php" aTime: %s-%s-%d %d:%d:%d mTime: %s-%s-%d %d:%d:%d cTime: %s-%s-%d %d:%d:%d inode: %d size: %d perms: 0%d owner: %d group: %d type: "file" writable: true readable: true executable: false file: true dir: false link: false %AcsvControl: array:%d [ 0 => "," 1 => """ %A] flags: DROP_NEW_LINE|SKIP_EMPTY maxLineLen: 0 fstat: array:26 [ "dev" => %d "ino" => %d "nlink" => %d "rdev" => 0 "blksize" => %i "blocks" => %i …20 ] eof: false key: 0 } EOTXT; $this->assertDumpMatchesFormat($dump, $var); } /** * @dataProvider provideCastSplDoublyLinkedList */ public function testCastSplDoublyLinkedList($modeValue, $modeDump) { $var = new \SplDoublyLinkedList(); $var->setIteratorMode($modeValue); $dump = <<<EOTXT SplDoublyLinkedList { %Amode: $modeDump dllist: [] } EOTXT; $this->assertDumpMatchesFormat($dump, $var); } public function provideCastSplDoublyLinkedList() { return array( array(\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'), array(\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'), array(\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'), array(\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'), ); } } ReflectionCasterTest.php 0000604 00000011536 15225575471 0011370 0 ustar 00 <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * 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; use Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo; use Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass; /** * @author Nicolas Grekas <p@tchwork.com> */ class ReflectionCasterTest extends TestCase { use VarDumperTestTrait; public function testReflectionCaster() { $var = new \ReflectionClass('ReflectionClass'); $this->assertDumpMatchesFormat( <<<'EOTXT' ReflectionClass { +name: "ReflectionClass" %Aimplements: array:%d [ 0 => "Reflector" %A] constants: array:3 [ "IS_IMPLICIT_ABSTRACT" => 16 "IS_EXPLICIT_ABSTRACT" => 32 "IS_FINAL" => %d ] properties: array:%d [ "name" => ReflectionProperty { %A +name: "name" +class: "ReflectionClass" %A modifiers: "public" } %A] methods: array:%d [ %A "export" => ReflectionMethod { +name: "export" +class: "ReflectionClass" %A parameters: { $%s: ReflectionParameter { %A position: 0 %A } EOTXT , $var ); } public function testClosureCaster() { $a = $b = 123; $var = function ($x) use ($a, &$b) {}; $this->assertDumpMatchesFormat( <<<EOTXT Closure { %Aparameters: { \$x: {} } use: { \$a: 123 \$b: & 123 } file: "%sReflectionCasterTest.php" line: "67 to 67" } EOTXT , $var ); } public function testReflectionParameter() { $var = new \ReflectionParameter(__NAMESPACE__.'\reflectionParameterFixture', 0); $this->assertDumpMatchesFormat( <<<'EOTXT' ReflectionParameter { +name: "arg1" position: 0 typeHint: "Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass" default: null } EOTXT , $var ); } /** * @requires PHP 7.0 */ public function testReflectionParameterScalar() { $f = eval('return function (int $a) {};'); $var = new \ReflectionParameter($f, 0); $this->assertDumpMatchesFormat( <<<'EOTXT' ReflectionParameter { +name: "a" position: 0 typeHint: "int" } EOTXT , $var ); } /** * @requires PHP 7.0 */ public function testReturnType() { $f = eval('return function ():int {};'); $line = __LINE__ - 1; $this->assertDumpMatchesFormat( <<<EOTXT Closure { returnType: "int" class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest" this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …} file: "%sReflectionCasterTest.php($line) : eval()'d code" line: "1 to 1" } EOTXT , $f ); } /** * @requires PHP 7.0 */ public function testGenerator() { if (extension_loaded('xdebug')) { $this->markTestSkipped('xdebug is active'); } $generator = new GeneratorDemo(); $generator = $generator->baz(); $expectedDump = <<<'EODUMP' Generator { this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …} executing: { Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz(): { %sGeneratorDemo.php:14: { : { : yield from bar(); : } } } } closed: false } EODUMP; $this->assertDumpMatchesFormat($expectedDump, $generator); foreach ($generator as $v) { break; } $expectedDump = <<<'EODUMP' array:2 [ 0 => ReflectionGenerator { this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …} trace: { %sGeneratorDemo.php:9: { : { : yield 1; : } } %sGeneratorDemo.php:20: { : { : yield from GeneratorDemo::foo(); : } } %sGeneratorDemo.php:14: { : { : yield from bar(); : } } } closed: false } 1 => Generator { executing: { Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo(): { %sGeneratorDemo.php:10: { : yield 1; : } : } } } closed: false } ] EODUMP; $r = new \ReflectionGenerator($generator); $this->assertDumpMatchesFormat($expectedDump, array($r, $r->getExecutingGenerator())); foreach ($generator as $v) { } $expectedDump = <<<'EODUMP' Generator { closed: true } EODUMP; $this->assertDumpMatchesFormat($expectedDump, $generator); } } function reflectionParameterFixture(NotLoadableClass $arg1 = null, $arg2) { }