/**
  * @Observe(event="kernel.view", priority=110)
  * {@inheritdoc}
  */
 public function onKernelView(GetResponseForControllerResultEvent $event)
 {
     $request = $event->getRequest();
     $request->getSession()->save();
     if (!$request->attributes->has('_view')) {
         $configuration = new View([]);
         $configuration->setSerializerEnableMaxDepthChecks(true);
         $request->attributes->set('_view', $configuration);
     }
 }
 /**
  * @dataProvider serializerEnableMaxDepthChecksProvider
  */
 public function testSerializerEnableMaxDepthChecks($enableMaxDepthChecks, $expectedMaxDepth)
 {
     $this->createViewResponseListener(['json' => true]);
     $viewAnnotation = new ViewAnnotation([]);
     $viewAnnotation->setSerializerEnableMaxDepthChecks($enableMaxDepthChecks);
     $request = new Request();
     $request->setRequestFormat('json');
     $request->attributes->set('_view', $viewAnnotation);
     $this->templating->expects($this->any())->method('render')->will($this->returnValue('foo'));
     $view = new View();
     $event = $this->getResponseEvent($request, $view);
     $this->listener->onKernelView($event);
     $context = $view->getSerializationContext();
     $maxDepth = $context->getMaxDepth();
     $this->assertEquals($expectedMaxDepth, $maxDepth);
 }
 /**
  * @dataProvider serializerEnableMaxDepthChecksProvider
  */
 public function testSerializerEnableMaxDepthChecks($enableMaxDepthChecks, $expectedMaxDepth)
 {
     $viewAnnotation = new ViewAnnotation([]);
     $viewAnnotation->setSerializerEnableMaxDepthChecks($enableMaxDepthChecks);
     $request = new Request();
     $request->setRequestFormat('json');
     $request->attributes->set('_view', $viewAnnotation);
     $this->viewHandler = new ViewHandler(['json' => true]);
     $this->viewHandler->setContainer($this->container);
     // This is why we avoid container dependencies!
     $that = $this;
     $this->container->expects($this->exactly(2))->method('get')->with($this->logicalOr('fos_rest.view_handler', 'fos_rest.templating'))->will($this->returnCallback(function ($service) use($that) {
         return $service === 'fos_rest.view_handler' ? $that->viewHandler : $that->templating;
     }));
     $this->templating->expects($this->any())->method('render')->will($this->returnValue('foo'));
     $view = new View();
     $event = $this->getResponseEvent($request, $view);
     $this->listener->onKernelView($event);
     $context = $view->getSerializationContext();
     $maxDepth = $context->getMaxDepth();
     $this->assertEquals($expectedMaxDepth, $maxDepth);
 }