annotate vendor/symfony/var-dumper/Tests/Caster/StubCasterTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
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@17 29 $args = [new ArgsStub([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@17 44 $args = [new ArgsStub([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@17 62 $args = [new ArgsStub([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@17 77 $args = [new ArgsStub([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@17 92 $var = [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@17 98 $dumper->setDisplayOptions(['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@12 103 <span class=sf-dump-index>0</span> => "<a href="%sStubCasterTest.php:0" rel="noopener noreferrer"><span class=sf-dump-str title="55 characters">Symfony\Component\VarDumper\Tests\Caster\StubCasterTest</span></a>"
Chris@12 104 </samp>]
Chris@12 105 </bar>
Chris@12 106 EODUMP;
Chris@12 107
Chris@12 108 $this->assertStringMatchesFormat($expectedDump, $dump);
Chris@12 109 }
Chris@12 110
Chris@12 111 public function testLinkStubWithNoFileLink()
Chris@12 112 {
Chris@17 113 $var = [new LinkStub('example.com', 0, 'http://example.com')];
Chris@12 114
Chris@12 115 $cloner = new VarCloner();
Chris@12 116 $dumper = new HtmlDumper();
Chris@12 117 $dumper->setDumpHeader('<foo></foo>');
Chris@12 118 $dumper->setDumpBoundaries('<bar>', '</bar>');
Chris@17 119 $dumper->setDisplayOptions(['fileLinkFormat' => '%f:%l']);
Chris@12 120 $dump = $dumper->dump($cloner->cloneVar($var), true);
Chris@12 121
Chris@12 122 $expectedDump = <<<'EODUMP'
Chris@12 123 <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp>
Chris@12 124 <span class=sf-dump-index>0</span> => "<a href="http://example.com" target="_blank" rel="noopener noreferrer"><span class=sf-dump-str title="11 characters">example.com</span></a>"
Chris@0 125 </samp>]
Chris@0 126 </bar>
Chris@0 127 EODUMP;
Chris@0 128
Chris@0 129 $this->assertStringMatchesFormat($expectedDump, $dump);
Chris@0 130 }
Chris@0 131
Chris@0 132 public function testClassStub()
Chris@0 133 {
Chris@17 134 $var = [new ClassStub('hello', [FooInterface::class, 'foo'])];
Chris@0 135
Chris@0 136 $cloner = new VarCloner();
Chris@0 137 $dumper = new HtmlDumper();
Chris@0 138 $dumper->setDumpHeader('<foo></foo>');
Chris@0 139 $dumper->setDumpBoundaries('<bar>', '</bar>');
Chris@17 140 $dump = $dumper->dump($cloner->cloneVar($var), true, ['fileLinkFormat' => '%f:%l']);
Chris@0 141
Chris@0 142 $expectedDump = <<<'EODUMP'
Chris@0 143 <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp>
Chris@12 144 <span class=sf-dump-index>0</span> => "<a href="%sFooInterface.php:10" rel="noopener noreferrer"><span class=sf-dump-str title="5 characters">hello</span></a>"
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 testClassStubWithNotExistingClass()
Chris@0 153 {
Chris@17 154 $var = [new ClassStub(NotExisting::class)];
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);
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> => "<span class=sf-dump-str title="Symfony\Component\VarDumper\Tests\Caster\NotExisting
Chris@0 165 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 166 </samp>]
Chris@0 167 </bar>
Chris@0 168 EODUMP;
Chris@0 169
Chris@0 170 $this->assertStringMatchesFormat($expectedDump, $dump);
Chris@0 171 }
Chris@0 172
Chris@0 173 public function testClassStubWithNotExistingMethod()
Chris@0 174 {
Chris@17 175 $var = [new ClassStub('hello', [FooInterface::class, 'missing'])];
Chris@0 176
Chris@0 177 $cloner = new VarCloner();
Chris@0 178 $dumper = new HtmlDumper();
Chris@0 179 $dumper->setDumpHeader('<foo></foo>');
Chris@0 180 $dumper->setDumpBoundaries('<bar>', '</bar>');
Chris@17 181 $dump = $dumper->dump($cloner->cloneVar($var), true, ['fileLinkFormat' => '%f:%l']);
Chris@0 182
Chris@0 183 $expectedDump = <<<'EODUMP'
Chris@0 184 <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp>
Chris@12 185 <span class=sf-dump-index>0</span> => "<a href="%sFooInterface.php:5" rel="noopener noreferrer"><span class=sf-dump-str title="5 characters">hello</span></a>"
Chris@0 186 </samp>]
Chris@0 187 </bar>
Chris@0 188 EODUMP;
Chris@0 189
Chris@0 190 $this->assertStringMatchesFormat($expectedDump, $dump);
Chris@0 191 }
Chris@0 192 }