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