26 public function testIntegration($file, $message, $condition, $templates, $exception, $outputs)
28 $this->
doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs);
36 foreach (
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($fixturesDir), RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
37 if (!preg_match(
'/\.test$/', $file)) {
41 $test = file_get_contents($file->getRealpath());
44 --TEST--\s*(.*?)\s*(?:--CONDITION--\s*(.*))?\s*((?:--TEMPLATE(?:\(.*?\))?--(?:.*?))+)\s*(?:--DATA--\s*(.*))?\s*--EXCEPTION--\s*(.*)/sx', $test,
$match)) {
49 $outputs = array(array(null,
$match[4], null,
''));
50 }
elseif (preg_match(
'/--TEST--\s*(.*?)\s*(?:--CONDITION--\s*(.*))?\s*((?:--TEMPLATE(?:\(.*?\))?--(?:.*?))+)--DATA--.*?--EXPECT--.*/s', $test,
$match)) {
55 preg_match_all(
'/--DATA--(.*?)(?:--CONFIG--(.*?))?--EXPECT--(.*?)(?=\-\-DATA\-\-|$)/s', $test, $outputs, PREG_SET_ORDER);
57 throw new InvalidArgumentException(sprintf(
'Test "%s" is not valid.', str_replace($fixturesDir.
'/',
'', $file)));
60 $tests[] = array(str_replace($fixturesDir.
'/',
'', $file), $message, $condition, $templates, $exception, $outputs);
66 protected function doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs)
69 eval(
'$ret = '.$condition.
';');
71 $this->markTestSkipped($condition);
77 foreach ($outputs as
$match) {
78 $config = array_merge(array(
80 'strict_variables' =>
true,
81 ), $match[2] ? eval($match[2].
';') : array());
83 $twig->addGlobal(
'global',
'global');
85 $twig->addExtension($extension);
89 $template = $twig->loadTemplate(
'index.twig');
90 }
catch (Exception $e) {
91 if (
false !== $exception) {
92 $this->assertEquals(trim($exception), trim(sprintf(
'%s: %s', get_class($e), $e->getMessage())));
98 $e->setTemplateFile($file);
103 throw new Twig_Error(sprintf(
'%s: %s', get_class($e), $e->getMessage()), -1, $file, $e);
107 $output = trim($template->render(eval($match[1].
';')),
"\n ");
108 }
catch (Exception $e) {
109 if (
false !== $exception) {
110 $this->assertEquals(trim($exception), trim(sprintf(
'%s: %s', get_class($e), $e->getMessage())));
116 $e->setTemplateFile($file);
118 $e =
new Twig_Error(sprintf(
'%s: %s', get_class($e), $e->getMessage()), -1, $file, $e);
121 $output = trim(sprintf(
'%s: %s', get_class($e), $e->getMessage()));
124 if (
false !== $exception) {
125 list(
$class, ) = explode(
':', $exception);
126 $this->assertThat(NULL,
new PHPUnit_Framework_Constraint_Exception(
$class));
129 $expected = trim($match[3],
"\n ");
132 echo
'Compiled template that failed:';
134 foreach (array_keys($templates) as $name) {
135 echo
"Template: $name\n";
136 $source = $loader->getSource($name);
137 echo $twig->compile($twig->parse($twig->tokenize($source, $name)));
140 $this->assertEquals($expected,
$output, $message.
' (in '.$file.
')');
146 $templates = array();
147 preg_match_all(
'/--TEMPLATE(?:\((.*?)\))?--(.*?)(?=\-\-TEMPLATE|$)/s', $test, $matches, PREG_SET_ORDER);
148 foreach ($matches as
$match) {
149 $templates[($match[1] ? $match[1] :
'index.twig')] = $match[2];
Loads a template from an array.
doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs)
if($rub=fetch_assoc($rub_query)) if(check_if_module_active('url_rewriting')) $class
Exception thrown when a syntax error occurs during lexing or parsing of a template.
if(strlen($date2)== '10') if($type== 'users-by-age'&&a_priv('admin_users', true)) elseif($type== 'forums-count'&&a_priv('admin_content', true)) elseif($type== 'forums-categories'&&a_priv('admin_content', true)) elseif($type== 'users-count'&&a_priv('admin_users', true)) elseif($type== 'product-categories'&&a_priv('admin_products', true)) elseif($type== 'users-by-sex'&&a_priv('admin_users', true)) elseif($type== 'users-by-country'&&a_priv('admin_users', true)) elseif($type== 'sales'&&a_priv('admin_sales', true))
Stores the Twig configuration.
static parseTemplates($test)
testIntegration($file, $message, $condition, $templates, $exception, $outputs)
getTests