RequestDataCollector example

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;
use Symfony\Component\HttpKernel\Tests\Fixtures\DataCollector\DummyController;

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(ParameterBag::class$c->getRequestHeaders());
        $this->assertInstanceOf(ParameterBag::class$c->getRequestServer());
        $this->assertInstanceOf(ParameterBag::class$c->getRequestCookies());
        $this->assertInstanceOf(ParameterBag::class$attributes);
        
class ProfilerTest extends TestCase
{
    private string $tmp;
    private ?FileProfilerStorage $storage = null;

    public function testCollect()
    {
        $request = new Request();
        $request->query->set('foo', 'bar');
        $request->server->set('REMOTE_ADDR', '127.0.0.1');
        $response = new Response('', 204);
        $collector = new RequestDataCollector();

        $profiler = new Profiler($this->storage);
        $profiler->add($collector);
        $profile = $profiler->collect($request$response);
        $profiler->saveProfile($profile);

        $this->assertSame(204, $profile->getStatusCode());
        $this->assertSame('GET', $profile->getMethod());
        $this->assertSame('bar', $profile->getCollector('request')->getRequestQuery()->all()['foo']->getValue());
    }

    

    public function testDefaultPanel(string $expectedPanel, Profile $profile)
    {
        $this->assertDefaultPanel($expectedPanel$profile);
    }

    public static function defaultPanelProvider(): \Generator
    {
        // Test default behavior         $profile = new Profile('xxxxxx');
        $profile->addCollector($requestDataCollector = new RequestDataCollector());
        yield [$requestDataCollector->getName()$profile];

        // Test exception         $profile = new Profile('xxxxxx');
        $profile->addCollector($exceptionDataCollector = new ExceptionDataCollector());
        $exceptionDataCollector->collect(new Request()new Response()new \DomainException());
        yield [$exceptionDataCollector->getName()$profile];
    }

    private function createController($profiler$twig$withCSP, array $templates = []): ProfilerController
    {
        
Home | Imprint | This part of the site doesn't use cookies.