summaryrefslogtreecommitdiff
path: root/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php')
-rw-r--r--vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php115
1 files changed, 115 insertions, 0 deletions
diff --git a/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php b/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
new file mode 100644
index 0000000000..e642e3c337
--- /dev/null
+++ b/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
@@ -0,0 +1,115 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * 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;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+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->assertTrue(isset($dump[0]['data']));
+ $dump[0]['data'] = preg_replace('/^.*?<pre/', '<pre', $dump[0]['data']);
+ $dump[0]['data'] = preg_replace('/sf-dump-\d+/', 'sf-dump', $dump[0]['data']);
+
+ $xDump = array(
+ array(
+ 'data' => "<pre class=sf-dump id=sf-dump data-indent-pad=\" \"><span class=sf-dump-num>123</span>\n</pre><script>Sfdump(\"sf-dump\")</script>\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 = 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 = <<<EOTXT
+<pre class=sf-dump id=sf-dump data-indent-pad=" "><a href="test://{$file}:{$line}" title="{$file}"><span class=sf-dump-meta>DumpDataCollectorTest.php</span></a> on line <span class=sf-dump-meta>{$line}</span>:
+<span class=sf-dump-num>123</span>
+</pre>
+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).*?</\1>#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();
+ $this->assertSame("DumpDataCollectorTest.php on line {$line}:\n456\n", ob_get_clean());
+ }
+}