提交代码
This commit is contained in:
4
vendor/symfony/http-kernel/Tests/DataCollector/Compiler.log
vendored
Normal file
4
vendor/symfony/http-kernel/Tests/DataCollector/Compiler.log
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Container\ContainerInterface"; reason: private alias.
|
||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\DependencyInjection\ContainerInterface"; reason: private alias.
|
||||
Some custom logging message
|
||||
With ending :
|
||||
76
vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php
vendored
Normal file
76
vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
<?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\Config\Loader\LoaderInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector;
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
|
||||
class ConfigDataCollectorTest extends TestCase
|
||||
{
|
||||
public function testCollect()
|
||||
{
|
||||
$kernel = new KernelForTest('test', true);
|
||||
$c = new ConfigDataCollector();
|
||||
$c->setKernel($kernel);
|
||||
$c->collect(new Request(), new Response());
|
||||
|
||||
$this->assertSame('test', $c->getEnv());
|
||||
$this->assertTrue($c->isDebug());
|
||||
$this->assertSame('config', $c->getName());
|
||||
$this->assertRegExp('~^'.preg_quote($c->getPhpVersion(), '~').'~', PHP_VERSION);
|
||||
$this->assertRegExp('~'.preg_quote((string) $c->getPhpVersionExtra(), '~').'$~', PHP_VERSION);
|
||||
$this->assertSame(PHP_INT_SIZE * 8, $c->getPhpArchitecture());
|
||||
$this->assertSame(class_exists('Locale', false) && \Locale::getDefault() ? \Locale::getDefault() : 'n/a', $c->getPhpIntlLocale());
|
||||
$this->assertSame(date_default_timezone_get(), $c->getPhpTimezone());
|
||||
$this->assertSame(Kernel::VERSION, $c->getSymfonyVersion());
|
||||
$this->assertNull($c->getToken());
|
||||
$this->assertSame(\extension_loaded('xdebug'), $c->hasXDebug());
|
||||
$this->assertSame(\extension_loaded('Zend OPcache') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN), $c->hasZendOpcache());
|
||||
$this->assertSame(\extension_loaded('apcu') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN), $c->hasApcu());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
* @expectedDeprecation The "$name" argument in method "Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector::__construct()" is deprecated since Symfony 4.2.
|
||||
* @expectedDeprecation The "$version" argument in method "Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector::__construct()" is deprecated since Symfony 4.2.
|
||||
* @expectedDeprecation The method "Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector::getApplicationName()" is deprecated since Symfony 4.2.
|
||||
* @expectedDeprecation The method "Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector::getApplicationVersion()" is deprecated since Symfony 4.2.
|
||||
*/
|
||||
public function testLegacy()
|
||||
{
|
||||
$c = new ConfigDataCollector('name', null);
|
||||
$c->collect(new Request(), new Response());
|
||||
|
||||
$this->assertSame('name', $c->getApplicationName());
|
||||
$this->assertNull($c->getApplicationVersion());
|
||||
}
|
||||
}
|
||||
|
||||
class KernelForTest extends Kernel
|
||||
{
|
||||
public function registerBundles()
|
||||
{
|
||||
}
|
||||
|
||||
public function getBundles()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public function registerContainerConfiguration(LoaderInterface $loader)
|
||||
{
|
||||
}
|
||||
}
|
||||
38
vendor/symfony/http-kernel/Tests/DataCollector/DataCollectorTest.php
vendored
Normal file
38
vendor/symfony/http-kernel/Tests/DataCollector/DataCollectorTest.php
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<?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\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Tests\Fixtures\DataCollector\CloneVarDataCollector;
|
||||
use Symfony\Component\VarDumper\Cloner\VarCloner;
|
||||
|
||||
class DataCollectorTest extends TestCase
|
||||
{
|
||||
public function testCloneVarStringWithScheme()
|
||||
{
|
||||
$c = new CloneVarDataCollector('scheme://foo');
|
||||
$c->collect(new Request(), new Response());
|
||||
$cloner = new VarCloner();
|
||||
|
||||
$this->assertEquals($cloner->cloneVar('scheme://foo'), $c->getData());
|
||||
}
|
||||
|
||||
public function testCloneVarExistingFilePath()
|
||||
{
|
||||
$c = new CloneVarDataCollector([$filePath = tempnam(sys_get_temp_dir(), 'clone_var_data_collector_')]);
|
||||
$c->collect(new Request(), new Response());
|
||||
|
||||
$this->assertSame($filePath, $c->getData()[0]);
|
||||
}
|
||||
}
|
||||
154
vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
vendored
Normal file
154
vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
<?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\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\DataCollector\DumpDataCollector;
|
||||
use Symfony\Component\VarDumper\Cloner\Data;
|
||||
use Symfony\Component\VarDumper\Dumper\CliDumper;
|
||||
use Symfony\Component\VarDumper\Server\Connection;
|
||||
|
||||
/**
|
||||
* @author Nicolas Grekas <p@tchwork.com>
|
||||
*/
|
||||
class DumpDataCollectorTest extends TestCase
|
||||
{
|
||||
public function testDump()
|
||||
{
|
||||
$data = new Data([[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('/^.*?<pre/', '<pre', $dump[0]['data']);
|
||||
$dump[0]['data'] = preg_replace('/sf-dump-\d+/', 'sf-dump', $dump[0]['data']);
|
||||
|
||||
$xDump = [
|
||||
[
|
||||
'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;a:%d:{i:0;a:5:{s:4:"data";%c:39:"Symfony\Component\VarDumper\Cloner\Data":%a', serialize($collector));
|
||||
$this->assertSame(0, $collector->getDumpsCount());
|
||||
$this->assertSame("O:60:\"Symfony\Component\HttpKernel\DataCollector\DumpDataCollector\":1:{s:7:\"\0*\0data\";a:2:{i:0;b:0;i:1;s:5:\"UTF-8\";}}", serialize($collector));
|
||||
}
|
||||
|
||||
public function testDumpWithServerConnection()
|
||||
{
|
||||
$data = new Data([[123]]);
|
||||
|
||||
// Server is up, server dumper is used
|
||||
$serverDumper = $this->getMockBuilder(Connection::class)->disableOriginalConstructor()->getMock();
|
||||
$serverDumper->expects($this->once())->method('write')->willReturn(true);
|
||||
|
||||
$collector = new DumpDataCollector(null, null, null, null, $serverDumper);
|
||||
$collector->dump($data);
|
||||
|
||||
// Collect doesn't re-trigger dump
|
||||
ob_start();
|
||||
$collector->collect(new Request(), new Response());
|
||||
$this->assertEmpty(ob_get_clean());
|
||||
$this->assertStringMatchesFormat('%a;a:%d:{i:0;a:5:{s:4:"data";%c:39:"Symfony\Component\VarDumper\Cloner\Data":%a', serialize($collector));
|
||||
}
|
||||
|
||||
public function testCollectDefault()
|
||||
{
|
||||
$data = new Data([[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());
|
||||
serialize($collector);
|
||||
}
|
||||
|
||||
public function testCollectHtml()
|
||||
{
|
||||
$data = new Data([[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());
|
||||
serialize($collector);
|
||||
}
|
||||
|
||||
public function testFlush()
|
||||
{
|
||||
$data = new Data([[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([[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());
|
||||
|
||||
$this->assertSame("DumpDataCollectorTest.php on line {$line}:\n456\n", $output);
|
||||
|
||||
ob_start();
|
||||
$collector->__destruct();
|
||||
$this->assertEmpty(ob_get_clean());
|
||||
}
|
||||
}
|
||||
59
vendor/symfony/http-kernel/Tests/DataCollector/ExceptionDataCollectorTest.php
vendored
Normal file
59
vendor/symfony/http-kernel/Tests/DataCollector/ExceptionDataCollectorTest.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?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\Debug\Exception\FlattenException;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\DataCollector\ExceptionDataCollector;
|
||||
|
||||
class ExceptionDataCollectorTest extends TestCase
|
||||
{
|
||||
public function testCollect()
|
||||
{
|
||||
$e = new \Exception('foo', 500);
|
||||
$c = new ExceptionDataCollector();
|
||||
$flattened = FlattenException::create($e);
|
||||
$trace = $flattened->getTrace();
|
||||
|
||||
$this->assertFalse($c->hasException());
|
||||
|
||||
$c->collect(new Request(), new Response(), $e);
|
||||
|
||||
$this->assertTrue($c->hasException());
|
||||
$this->assertEquals($flattened, $c->getException());
|
||||
$this->assertSame('foo', $c->getMessage());
|
||||
$this->assertSame(500, $c->getCode());
|
||||
$this->assertSame('exception', $c->getName());
|
||||
$this->assertSame($trace, $c->getTrace());
|
||||
}
|
||||
|
||||
public function testCollectWithoutException()
|
||||
{
|
||||
$c = new ExceptionDataCollector();
|
||||
$c->collect(new Request(), new Response());
|
||||
|
||||
$this->assertFalse($c->hasException());
|
||||
}
|
||||
|
||||
public function testReset()
|
||||
{
|
||||
$c = new ExceptionDataCollector();
|
||||
|
||||
$c->collect(new Request(), new Response(), new \Exception());
|
||||
$c->reset();
|
||||
$c->collect(new Request(), new Response());
|
||||
|
||||
$this->assertFalse($c->hasException());
|
||||
}
|
||||
}
|
||||
188
vendor/symfony/http-kernel/Tests/DataCollector/LoggerDataCollectorTest.php
vendored
Normal file
188
vendor/symfony/http-kernel/Tests/DataCollector/LoggerDataCollectorTest.php
vendored
Normal file
@@ -0,0 +1,188 @@
|
||||
<?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\Debug\Exception\SilencedErrorContext;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector;
|
||||
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
|
||||
|
||||
class LoggerDataCollectorTest extends TestCase
|
||||
{
|
||||
public function testCollectWithUnexpectedFormat()
|
||||
{
|
||||
$logger = $this
|
||||
->getMockBuilder('Symfony\Component\HttpKernel\Log\DebugLoggerInterface')
|
||||
->setMethods(['countErrors', 'getLogs', 'clear'])
|
||||
->getMock();
|
||||
$logger->expects($this->once())->method('countErrors')->willReturn(123);
|
||||
$logger->expects($this->exactly(2))->method('getLogs')->willReturn([]);
|
||||
|
||||
$c = new LoggerDataCollector($logger, __DIR__.'/');
|
||||
$c->lateCollect();
|
||||
$compilerLogs = $c->getCompilerLogs()->getValue('message');
|
||||
|
||||
$this->assertSame([
|
||||
['message' => 'Removed service "Psr\Container\ContainerInterface"; reason: private alias.'],
|
||||
['message' => 'Removed service "Symfony\Component\DependencyInjection\ContainerInterface"; reason: private alias.'],
|
||||
], $compilerLogs['Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass']);
|
||||
|
||||
$this->assertSame([
|
||||
['message' => 'Some custom logging message'],
|
||||
['message' => 'With ending :'],
|
||||
], $compilerLogs['Unknown Compiler Pass']);
|
||||
}
|
||||
|
||||
public function testWithMasterRequest()
|
||||
{
|
||||
$masterRequest = new Request();
|
||||
$stack = new RequestStack();
|
||||
$stack->push($masterRequest);
|
||||
|
||||
$logger = $this
|
||||
->getMockBuilder(DebugLoggerInterface::class)
|
||||
->setMethods(['countErrors', 'getLogs', 'clear'])
|
||||
->getMock();
|
||||
$logger->expects($this->once())->method('countErrors')->with(null);
|
||||
$logger->expects($this->exactly(2))->method('getLogs')->with(null)->willReturn([]);
|
||||
|
||||
$c = new LoggerDataCollector($logger, __DIR__.'/', $stack);
|
||||
|
||||
$c->collect($masterRequest, new Response());
|
||||
$c->lateCollect();
|
||||
}
|
||||
|
||||
public function testWithSubRequest()
|
||||
{
|
||||
$masterRequest = new Request();
|
||||
$subRequest = new Request();
|
||||
$stack = new RequestStack();
|
||||
$stack->push($masterRequest);
|
||||
$stack->push($subRequest);
|
||||
|
||||
$logger = $this
|
||||
->getMockBuilder(DebugLoggerInterface::class)
|
||||
->setMethods(['countErrors', 'getLogs', 'clear'])
|
||||
->getMock();
|
||||
$logger->expects($this->once())->method('countErrors')->with($subRequest);
|
||||
$logger->expects($this->exactly(2))->method('getLogs')->with($subRequest)->willReturn([]);
|
||||
|
||||
$c = new LoggerDataCollector($logger, __DIR__.'/', $stack);
|
||||
|
||||
$c->collect($subRequest, new Response());
|
||||
$c->lateCollect();
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getCollectTestData
|
||||
*/
|
||||
public function testCollect($nb, $logs, $expectedLogs, $expectedDeprecationCount, $expectedScreamCount, $expectedPriorities = null)
|
||||
{
|
||||
$logger = $this
|
||||
->getMockBuilder('Symfony\Component\HttpKernel\Log\DebugLoggerInterface')
|
||||
->setMethods(['countErrors', 'getLogs', 'clear'])
|
||||
->getMock();
|
||||
$logger->expects($this->once())->method('countErrors')->willReturn($nb);
|
||||
$logger->expects($this->exactly(2))->method('getLogs')->willReturn($logs);
|
||||
|
||||
$c = new LoggerDataCollector($logger);
|
||||
$c->lateCollect();
|
||||
|
||||
$this->assertEquals('logger', $c->getName());
|
||||
$this->assertEquals($nb, $c->countErrors());
|
||||
|
||||
$logs = array_map(function ($v) {
|
||||
if (isset($v['context']['exception'])) {
|
||||
$e = &$v['context']['exception'];
|
||||
$e = isset($e["\0*\0message"]) ? [$e["\0*\0message"], $e["\0*\0severity"]] : [$e["\0Symfony\Component\Debug\Exception\SilencedErrorContext\0severity"]];
|
||||
}
|
||||
|
||||
return $v;
|
||||
}, $c->getLogs()->getValue(true));
|
||||
$this->assertEquals($expectedLogs, $logs);
|
||||
$this->assertEquals($expectedDeprecationCount, $c->countDeprecations());
|
||||
$this->assertEquals($expectedScreamCount, $c->countScreams());
|
||||
|
||||
if (isset($expectedPriorities)) {
|
||||
$this->assertSame($expectedPriorities, $c->getPriorities()->getValue(true));
|
||||
}
|
||||
}
|
||||
|
||||
public function testReset()
|
||||
{
|
||||
$logger = $this
|
||||
->getMockBuilder('Symfony\Component\HttpKernel\Log\DebugLoggerInterface')
|
||||
->setMethods(['countErrors', 'getLogs', 'clear'])
|
||||
->getMock();
|
||||
$logger->expects($this->once())->method('clear');
|
||||
|
||||
$c = new LoggerDataCollector($logger);
|
||||
$c->reset();
|
||||
}
|
||||
|
||||
public function getCollectTestData()
|
||||
{
|
||||
yield 'simple log' => [
|
||||
1,
|
||||
[['message' => 'foo', 'context' => [], 'priority' => 100, 'priorityName' => 'DEBUG']],
|
||||
[['message' => 'foo', 'context' => [], 'priority' => 100, 'priorityName' => 'DEBUG']],
|
||||
0,
|
||||
0,
|
||||
];
|
||||
|
||||
yield 'log with a context' => [
|
||||
1,
|
||||
[['message' => 'foo', 'context' => ['foo' => 'bar'], 'priority' => 100, 'priorityName' => 'DEBUG']],
|
||||
[['message' => 'foo', 'context' => ['foo' => 'bar'], 'priority' => 100, 'priorityName' => 'DEBUG']],
|
||||
0,
|
||||
0,
|
||||
];
|
||||
|
||||
if (!class_exists(SilencedErrorContext::class)) {
|
||||
return;
|
||||
}
|
||||
|
||||
yield 'logs with some deprecations' => [
|
||||
1,
|
||||
[
|
||||
['message' => 'foo3', 'context' => ['exception' => new \ErrorException('warning', 0, E_USER_WARNING)], 'priority' => 100, 'priorityName' => 'DEBUG'],
|
||||
['message' => 'foo', 'context' => ['exception' => new \ErrorException('deprecated', 0, E_DEPRECATED)], 'priority' => 100, 'priorityName' => 'DEBUG'],
|
||||
['message' => 'foo2', 'context' => ['exception' => new \ErrorException('deprecated', 0, E_USER_DEPRECATED)], 'priority' => 100, 'priorityName' => 'DEBUG'],
|
||||
],
|
||||
[
|
||||
['message' => 'foo3', 'context' => ['exception' => ['warning', E_USER_WARNING]], 'priority' => 100, 'priorityName' => 'DEBUG'],
|
||||
['message' => 'foo', 'context' => ['exception' => ['deprecated', E_DEPRECATED]], 'priority' => 100, 'priorityName' => 'DEBUG', 'errorCount' => 1, 'scream' => false],
|
||||
['message' => 'foo2', 'context' => ['exception' => ['deprecated', E_USER_DEPRECATED]], 'priority' => 100, 'priorityName' => 'DEBUG', 'errorCount' => 1, 'scream' => false],
|
||||
],
|
||||
2,
|
||||
0,
|
||||
[100 => ['count' => 3, 'name' => 'DEBUG']],
|
||||
];
|
||||
|
||||
yield 'logs with some silent errors' => [
|
||||
1,
|
||||
[
|
||||
['message' => 'foo3', 'context' => ['exception' => new \ErrorException('warning', 0, E_USER_WARNING)], 'priority' => 100, 'priorityName' => 'DEBUG'],
|
||||
['message' => 'foo3', 'context' => ['exception' => new SilencedErrorContext(E_USER_WARNING, __FILE__, __LINE__)], 'priority' => 100, 'priorityName' => 'DEBUG'],
|
||||
],
|
||||
[
|
||||
['message' => 'foo3', 'context' => ['exception' => ['warning', E_USER_WARNING]], 'priority' => 100, 'priorityName' => 'DEBUG'],
|
||||
['message' => 'foo3', 'context' => ['exception' => [E_USER_WARNING]], 'priority' => 100, 'priorityName' => 'DEBUG', 'errorCount' => 1, 'scream' => true],
|
||||
],
|
||||
0,
|
||||
1,
|
||||
];
|
||||
}
|
||||
}
|
||||
59
vendor/symfony/http-kernel/Tests/DataCollector/MemoryDataCollectorTest.php
vendored
Normal file
59
vendor/symfony/http-kernel/Tests/DataCollector/MemoryDataCollectorTest.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?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\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector;
|
||||
|
||||
class MemoryDataCollectorTest extends TestCase
|
||||
{
|
||||
public function testCollect()
|
||||
{
|
||||
$collector = new MemoryDataCollector();
|
||||
$collector->collect(new Request(), new Response());
|
||||
|
||||
$this->assertIsInt($collector->getMemory());
|
||||
$this->assertIsInt($collector->getMemoryLimit());
|
||||
$this->assertSame('memory', $collector->getName());
|
||||
}
|
||||
|
||||
/** @dataProvider getBytesConversionTestData */
|
||||
public function testBytesConversion($limit, $bytes)
|
||||
{
|
||||
$collector = new MemoryDataCollector();
|
||||
$method = new \ReflectionMethod($collector, 'convertToBytes');
|
||||
$method->setAccessible(true);
|
||||
$this->assertEquals($bytes, $method->invoke($collector, $limit));
|
||||
}
|
||||
|
||||
public function getBytesConversionTestData()
|
||||
{
|
||||
return [
|
||||
['2k', 2048],
|
||||
['2 k', 2048],
|
||||
['8m', 8 * 1024 * 1024],
|
||||
['+2 k', 2048],
|
||||
['+2???k', 2048],
|
||||
['0x10', 16],
|
||||
['0xf', 15],
|
||||
['010', 8],
|
||||
['+0x10 k', 16 * 1024],
|
||||
['1g', 1024 * 1024 * 1024],
|
||||
['1G', 1024 * 1024 * 1024],
|
||||
['-1', -1],
|
||||
['0', 0],
|
||||
['2mk', 2048], // the unit must be the last char, so in this case 'k', not 'm'
|
||||
];
|
||||
}
|
||||
}
|
||||
390
vendor/symfony/http-kernel/Tests/DataCollector/RequestDataCollectorTest.php
vendored
Normal file
390
vendor/symfony/http-kernel/Tests/DataCollector/RequestDataCollectorTest.php
vendored
Normal file
@@ -0,0 +1,390 @@
|
||||
<?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\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpFoundation\Cookie;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
||||
use Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface;
|
||||
use Symfony\Component\HttpKernel\DataCollector\RequestDataCollector;
|
||||
use Symfony\Component\HttpKernel\Event\ControllerEvent;
|
||||
use Symfony\Component\HttpKernel\Event\ResponseEvent;
|
||||
use Symfony\Component\HttpKernel\HttpKernel;
|
||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||
|
||||
class RequestDataCollectorTest extends TestCase
|
||||
{
|
||||
public function testCollect()
|
||||
{
|
||||
$c = new RequestDataCollector();
|
||||
|
||||
$c->collect($request = $this->createRequest(), $this->createResponse());
|
||||
$c->lateCollect();
|
||||
|
||||
$attributes = $c->getRequestAttributes();
|
||||
|
||||
$this->assertSame('request', $c->getName());
|
||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestHeaders());
|
||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestServer());
|
||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestCookies());
|
||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $attributes);
|
||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestRequest());
|
||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestQuery());
|
||||
$this->assertInstanceOf(ParameterBag::class, $c->getResponseCookies());
|
||||
$this->assertSame('html', $c->getFormat());
|
||||
$this->assertEquals('foobar', $c->getRoute());
|
||||
$this->assertEquals(['name' => 'foo'], $c->getRouteParams());
|
||||
$this->assertSame([], $c->getSessionAttributes());
|
||||
$this->assertSame('en', $c->getLocale());
|
||||
$this->assertContains(__FILE__, $attributes->get('resource'));
|
||||
$this->assertSame('stdClass', $attributes->get('object')->getType());
|
||||
|
||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getResponseHeaders());
|
||||
$this->assertSame('OK', $c->getStatusText());
|
||||
$this->assertSame(200, $c->getStatusCode());
|
||||
$this->assertSame('application/json', $c->getContentType());
|
||||
}
|
||||
|
||||
public function testCollectWithoutRouteParams()
|
||||
{
|
||||
$request = $this->createRequest([]);
|
||||
|
||||
$c = new RequestDataCollector();
|
||||
$c->collect($request, $this->createResponse());
|
||||
$c->lateCollect();
|
||||
|
||||
$this->assertEquals([], $c->getRouteParams());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideControllerCallables
|
||||
*/
|
||||
public function testControllerInspection($name, $callable, $expected)
|
||||
{
|
||||
$c = new RequestDataCollector();
|
||||
$request = $this->createRequest();
|
||||
$response = $this->createResponse();
|
||||
$this->injectController($c, $callable, $request);
|
||||
$c->collect($request, $response);
|
||||
$c->lateCollect();
|
||||
|
||||
$this->assertSame($expected, $c->getController()->getValue(true), sprintf('Testing: %s', $name));
|
||||
}
|
||||
|
||||
public function provideControllerCallables()
|
||||
{
|
||||
// make sure we always match the line number
|
||||
$r1 = new \ReflectionMethod($this, 'testControllerInspection');
|
||||
$r2 = new \ReflectionMethod($this, 'staticControllerMethod');
|
||||
$r3 = new \ReflectionClass($this);
|
||||
|
||||
// test name, callable, expected
|
||||
return [
|
||||
[
|
||||
'"Regular" callable',
|
||||
[$this, 'testControllerInspection'],
|
||||
[
|
||||
'class' => __NAMESPACE__.'\RequestDataCollectorTest',
|
||||
'method' => 'testControllerInspection',
|
||||
'file' => __FILE__,
|
||||
'line' => $r1->getStartLine(),
|
||||
],
|
||||
],
|
||||
|
||||
[
|
||||
'Closure',
|
||||
function () { return 'foo'; },
|
||||
[
|
||||
'class' => __NAMESPACE__.'\{closure}',
|
||||
'method' => null,
|
||||
'file' => __FILE__,
|
||||
'line' => __LINE__ - 5,
|
||||
],
|
||||
],
|
||||
|
||||
[
|
||||
'Static callback as string',
|
||||
__NAMESPACE__.'\RequestDataCollectorTest::staticControllerMethod',
|
||||
[
|
||||
'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
|
||||
'method' => 'staticControllerMethod',
|
||||
'file' => __FILE__,
|
||||
'line' => $r2->getStartLine(),
|
||||
],
|
||||
],
|
||||
|
||||
[
|
||||
'Static callable with instance',
|
||||
[$this, 'staticControllerMethod'],
|
||||
[
|
||||
'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
|
||||
'method' => 'staticControllerMethod',
|
||||
'file' => __FILE__,
|
||||
'line' => $r2->getStartLine(),
|
||||
],
|
||||
],
|
||||
|
||||
[
|
||||
'Static callable with class name',
|
||||
['Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest', 'staticControllerMethod'],
|
||||
[
|
||||
'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
|
||||
'method' => 'staticControllerMethod',
|
||||
'file' => __FILE__,
|
||||
'line' => $r2->getStartLine(),
|
||||
],
|
||||
],
|
||||
|
||||
[
|
||||
'Callable with instance depending on __call()',
|
||||
[$this, 'magicMethod'],
|
||||
[
|
||||
'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
|
||||
'method' => 'magicMethod',
|
||||
'file' => 'n/a',
|
||||
'line' => 'n/a',
|
||||
],
|
||||
],
|
||||
|
||||
[
|
||||
'Callable with class name depending on __callStatic()',
|
||||
['Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest', 'magicMethod'],
|
||||
[
|
||||
'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
|
||||
'method' => 'magicMethod',
|
||||
'file' => 'n/a',
|
||||
'line' => 'n/a',
|
||||
],
|
||||
],
|
||||
|
||||
[
|
||||
'Invokable controller',
|
||||
$this,
|
||||
[
|
||||
'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
|
||||
'method' => null,
|
||||
'file' => __FILE__,
|
||||
'line' => $r3->getStartLine(),
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function testItIgnoresInvalidCallables()
|
||||
{
|
||||
$request = $this->createRequestWithSession();
|
||||
$response = new RedirectResponse('/');
|
||||
|
||||
$c = new RequestDataCollector();
|
||||
$c->collect($request, $response);
|
||||
|
||||
$this->assertSame('n/a', $c->getController());
|
||||
}
|
||||
|
||||
public function testItAddsRedirectedAttributesWhenRequestContainsSpecificCookie()
|
||||
{
|
||||
$request = $this->createRequest();
|
||||
$request->cookies->add([
|
||||
'sf_redirect' => '{}',
|
||||
]);
|
||||
|
||||
$kernel = $this->getMockBuilder(HttpKernelInterface::class)->getMock();
|
||||
|
||||
$c = new RequestDataCollector();
|
||||
$c->onKernelResponse(new ResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, $this->createResponse()));
|
||||
|
||||
$this->assertTrue($request->attributes->get('_redirected'));
|
||||
}
|
||||
|
||||
public function testItSetsARedirectCookieIfTheResponseIsARedirection()
|
||||
{
|
||||
$c = new RequestDataCollector();
|
||||
|
||||
$response = $this->createResponse();
|
||||
$response->setStatusCode(302);
|
||||
$response->headers->set('Location', '/somewhere-else');
|
||||
|
||||
$c->collect($request = $this->createRequest(), $response);
|
||||
$c->lateCollect();
|
||||
|
||||
$cookie = $this->getCookieByName($response, 'sf_redirect');
|
||||
|
||||
$this->assertNotEmpty($cookie->getValue());
|
||||
$this->assertSame('lax', $cookie->getSameSite());
|
||||
$this->assertFalse($cookie->isSecure());
|
||||
}
|
||||
|
||||
public function testItCollectsTheRedirectionAndClearTheCookie()
|
||||
{
|
||||
$c = new RequestDataCollector();
|
||||
|
||||
$request = $this->createRequest();
|
||||
$request->attributes->set('_redirected', true);
|
||||
$request->cookies->add([
|
||||
'sf_redirect' => '{"method": "POST"}',
|
||||
]);
|
||||
|
||||
$c->collect($request, $response = $this->createResponse());
|
||||
$c->lateCollect();
|
||||
|
||||
$this->assertEquals('POST', $c->getRedirect()['method']);
|
||||
|
||||
$cookie = $this->getCookieByName($response, 'sf_redirect');
|
||||
$this->assertNull($cookie->getValue());
|
||||
}
|
||||
|
||||
protected function createRequest($routeParams = ['name' => 'foo'])
|
||||
{
|
||||
$request = Request::create('http://test.com/foo?bar=baz');
|
||||
$request->attributes->set('foo', 'bar');
|
||||
$request->attributes->set('_route', 'foobar');
|
||||
$request->attributes->set('_route_params', $routeParams);
|
||||
$request->attributes->set('resource', fopen(__FILE__, 'r'));
|
||||
$request->attributes->set('object', new \stdClass());
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
private function createRequestWithSession()
|
||||
{
|
||||
$request = $this->createRequest();
|
||||
$request->attributes->set('_controller', 'Foo::bar');
|
||||
$request->setSession(new Session(new MockArraySessionStorage()));
|
||||
$request->getSession()->start();
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
protected function createResponse()
|
||||
{
|
||||
$response = new Response();
|
||||
$response->setStatusCode(200);
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
$response->headers->set('X-Foo-Bar', null);
|
||||
$response->headers->setCookie(new Cookie('foo', 'bar', 1, '/foo', 'localhost', true, true, false, null));
|
||||
$response->headers->setCookie(new Cookie('bar', 'foo', new \DateTime('@946684800'), '/', null, false, true, false, null));
|
||||
$response->headers->setCookie(new Cookie('bazz', 'foo', '2000-12-12', '/', null, false, true, false, null));
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inject the given controller callable into the data collector.
|
||||
*/
|
||||
protected function injectController($collector, $controller, $request)
|
||||
{
|
||||
$resolver = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface')->getMock();
|
||||
$httpKernel = new HttpKernel(new EventDispatcher(), $resolver, null, $this->getMockBuilder(ArgumentResolverInterface::class)->getMock());
|
||||
$event = new ControllerEvent($httpKernel, $controller, $request, HttpKernelInterface::MASTER_REQUEST);
|
||||
$collector->onKernelController($event);
|
||||
}
|
||||
|
||||
/**
|
||||
* Dummy method used as controller callable.
|
||||
*/
|
||||
public static function staticControllerMethod()
|
||||
{
|
||||
throw new \LogicException('Unexpected method call');
|
||||
}
|
||||
|
||||
/**
|
||||
* Magic method to allow non existing methods to be called and delegated.
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
throw new \LogicException('Unexpected method call');
|
||||
}
|
||||
|
||||
/**
|
||||
* Magic method to allow non existing methods to be called and delegated.
|
||||
*/
|
||||
public static function __callStatic($method, $args)
|
||||
{
|
||||
throw new \LogicException('Unexpected method call');
|
||||
}
|
||||
|
||||
public function __invoke()
|
||||
{
|
||||
throw new \LogicException('Unexpected method call');
|
||||
}
|
||||
|
||||
private function getCookieByName(Response $response, $name)
|
||||
{
|
||||
foreach ($response->headers->getCookies() as $cookie) {
|
||||
if ($cookie->getName() == $name) {
|
||||
return $cookie;
|
||||
}
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException(sprintf('Cookie named "%s" is not in response', $name));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideJsonContentTypes
|
||||
*/
|
||||
public function testIsJson($contentType, $expected)
|
||||
{
|
||||
$response = $this->createResponse();
|
||||
$request = $this->createRequest();
|
||||
$request->headers->set('Content-Type', $contentType);
|
||||
|
||||
$c = new RequestDataCollector();
|
||||
$c->collect($request, $response);
|
||||
|
||||
$this->assertSame($expected, $c->isJsonRequest());
|
||||
}
|
||||
|
||||
public function provideJsonContentTypes()
|
||||
{
|
||||
return [
|
||||
['text/csv', false],
|
||||
['application/json', true],
|
||||
['application/JSON', true],
|
||||
['application/hal+json', true],
|
||||
['application/xml+json', true],
|
||||
['application/xml', false],
|
||||
['', false],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providePrettyJson
|
||||
*/
|
||||
public function testGetPrettyJsonValidity($content, $expected)
|
||||
{
|
||||
$response = $this->createResponse();
|
||||
$request = Request::create('/', 'POST', [], [], [], [], $content);
|
||||
|
||||
$c = new RequestDataCollector();
|
||||
$c->collect($request, $response);
|
||||
|
||||
$this->assertSame($expected, $c->getPrettyJson());
|
||||
}
|
||||
|
||||
public function providePrettyJson()
|
||||
{
|
||||
return [
|
||||
['null', 'null'],
|
||||
['{ "foo": "bar" }', '{
|
||||
"foo": "bar"
|
||||
}'],
|
||||
['{ "abc" }', null],
|
||||
['', null],
|
||||
];
|
||||
}
|
||||
}
|
||||
57
vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php
vendored
Normal file
57
vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?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\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\DataCollector\TimeDataCollector;
|
||||
use Symfony\Component\Stopwatch\Stopwatch;
|
||||
|
||||
/**
|
||||
* @group time-sensitive
|
||||
*/
|
||||
class TimeDataCollectorTest extends TestCase
|
||||
{
|
||||
public function testCollect()
|
||||
{
|
||||
$c = new TimeDataCollector();
|
||||
|
||||
$request = new Request();
|
||||
$request->server->set('REQUEST_TIME', 1);
|
||||
|
||||
$c->collect($request, new Response());
|
||||
|
||||
$this->assertEquals(0, $c->getStartTime());
|
||||
|
||||
$request->server->set('REQUEST_TIME_FLOAT', 2);
|
||||
|
||||
$c->collect($request, new Response());
|
||||
|
||||
$this->assertEquals(2000, $c->getStartTime());
|
||||
|
||||
$request = new Request();
|
||||
$c->collect($request, new Response());
|
||||
$this->assertEquals(0, $c->getStartTime());
|
||||
|
||||
$kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\KernelInterface')->getMock();
|
||||
$kernel->expects($this->once())->method('getStartTime')->willReturn(123456.0);
|
||||
|
||||
$c = new TimeDataCollector($kernel);
|
||||
$request = new Request();
|
||||
$request->server->set('REQUEST_TIME', 1);
|
||||
|
||||
$c->collect($request, new Response());
|
||||
$this->assertEquals(123456000, $c->getStartTime());
|
||||
$this->assertSame(class_exists(Stopwatch::class, false), $c->isStopwatchInstalled());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user