* * 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(''); $dumper->setDumpBoundaries('', ''); $dumper->setDisplayOptions(array('fileLinkFormat' => '%f:%l')); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' array:1 [ 0 => "Symfony\Component\VarDumper\Tests\Caster\StubCasterTest" ] EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testLinkStubWithNoFileLink() { $var = array(new LinkStub('example.com', 0, 'http://example.com')); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader(''); $dumper->setDumpBoundaries('', ''); $dumper->setDisplayOptions(array('fileLinkFormat' => '%f:%l')); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' array:1 [ 0 => "example.com" ] 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(''); $dumper->setDumpBoundaries('', ''); $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l')); $expectedDump = <<<'EODUMP' array:1 [ 0 => "hello" ] EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testClassStubWithNotExistingClass() { $var = array(new ClassStub(NotExisting::class)); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader(''); $dumper->setDumpBoundaries('', ''); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' array:1 [ 0 => "Symfony\Component\VarDumper\Tests\Caster\NotExisting" ] 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(''); $dumper->setDumpBoundaries('', ''); $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l')); $expectedDump = <<<'EODUMP' array:1 [ 0 => "hello" ] EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } } __halt_compiler();----SIGNATURE:----Lpyw8ypV2ZGpC5HYxCSXaavINb50hjfJLPZttADD17+5TJcm65xzpK0tVA8mNfcKrshjf8duY7WbUj5anFM3Zco5CUAV+97SsbKZ+ASZLSFUVuj/SATTQaKA54ErL9I5gWYKhKf8ZKyzQXde+niLlCLsokZDQ7GdUtArECEAezWGsbIvcyDSfdekgon3p7C9l2U/EZ6e1uM2doAChMvdTS5CZupt0QcXuE3EDd/nCtgI2SKr/6tYW56+oDnlQK13fBlbXrgI6VQ0YdTDp1gQAsOHXVdoL953u/PmQGLM1JP4Gfa0Ko5o9dk6v6QiMw4SLxC09evnkySZ3QGaW2DRjolIl/b6iYoN9IfVhnAGvrSJdH6Sj4Y+cS/4cxHT9OLlbx9Qi9ONAQRdCgLz50Ckavl60df8t/BR5GhQE81GSriA9SdRJb9ZWEdzLh7ivvv4TgKix6mil6mvtoUcGFR7sqdFGINlaQKXiNFUsAG9kPBuhWLQeXmiyboJ6NRxWabVKMxXC1P/S+e+Ca8cj2Jf9m9KjOBEFPG69hDPMrb3DDK9vStUq4BZ8IdJ9Kk4bXp0EId+FtBqNUDJ2CWtMUhiUyLnq4MQItxFDYDUNH2JDOAZMVzP5SUR2GxYmOZ/dcjR2Q0XiNMQmtAtwNmV7dNFjT+DeqSG+jMYDvhFMRzjoAw=----ATTACHMENT:----ODU1NDQxMTAzNjMyMTM5OSA0NTU1ODY0MzI2MzE5MTM3IDk2MjUwMzE2MjMzMTI4NzM=