* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpKernel\Tests\DataCollector; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpKernel\DataCollector\DumpDataCollector; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\VarDumper\Cloner\Data; use Symfony\Component\VarDumper\Dumper\CliDumper; /** * @author Nicolas Grekas */ class DumpDataCollectorTest extends TestCase { public function testDump() { $data = new Data(array(array(123))); $collector = new DumpDataCollector(); $this->assertSame('dump', $collector->getName()); $collector->dump($data); $line = __LINE__ - 1; $this->assertSame(1, $collector->getDumpsCount()); $dump = $collector->getDumps('html'); $this->assertArrayHasKey('data', $dump[0]); $dump[0]['data'] = preg_replace('/^.*?
 "
123\n
\n", 'name' => 'DumpDataCollectorTest.php', 'file' => __FILE__, 'line' => $line, 'fileExcerpt' => false, ), ); $this->assertEquals($xDump, $dump); $this->assertStringMatchesFormat('a:3:{i:0;a:5:{s:4:"data";%c:39:"Symfony\Component\VarDumper\Cloner\Data":%a', $collector->serialize()); $this->assertSame(0, $collector->getDumpsCount()); $this->assertSame('a:2:{i:0;b:0;i:1;s:5:"UTF-8";}', $collector->serialize()); } public function testCollectDefault() { $data = new Data(array(array(123))); $collector = new DumpDataCollector(); $collector->dump($data); $line = __LINE__ - 1; ob_start(); $collector->collect(new Request(), new Response()); $output = preg_replace("/\033\[[^m]*m/", '', ob_get_clean()); $this->assertSame("DumpDataCollectorTest.php on line {$line}:\n123\n", $output); $this->assertSame(1, $collector->getDumpsCount()); $collector->serialize(); } public function testCollectHtml() { $data = new Data(array(array(123))); $collector = new DumpDataCollector(null, 'test://%f:%l'); $collector->dump($data); $line = __LINE__ - 1; $file = __FILE__; $xOutput = <<DumpDataCollectorTest.php on line {$line}: 123
EOTXT; ob_start(); $response = new Response(); $response->headers->set('Content-Type', 'text/html'); $collector->collect(new Request(), $response); $output = ob_get_clean(); $output = preg_replace('#<(script|style).*?#s', '', $output); $output = preg_replace('/sf-dump-\d+/', 'sf-dump', $output); $this->assertSame($xOutput, trim($output)); $this->assertSame(1, $collector->getDumpsCount()); $collector->serialize(); } public function testFlush() { $data = new Data(array(array(456))); $collector = new DumpDataCollector(); $collector->dump($data); $line = __LINE__ - 1; ob_start(); $collector->__destruct(); $output = preg_replace("/\033\[[^m]*m/", '', ob_get_clean()); $this->assertSame("DumpDataCollectorTest.php on line {$line}:\n456\n", $output); } public function testFlushNothingWhenDataDumperIsProvided() { $data = new Data(array(array(456))); $dumper = new CliDumper('php://output'); $collector = new DumpDataCollector(null, null, null, null, $dumper); ob_start(); $collector->dump($data); $line = __LINE__ - 1; $output = preg_replace("/\033\[[^m]*m/", '', ob_get_clean()); if (\PHP_VERSION_ID >= 50400) { $this->assertSame("DumpDataCollectorTest.php on line {$line}:\n456\n", $output); } else { $this->assertSame("\"DumpDataCollectorTest.php on line {$line}:\"\n456\n", $output); } ob_start(); $collector->__destruct(); $this->assertEmpty(ob_get_clean()); } } __halt_compiler();----SIGNATURE:----Wfwo9+dOk1xJcAYc0R2unpdwf6/BC+RDJUZ7bc78Gs8nmj4bRV9DB/siotlJEi4qBEnn75J7GsJN0aKDMzeyhvXJm3+m0At0tDqVJPwdbpJLqiOswqmI1RE1d+rc8AqU/uYq328EFXB/UsfGKuVx9D1Q53/riiiEJ8r83+t9Ui3KuFjZTMouiIxQP01JRDiCOvIdrBX6rt+nWC/NlBHioP6AMFpurc687LLg3pwcuV6St5m/I+n9OVajKHHhV9glYgDJGlFVZsEv9PR4R09GOr9UJbVY1LOCYzJoq5SeZHqLtv245Mw7PDJNn9lg3zo+A0mD6gxWQYzmdB+11GNym0yxS+SHVo34pbCHQuNQYMyOkF10LxPlrG4j5Epmhjb9qQvXekIrv4qFpBt4WEbGfNWL6MIoyNKCHkqP79HWy7B/H+y1BYqZCu47C60GpawhlSBR6Y5cIV5gL734FwNVVPaosJnenZh5UcQ6A2ZMlEHh9PsRyRFRuB+BvkGh5mKsWQ2g8G7KIYmPFf20hzbTUAaub9rwGsxVW77aA3ciPDro6Te+L21aiQey6B+MpR9FQyWfQfzk+zsR7KgizYCwIy4D0rhjzYPwXHrwBkUOWt4ArGw65VIGihv+f0pKT+ATZoQNsINAkapMw0n6kwdQrXuSKnRPdsaO/5Md7Nfy5/Y=----ATTACHMENT:----ODEyMTM0MjU4NzM4MjI1MCA1NTg4MDc0NTU5Mzc1MjE1IDc5NjI2MjYyMDM5MDQwNzM=