Gracefully catches Twig exceptions and displays error messages
MAILPOET-667 #time 3h
This commit is contained in:
@ -1,9 +1,10 @@
|
||||
<?php
|
||||
use Codeception\Util\Stub;
|
||||
use \MailPoet\Config\Renderer;
|
||||
|
||||
class RendererTest extends MailPoetTest {
|
||||
function _before() {
|
||||
$this->renderer = new Renderer();
|
||||
$this->renderer = new Renderer($caching = false, $debugging = false);
|
||||
}
|
||||
|
||||
function testItWillNotEnableCacheWhenWpDebugIsOn() {
|
||||
@ -11,6 +12,47 @@ class RendererTest extends MailPoetTest {
|
||||
expect($result)->equals(false);
|
||||
}
|
||||
|
||||
function testItDelegatesRenderingToTwig() {
|
||||
$renderer = Stub::construct(
|
||||
$this->renderer,
|
||||
array(),
|
||||
array(
|
||||
'renderer' => Stub::makeEmpty('Twig_Environment',
|
||||
array(
|
||||
'render' => Stub::atLeastOnce(function() { return 'test render'; }),
|
||||
)
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
expect($renderer->render('non-existing-template.html', array('somekey' => 'someval')))->equals('test render');
|
||||
}
|
||||
|
||||
function testItRethrowsTwigCacheExceptions() {
|
||||
$exception_message = 'this is a test error';
|
||||
$renderer = Stub::construct(
|
||||
$this->renderer,
|
||||
array(true, false),
|
||||
array(
|
||||
'renderer' => Stub::makeEmpty('Twig_Environment',
|
||||
array(
|
||||
'render' => Stub::atLeastOnce(function() use ($exception_message) {
|
||||
throw new \RuntimeException($exception_message);
|
||||
}),
|
||||
)
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
try {
|
||||
$renderer->render('non-existing-template.html', array('somekey' => 'someval'));
|
||||
self::fail('Twig exception was not rethrown');
|
||||
} catch(\Exception $e) {
|
||||
expect($e->getMessage())->contains($exception_message);
|
||||
expect($e->getMessage())->notEquals($exception_message);
|
||||
}
|
||||
}
|
||||
|
||||
function _after() {
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user