/** * @dataProvider getData */ public function testGetBestFormat($acceptHeader, $format, $priorities, $preferExtension, $expected) { $request = new Request(); $request->headers->set('Accept', $acceptHeader); $request->attributes->set('_format', $format); $formatNegotiator = new FormatNegotiator(); $this->assertEquals($expected, $formatNegotiator->getBestFormat($request, $priorities, $preferExtension)); }
/** * Core request handler * * @param GetResponseEvent $event The event */ public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) { foreach ($this->mimeTypes as $format => $mimeType) { $request->setFormat($format, $mimeType); $this->formatNegotiator->registerFormat($format, (array) $mimeType, true); } } }
public function testOnKernelControllerNegotiationStopped() { $event = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent')->disableOriginalConstructor()->getMock(); $request = new Request(); $request->setRequestFormat('xml'); $event->expects($this->once())->method('getRequest')->will($this->returnValue($request)); $formatNegotiator = new FormatNegotiator(); $formatNegotiator->add(new RequestMatcher('/'), array('stop' => true)); $formatNegotiator->add(new RequestMatcher('/'), array('fallback_format' => 'json')); $listener = new FormatListener($formatNegotiator); $listener->onKernelRequest($event); $this->assertEquals($request->getRequestFormat(), 'xml'); }