annotate vendor/symfony/var-dumper/Tests/Caster/StubCasterTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 7a779792577d
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /*
Chris@0 4 * This file is part of the Symfony package.
Chris@0 5 *
Chris@0 6 * (c) Fabien Potencier <fabien@symfony.com>
Chris@0 7 *
Chris@0 8 * For the full copyright and license information, please view the LICENSE
Chris@0 9 * file that was distributed with this source code.
Chris@0 10 */
Chris@0 11
Chris@0 12 namespace Symfony\Component\VarDumper\Tests\Caster;
Chris@0 13
Chris@0 14 use PHPUnit\Framework\TestCase;
Chris@0 15 use Symfony\Component\VarDumper\Caster\ArgsStub;
Chris@0 16 use Symfony\Component\VarDumper\Caster\ClassStub;
Chris@0 17 use Symfony\Component\VarDumper\Caster\LinkStub;
Chris@0 18 use Symfony\Component\VarDumper\Cloner\VarCloner;
Chris@0 19 use Symfony\Component\VarDumper\Dumper\HtmlDumper;
Chris@0 20 use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
Chris@0 21 use Symfony\Component\VarDumper\Tests\Fixtures\FooInterface;
Chris@0 22
Chris@0 23 class StubCasterTest extends TestCase
Chris@0 24 {
Chris@0 25 use VarDumperTestTrait;
Chris@0 26
Chris@0 27 public function testArgsStubWithDefaults($foo = 234, $bar = 456)
Chris@0 28 {
Chris@0 29 $args = array(new ArgsStub(array(123), __FUNCTION__, __CLASS__));
Chris@0 30
Chris@0 31 $expectedDump = <<<'EODUMP'
Chris@0 32 array:1 [
Chris@0 33 0 => {
Chris@0 34 $foo: 123
Chris@0 35 }
Chris@0 36 ]
Chris@0 37 EODUMP;
Chris@0 38
Chris@0 39 $this->assertDumpMatchesFormat($expectedDump, $args);
Chris@0 40 }
Chris@0 41
Chris@0 42 public function testArgsStubWithExtraArgs($foo = 234)
Chris@0 43 {
Chris@0 44 $args = array(new ArgsStub(array(123, 456), __FUNCTION__, __CLASS__));
Chris@0 45
Chris@0 46 $expectedDump = <<<'EODUMP'
Chris@0 47 array:1 [
Chris@0 48 0 => {
Chris@0 49 $foo: 123
Chris@0 50 ...: {
Chris@0 51 456
Chris@0 52 }
Chris@0 53 }
Chris@0 54 ]
Chris@0 55 EODUMP;
Chris@0 56
Chris@0 57 $this->assertDumpMatchesFormat($expectedDump, $args);
Chris@0 58 }
Chris@0 59
Chris@0 60 public function testArgsStubNoParamWithExtraArgs()
Chris@0 61 {
Chris@0 62 $args = array(new ArgsStub(array(123), __FUNCTION__, __CLASS__));
Chris@0 63
Chris@0 64 $expectedDump = <<<'EODUMP'
Chris@0 65 array:1 [
Chris@0 66 0 => {
Chris@0 67 123
Chris@0 68 }
Chris@0 69 ]
Chris@0 70 EODUMP;
Chris@0 71
Chris@0 72 $this->assertDumpMatchesFormat($expectedDump, $args);
Chris@0 73 }
Chris@0 74
Chris@0 75 public function testArgsStubWithClosure()
Chris@0 76 {
Chris@0 77 $args = array(new ArgsStub(array(123), '{closure}', null));
Chris@0 78
Chris@0 79 $expectedDump = <<<'EODUMP'
Chris@0 80 array:1 [
Chris@0 81 0 => {
Chris@0 82 123
Chris@0 83 }
Chris@0 84 ]
Chris@0 85 EODUMP;
Chris@0 86
Chris@0 87 $this->assertDumpMatchesFormat($expectedDump, $args);
Chris@0 88 }
Chris@0 89
Chris@0 90 public function testLinkStub()
Chris@0 91 {
Chris@0 92 $var = array(new LinkStub(__CLASS__, 0, __FILE__));
Chris@0 93
Chris@0 94 $cloner = new VarCloner();
Chris@0 95 $dumper = new HtmlDumper();
Chris@0 96 $dumper->setDumpHeader('<foo></foo>');
Chris@0 97 $dumper->setDumpBoundaries('<bar>', '</bar>');
Chris@0 98 $dumper->setDisplayOptions(array('fileLinkFormat' => '%f:%l'));
Chris@0 99 $dump = $dumper->dump($cloner->cloneVar($var), true);
Chris@0 100
Chris@0 101 $expectedDump = <<<'EODUMP'
Chris@0 102 <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp>
Chris@0 103 <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>"
Chris@0 104 </samp>]
Chris@0 105 </bar>
Chris@0 106 EODUMP;
Chris@0 107
Chris@0 108 $this->assertStringMatchesFormat($expectedDump, $dump);
Chris@0 109 }
Chris@0 110
Chris@0 111 public function testClassStub()
Chris@0 112 {
Chris@0 113 $var = array(new ClassStub('hello', array(FooInterface::class, 'foo')));
Chris@0 114
Chris@0 115 $cloner = new VarCloner();
Chris@0 116 $dumper = new HtmlDumper();
Chris@0 117 $dumper->setDumpHeader('<foo></foo>');
Chris@0 118 $dumper->setDumpBoundaries('<bar>', '</bar>');
Chris@0 119 $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l'));
Chris@0 120
Chris@0 121 $expectedDump = <<<'EODUMP'
Chris@0 122 <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp>
Chris@0 123 <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>"
Chris@0 124 </samp>]
Chris@0 125 </bar>
Chris@0 126 EODUMP;
Chris@0 127
Chris@0 128 $this->assertStringMatchesFormat($expectedDump, $dump);
Chris@0 129 }
Chris@0 130
Chris@0 131 public function testClassStubWithNotExistingClass()
Chris@0 132 {
Chris@0 133 $var = array(new ClassStub(NotExisting::class));
Chris@0 134
Chris@0 135 $cloner = new VarCloner();
Chris@0 136 $dumper = new HtmlDumper();
Chris@0 137 $dumper->setDumpHeader('<foo></foo>');
Chris@0 138 $dumper->setDumpBoundaries('<bar>', '</bar>');
Chris@0 139 $dump = $dumper->dump($cloner->cloneVar($var), true);
Chris@0 140
Chris@0 141 $expectedDump = <<<'EODUMP'
Chris@0 142 <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp>
Chris@0 143 <span class=sf-dump-index>0</span> => "<span class=sf-dump-str title="Symfony\Component\VarDumper\Tests\Caster\NotExisting
Chris@0 144 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>"
Chris@0 145 </samp>]
Chris@0 146 </bar>
Chris@0 147 EODUMP;
Chris@0 148
Chris@0 149 $this->assertStringMatchesFormat($expectedDump, $dump);
Chris@0 150 }
Chris@0 151
Chris@0 152 public function testClassStubWithNotExistingMethod()
Chris@0 153 {
Chris@0 154 $var = array(new ClassStub('hello', array(FooInterface::class, 'missing')));
Chris@0 155
Chris@0 156 $cloner = new VarCloner();
Chris@0 157 $dumper = new HtmlDumper();
Chris@0 158 $dumper->setDumpHeader('<foo></foo>');
Chris@0 159 $dumper->setDumpBoundaries('<bar>', '</bar>');
Chris@0 160 $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l'));
Chris@0 161
Chris@0 162 $expectedDump = <<<'EODUMP'
Chris@0 163 <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp>
Chris@0 164 <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>"
Chris@0 165 </samp>]
Chris@0 166 </bar>
Chris@0 167 EODUMP;
Chris@0 168
Chris@0 169 $this->assertStringMatchesFormat($expectedDump, $dump);
Chris@0 170 }
Chris@0 171 }