annotate vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.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\ExceptionCaster;
Chris@0 16 use Symfony\Component\VarDumper\Caster\FrameStub;
Chris@0 17 use Symfony\Component\VarDumper\Cloner\VarCloner;
Chris@0 18 use Symfony\Component\VarDumper\Dumper\HtmlDumper;
Chris@0 19 use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
Chris@0 20
Chris@0 21 class ExceptionCasterTest extends TestCase
Chris@0 22 {
Chris@0 23 use VarDumperTestTrait;
Chris@0 24
Chris@0 25 private function getTestException($msg, &$ref = null)
Chris@0 26 {
Chris@0 27 return new \Exception(''.$msg);
Chris@0 28 }
Chris@0 29
Chris@0 30 protected function tearDown()
Chris@0 31 {
Chris@0 32 ExceptionCaster::$srcContext = 1;
Chris@0 33 ExceptionCaster::$traceArgs = true;
Chris@0 34 }
Chris@0 35
Chris@0 36 public function testDefaultSettings()
Chris@0 37 {
Chris@0 38 $ref = array('foo');
Chris@0 39 $e = $this->getTestException('foo', $ref);
Chris@0 40
Chris@0 41 $expectedDump = <<<'EODUMP'
Chris@0 42 Exception {
Chris@0 43 #message: "foo"
Chris@0 44 #code: 0
Chris@0 45 #file: "%sExceptionCasterTest.php"
Chris@0 46 #line: 27
Chris@0 47 trace: {
Chris@0 48 %sExceptionCasterTest.php:27: {
Chris@0 49 : {
Chris@0 50 : return new \Exception(''.$msg);
Chris@0 51 : }
Chris@0 52 }
Chris@0 53 %sExceptionCasterTest.php:%d: {
Chris@0 54 : $ref = array('foo');
Chris@0 55 : $e = $this->getTestException('foo', $ref);
Chris@0 56 :
Chris@0 57 arguments: {
Chris@0 58 $msg: "foo"
Chris@0 59 &$ref: array:1 [ …1]
Chris@0 60 }
Chris@0 61 }
Chris@0 62 %A
Chris@0 63 EODUMP;
Chris@0 64
Chris@0 65 $this->assertDumpMatchesFormat($expectedDump, $e);
Chris@0 66 $this->assertSame(array('foo'), $ref);
Chris@0 67 }
Chris@0 68
Chris@0 69 public function testSeek()
Chris@0 70 {
Chris@0 71 $e = $this->getTestException(2);
Chris@0 72
Chris@0 73 $expectedDump = <<<'EODUMP'
Chris@0 74 {
Chris@0 75 %sExceptionCasterTest.php:27: {
Chris@0 76 : {
Chris@0 77 : return new \Exception(''.$msg);
Chris@0 78 : }
Chris@0 79 }
Chris@0 80 %sExceptionCasterTest.php:%d: {
Chris@0 81 : {
Chris@0 82 : $e = $this->getTestException(2);
Chris@0 83 :
Chris@0 84 arguments: {
Chris@0 85 $msg: 2
Chris@0 86 }
Chris@0 87 }
Chris@0 88 %A
Chris@0 89 EODUMP;
Chris@0 90
Chris@0 91 $this->assertStringMatchesFormat($expectedDump, $this->getDump($e, 'trace'));
Chris@0 92 }
Chris@0 93
Chris@0 94 public function testNoArgs()
Chris@0 95 {
Chris@0 96 $e = $this->getTestException(1);
Chris@0 97 ExceptionCaster::$traceArgs = false;
Chris@0 98
Chris@0 99 $expectedDump = <<<'EODUMP'
Chris@0 100 Exception {
Chris@0 101 #message: "1"
Chris@0 102 #code: 0
Chris@0 103 #file: "%sExceptionCasterTest.php"
Chris@0 104 #line: 27
Chris@0 105 trace: {
Chris@0 106 %sExceptionCasterTest.php:27: {
Chris@0 107 : {
Chris@0 108 : return new \Exception(''.$msg);
Chris@0 109 : }
Chris@0 110 }
Chris@0 111 %sExceptionCasterTest.php:%d: {
Chris@0 112 : {
Chris@0 113 : $e = $this->getTestException(1);
Chris@0 114 : ExceptionCaster::$traceArgs = false;
Chris@0 115 }
Chris@0 116 %A
Chris@0 117 EODUMP;
Chris@0 118
Chris@0 119 $this->assertDumpMatchesFormat($expectedDump, $e);
Chris@0 120 }
Chris@0 121
Chris@0 122 public function testNoSrcContext()
Chris@0 123 {
Chris@0 124 $e = $this->getTestException(1);
Chris@0 125 ExceptionCaster::$srcContext = -1;
Chris@0 126
Chris@0 127 $expectedDump = <<<'EODUMP'
Chris@0 128 Exception {
Chris@0 129 #message: "1"
Chris@0 130 #code: 0
Chris@0 131 #file: "%sExceptionCasterTest.php"
Chris@0 132 #line: 27
Chris@0 133 trace: {
Chris@0 134 %sExceptionCasterTest.php: 27
Chris@0 135 %sExceptionCasterTest.php: %d
Chris@0 136 %A
Chris@0 137 EODUMP;
Chris@0 138
Chris@0 139 $this->assertDumpMatchesFormat($expectedDump, $e);
Chris@0 140 }
Chris@0 141
Chris@0 142 public function testHtmlDump()
Chris@0 143 {
Chris@0 144 $e = $this->getTestException(1);
Chris@0 145 ExceptionCaster::$srcContext = -1;
Chris@0 146
Chris@0 147 $cloner = new VarCloner();
Chris@0 148 $cloner->setMaxItems(1);
Chris@0 149 $dumper = new HtmlDumper();
Chris@0 150 $dumper->setDumpHeader('<foo></foo>');
Chris@0 151 $dumper->setDumpBoundaries('<bar>', '</bar>');
Chris@0 152 $dump = $dumper->dump($cloner->cloneVar($e)->withRefHandles(false), true);
Chris@0 153
Chris@0 154 $expectedDump = <<<'EODUMP'
Chris@0 155 <foo></foo><bar><span class=sf-dump-note>Exception</span> {<samp>
Chris@0 156 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str>1</span>"
Chris@0 157 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
Chris@0 158 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="%sExceptionCasterTest.php
Chris@0 159 %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>"
Chris@0 160 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>27</span>
Chris@0 161 <span class=sf-dump-meta>trace</span>: {<samp>
Chris@0 162 <span class=sf-dump-meta title="%sExceptionCasterTest.php
Chris@0 163 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>
Chris@0 164 &hellip;%d
Chris@0 165 </samp>}
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 /**
Chris@0 174 * @requires function Twig\Template::getSourceContext
Chris@0 175 */
Chris@0 176 public function testFrameWithTwig()
Chris@0 177 {
Chris@0 178 require_once dirname(__DIR__).'/Fixtures/Twig.php';
Chris@0 179
Chris@0 180 $f = array(
Chris@0 181 new FrameStub(array(
Chris@0 182 'file' => dirname(__DIR__).'/Fixtures/Twig.php',
Chris@0 183 'line' => 20,
Chris@0 184 'class' => '__TwigTemplate_VarDumperFixture_u75a09',
Chris@0 185 )),
Chris@0 186 new FrameStub(array(
Chris@0 187 'file' => dirname(__DIR__).'/Fixtures/Twig.php',
Chris@0 188 'line' => 21,
Chris@0 189 'class' => '__TwigTemplate_VarDumperFixture_u75a09',
Chris@0 190 'object' => new \__TwigTemplate_VarDumperFixture_u75a09(null, __FILE__),
Chris@0 191 )),
Chris@0 192 );
Chris@0 193
Chris@0 194 $expectedDump = <<<'EODUMP'
Chris@0 195 array:2 [
Chris@0 196 0 => {
Chris@0 197 class: "__TwigTemplate_VarDumperFixture_u75a09"
Chris@0 198 src: {
Chris@0 199 %sTwig.php:1: {
Chris@0 200 :
Chris@0 201 : foo bar
Chris@0 202 : twig source
Chris@0 203 }
Chris@0 204 }
Chris@0 205 }
Chris@0 206 1 => {
Chris@0 207 class: "__TwigTemplate_VarDumperFixture_u75a09"
Chris@0 208 object: __TwigTemplate_VarDumperFixture_u75a09 {
Chris@0 209 %A
Chris@0 210 }
Chris@0 211 src: {
Chris@0 212 %sExceptionCasterTest.php:2: {
Chris@0 213 : foo bar
Chris@0 214 : twig source
Chris@0 215 :
Chris@0 216 }
Chris@0 217 }
Chris@0 218 }
Chris@0 219 ]
Chris@0 220
Chris@0 221 EODUMP;
Chris@0 222
Chris@0 223 $this->assertDumpMatchesFormat($expectedDump, $f);
Chris@0 224 }
Chris@0 225 }