X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=vendor%2Fsymfony%2Fvar-dumper%2FTests%2FCaster%2FExceptionCasterTest.php;h=92cf6fb88299c27caa5464b8cb80adffdaf8e73a;hb=refs%2Fheads%2Ft2;hp=4a3ece22a364189572960a8d5cd0a000ee5a65d2;hpb=eba34333e3c89f208d2f72fa91351ad019a71583;p=yaffs-website diff --git a/vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php index 4a3ece22a..92cf6fb88 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php @@ -11,11 +11,150 @@ namespace Symfony\Component\VarDumper\Tests\Caster; +use PHPUnit\Framework\TestCase; +use Symfony\Component\VarDumper\Caster\Caster; +use Symfony\Component\VarDumper\Caster\ExceptionCaster; use Symfony\Component\VarDumper\Caster\FrameStub; -use Symfony\Component\VarDumper\Test\VarDumperTestCase; +use Symfony\Component\VarDumper\Cloner\VarCloner; +use Symfony\Component\VarDumper\Dumper\HtmlDumper; +use Symfony\Component\VarDumper\Test\VarDumperTestTrait; -class ExceptionCasterTest extends VarDumperTestCase +class ExceptionCasterTest extends TestCase { + use VarDumperTestTrait; + + private function getTestException($msg, &$ref = null) + { + return new \Exception(''.$msg); + } + + protected function tearDown() + { + ExceptionCaster::$srcContext = 1; + ExceptionCaster::$traceArgs = true; + } + + public function testDefaultSettings() + { + $ref = array('foo'); + $e = $this->getTestException('foo', $ref); + + $expectedDump = <<<'EODUMP' +Exception { + #message: "foo" + #code: 0 + #file: "%sExceptionCasterTest.php" + #line: 28 + trace: { + %s%eTests%eCaster%eExceptionCasterTest.php:28 { + › { + › return new \Exception(''.$msg); + › } + } + %s%eTests%eCaster%eExceptionCasterTest.php:40 { …} + Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->testDefaultSettings() {} +%A +EODUMP; + + $this->assertDumpMatchesFormat($expectedDump, $e); + $this->assertSame(array('foo'), $ref); + } + + public function testSeek() + { + $e = $this->getTestException(2); + + $expectedDump = <<<'EODUMP' +{ + %s%eTests%eCaster%eExceptionCasterTest.php:28 { + › { + › return new \Exception(''.$msg); + › } + } + %s%eTests%eCaster%eExceptionCasterTest.php:65 { …} + Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->testSeek() {} +%A +EODUMP; + + $this->assertStringMatchesFormat($expectedDump, $this->getDump($e, 'trace')); + } + + public function testNoArgs() + { + $e = $this->getTestException(1); + ExceptionCaster::$traceArgs = false; + + $expectedDump = <<<'EODUMP' +Exception { + #message: "1" + #code: 0 + #file: "%sExceptionCasterTest.php" + #line: 28 + trace: { + %sExceptionCasterTest.php:28 { + › { + › return new \Exception(''.$msg); + › } + } + %s%eTests%eCaster%eExceptionCasterTest.php:84 { …} + Symfony\Component\VarDumper\Tests\Caster\ExceptionCasterTest->testNoArgs() {} +%A +EODUMP; + + $this->assertDumpMatchesFormat($expectedDump, $e); + } + + public function testNoSrcContext() + { + $e = $this->getTestException(1); + ExceptionCaster::$srcContext = -1; + + $expectedDump = <<<'EODUMP' +Exception { + #message: "1" + #code: 0 + #file: "%sExceptionCasterTest.php" + #line: 28 + trace: { + %s%eTests%eCaster%eExceptionCasterTest.php:28 + %s%eTests%eCaster%eExceptionCasterTest.php:%d +%A +EODUMP; + + $this->assertDumpMatchesFormat($expectedDump, $e); + } + + public function testHtmlDump() + { + $e = $this->getTestException(1); + ExceptionCaster::$srcContext = -1; + + $cloner = new VarCloner(); + $cloner->setMaxItems(1); + $dumper = new HtmlDumper(); + $dumper->setDumpHeader(''); + $dumper->setDumpBoundaries('', ''); + $dump = $dumper->dump($cloner->cloneVar($e)->withRefHandles(false), true); + + $expectedDump = <<<'EODUMP' +Exception { + #message: "1" + #code: 0 + #file: "%s%eVarDumper%eTests%eCaster%eExceptionCasterTest.php" + #line: 28 + trace: { + %s%eVarDumper%eTests%eCaster%eExceptionCasterTest.php:28 + …%d + } +} + +EODUMP; + + $this->assertStringMatchesFormat($expectedDump, $dump); + } + /** * @requires function Twig\Template::getSourceContext */ @@ -26,14 +165,14 @@ class ExceptionCasterTest extends VarDumperTestCase $f = array( new FrameStub(array( 'file' => dirname(__DIR__).'/Fixtures/Twig.php', - 'line' => 21, + 'line' => 20, 'class' => '__TwigTemplate_VarDumperFixture_u75a09', )), new FrameStub(array( 'file' => dirname(__DIR__).'/Fixtures/Twig.php', 'line' => 21, 'class' => '__TwigTemplate_VarDumperFixture_u75a09', - 'object' => new \__TwigTemplate_VarDumperFixture_u75a09(null, false), + 'object' => new \__TwigTemplate_VarDumperFixture_u75a09(null, __FILE__), )), ); @@ -42,16 +181,11 @@ array:2 [ 0 => { class: "__TwigTemplate_VarDumperFixture_u75a09" src: { - %sTwig.php:21: """ - // line 2\n - throw new \Exception('Foobar');\n - }\n - """ - bar.twig:2: """ - foo bar\n - twig source\n - \n - """ + %sTwig.php:1 { + › + › foo bar + › twig source + } } } 1 => { @@ -60,16 +194,11 @@ array:2 [ %A } src: { - %sTwig.php:21: """ - // line 2\n - throw new \Exception('Foobar');\n - }\n - """ - foo.twig:2: """ - foo bar\n - twig source\n - \n - """ + %sExceptionCasterTest.php:2 { + › foo bar + › twig source + › + } } } ] @@ -78,4 +207,20 @@ EODUMP; $this->assertDumpMatchesFormat($expectedDump, $f); } + + public function testExcludeVerbosity() + { + $e = $this->getTestException('foo'); + + $expectedDump = <<<'EODUMP' +Exception { + #message: "foo" + #code: 0 + #file: "%sExceptionCasterTest.php" + #line: 28 +} +EODUMP; + + $this->assertDumpMatchesFormat($expectedDump, $e, Caster::EXCLUDE_VERBOSE); + } }