1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-24 20:13:22 +01:00

Merge remote-tracking branch 'github-p/ticket/10882' into develop

* github-p/ticket/10882:
  [ticket/10882] Fix test name - oops.
  [ticket/10882] Add a test for including a nonexistent file.
  [ticket/10882] Add test for an ENDIF without IF.
  [ticket/10882] Add test for an invalid template tag.
This commit is contained in:
Nils Adermann 2012-06-12 00:57:34 +02:00
commit f22c99ffdb
7 changed files with 93 additions and 0 deletions

View File

@ -0,0 +1,87 @@
<?php
/**
*
* @package testing
* @copyright (c) 2012 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/template_test_case.php';
class phpbb_template_invalid_constructs_test extends phpbb_template_template_test_case
{
public function template_data()
{
return array(
array(
'Unknown tag',
'invalid/unknown_tag.html',
array(),
array(),
array(),
'invalid/output/unknown_tag.html',
),
/*
* Produces a parse error which is fatal, therefore
* destroying the test suite.
array(
'ENDIF without IF',
'invalid/endif_without_if.html',
array(),
array(),
array(),
'invalid/output/endif_without_if.html',
),
*/
);
}
public function template_data_error()
{
return array(
array(
'Include a nonexistent file',
'invalid/include_nonexistent_file.html',
array(),
array(),
array(),
E_USER_ERROR,
'invalid/output/include_nonexistent_file.html',
),
);
}
/**
* @dataProvider template_data
*/
public function test_template($description, $file, $vars, $block_vars, $destroy, $expected)
{
$cache_file = $this->template->cachepath . str_replace('/', '.', $file) . '.php';
$this->assertFileNotExists($cache_file);
$expected = file_get_contents(dirname(__FILE__) . '/templates/' . $expected);
// apparently the template engine does not put
// the trailing newline into compiled templates
$expected = trim($expected);
$this->run_template($file, $vars, $block_vars, $destroy, $expected, $cache_file);
}
/**
* @dataProvider template_data_error
*/
public function test_template_error($description, $file, $vars, $block_vars, $destroy, $error, $expected)
{
$cache_file = $this->template->cachepath . str_replace('/', '.', $file) . '.php';
$this->assertFileNotExists($cache_file);
$expected = file_get_contents(dirname(__FILE__) . '/templates/' . $expected);
// apparently the template engine does not put
// the trailing newline into compiled templates
$expected = trim($expected);
$this->setExpectedTriggerError($error, $expected);
$this->run_template($file, $vars, $block_vars, $destroy, '', $cache_file);
}
}

View File

@ -0,0 +1 @@
<!-- ENDIF -->

View File

@ -0,0 +1 @@
<!-- INCLUDE nonexistent.html -->

View File

@ -0,0 +1 @@
Parse error (fatal, destroys php runtime).

View File

@ -0,0 +1 @@
style resource locator: File for handle nonexistent.html does not exist. Could not find:

View File

@ -0,0 +1 @@
<!-- UNKNOWNTAG variable.html -->

View File

@ -0,0 +1 @@
<!-- UNKNOWNTAG variable.html -->