Expanded class hierarchy of InlineFragmentRendererTest
class InlineFragmentRendererTest extends \PHPUnit_Framework_TestCase {
protected function setUp() {
if (!class_exists('Symfony\\Component\\EventDispatcher\\EventDispatcher')) {
$this
->markTestSkipped('The "EventDispatcher" component is not available');
}
if (!class_exists('Symfony\\Component\\HttpFoundation\\Request')) {
$this
->markTestSkipped('The "HttpFoundation" component is not available');
}
}
public function testRender() {
$strategy = new InlineFragmentRenderer($this
->getKernel($this
->returnValue(new Response('foo'))));
$this
->assertEquals('foo', $strategy
->render('/', Request::create('/'))
->getContent());
}
public function testRenderWithControllerReference() {
$strategy = new InlineFragmentRenderer($this
->getKernel($this
->returnValue(new Response('foo'))));
$this
->assertEquals('foo', $strategy
->render(new ControllerReference('main_controller', array(), array()), Request::create('/'))
->getContent());
}
public function testRenderWithObjectsAsAttributes() {
$object = new \stdClass();
$subRequest = Request::create('/_fragment?_path=_format%3Dhtml%26_controller%3Dmain_controller');
$subRequest->attributes
->replace(array(
'object' => $object,
'_format' => 'html',
'_controller' => 'main_controller',
));
$subRequest->headers
->set('x-forwarded-for', array(
'127.0.0.1',
));
$subRequest->server
->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$kernel
->expects($this
->any())
->method('handle')
->with($subRequest);
$strategy = new InlineFragmentRenderer($kernel);
$strategy
->render(new ControllerReference('main_controller', array(
'object' => $object,
), array()), Request::create('/'));
}
/**
* @expectedException \RuntimeException
*/
public function testRenderExceptionNoIgnoreErrors() {
$dispatcher = $this
->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface');
$dispatcher
->expects($this
->never())
->method('dispatch');
$strategy = new InlineFragmentRenderer($this
->getKernel($this
->throwException(new \RuntimeException('foo'))), $dispatcher);
$this
->assertEquals('foo', $strategy
->render('/', Request::create('/'))
->getContent());
}
public function testRenderExceptionIgnoreErrors() {
$dispatcher = $this
->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface');
$dispatcher
->expects($this
->once())
->method('dispatch')
->with(KernelEvents::EXCEPTION);
$strategy = new InlineFragmentRenderer($this
->getKernel($this
->throwException(new \RuntimeException('foo'))), $dispatcher);
$this
->assertEmpty($strategy
->render('/', Request::create('/'), array(
'ignore_errors' => true,
))
->getContent());
}
public function testRenderExceptionIgnoreErrorsWithAlt() {
$strategy = new InlineFragmentRenderer($this
->getKernel($this
->onConsecutiveCalls($this
->throwException(new \RuntimeException('foo')), $this
->returnValue(new Response('bar')))));
$this
->assertEquals('bar', $strategy
->render('/', Request::create('/'), array(
'ignore_errors' => true,
'alt' => '/foo',
))
->getContent());
}
private function getKernel($returnValue) {
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$kernel
->expects($this
->any())
->method('handle')
->will($returnValue);
return $kernel;
}
public function testExceptionInSubRequestsDoesNotMangleOutputBuffers() {
$resolver = $this
->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
$resolver
->expects($this
->once())
->method('getController')
->will($this
->returnValue(function () {
ob_start();
echo 'bar';
throw new \RuntimeException();
}));
$resolver
->expects($this
->once())
->method('getArguments')
->will($this
->returnValue(array()));
$kernel = new HttpKernel(new EventDispatcher(), $resolver);
$renderer = new InlineFragmentRenderer($kernel);
// simulate a main request with output buffering
ob_start();
echo 'Foo';
// simulate a sub-request with output buffering and an exception
$renderer
->render('/', Request::create('/'), array(
'ignore_errors' => true,
));
$this
->assertEquals('Foo', ob_get_clean());
}
public function testESIHeaderIsKeptInSubrequest() {
$expectedSubRequest = Request::create('/');
$expectedSubRequest->headers
->set('Surrogate-Capability', 'abc="ESI/1.0"');
$expectedSubRequest->headers
->set('x-forwarded-for', array(
'127.0.0.1',
));
$expectedSubRequest->server
->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$kernel
->expects($this
->any())
->method('handle')
->with($expectedSubRequest);
$strategy = new InlineFragmentRenderer($kernel);
$request = Request::create('/');
$request->headers
->set('Surrogate-Capability', 'abc="ESI/1.0"');
$strategy
->render('/', $request);
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
InlineFragmentRendererTest:: |
private | function | ||
InlineFragmentRendererTest:: |
protected | function | ||
InlineFragmentRendererTest:: |
public | function | ||
InlineFragmentRendererTest:: |
public | function | ||
InlineFragmentRendererTest:: |
public | function | ||
InlineFragmentRendererTest:: |
public | function | ||
InlineFragmentRendererTest:: |
public | function | ||
InlineFragmentRendererTest:: |
public | function | @expectedException \RuntimeException | |
InlineFragmentRendererTest:: |
public | function | ||
InlineFragmentRendererTest:: |
public | function |