mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-04 18:34:27 +02:00
Getting ready for PHP8, handling changed error levels/handlers mostly
This commit is contained in:
@@ -6,7 +6,7 @@ dist: trusty
|
|||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- php: 5.3 # Composer requires PHP 5.3.2+ to run, so we cannot test below 5.3
|
- php: 5.3 # Composer and PHPUnit require PHP 5.3.2+ to run, so we cannot test below 5.3
|
||||||
dist: precise # PHP 5.3 is supported only on Precise.
|
dist: precise # PHP 5.3 is supported only on Precise.
|
||||||
- php: 5.4
|
- php: 5.4
|
||||||
- php: 5.5
|
- php: 5.5
|
||||||
|
@@ -94,9 +94,9 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (strpos($_index[ 1 ], '$') === false && strpos($_index[ 1 ], '\'') === false) {
|
if (strpos($_index[ 1 ], '$') === false && strpos($_index[ 1 ], '\'') === false) {
|
||||||
return "@constant('{$_index[1]}')";
|
return "defined('{$_index[1]}') ? constant('{$_index[1]}') : null";
|
||||||
} else {
|
} else {
|
||||||
return "@constant({$_index[1]})";
|
return "defined({$_index[1]}) ? @constant({$_index[1]}) : null";
|
||||||
}
|
}
|
||||||
// no break
|
// no break
|
||||||
case 'config':
|
case 'config':
|
||||||
|
@@ -29,7 +29,7 @@ class UndefinedTemplateVarTest extends PHPUnit_Smarty
|
|||||||
public function testE_NoticeDisabled()
|
public function testE_NoticeDisabled()
|
||||||
{
|
{
|
||||||
$e1 = error_reporting();
|
$e1 = error_reporting();
|
||||||
$this->smarty->setErrorReporting(E_ALL & ~E_NOTICE);
|
$this->smarty->setErrorReporting(E_ALL & ~E_WARNING & ~E_NOTICE);
|
||||||
$this->assertEquals('undefined = ', $this->smarty->fetch('001_main.tpl'));
|
$this->assertEquals('undefined = ', $this->smarty->fetch('001_main.tpl'));
|
||||||
$e2 = error_reporting();
|
$e2 = error_reporting();
|
||||||
$this->assertEquals($e1, $e2);
|
$this->assertEquals($e1, $e2);
|
||||||
@@ -41,7 +41,7 @@ class UndefinedTemplateVarTest extends PHPUnit_Smarty
|
|||||||
public function testE_NoticeDisabledTplObject_1()
|
public function testE_NoticeDisabledTplObject_1()
|
||||||
{
|
{
|
||||||
$e1 = error_reporting();
|
$e1 = error_reporting();
|
||||||
$this->smarty->setErrorReporting(E_ALL & ~E_NOTICE);
|
$this->smarty->setErrorReporting(E_ALL & ~E_WARNING & ~E_NOTICE);
|
||||||
$tpl = $this->smarty->createTemplate('001_main.tpl');
|
$tpl = $this->smarty->createTemplate('001_main.tpl');
|
||||||
$this->assertEquals('undefined = ', $tpl->fetch());
|
$this->assertEquals('undefined = ', $tpl->fetch());
|
||||||
$e2 = error_reporting();
|
$e2 = error_reporting();
|
||||||
@@ -51,7 +51,7 @@ class UndefinedTemplateVarTest extends PHPUnit_Smarty
|
|||||||
public function testE_NoticeDisabledTplObject_2()
|
public function testE_NoticeDisabledTplObject_2()
|
||||||
{
|
{
|
||||||
$e1 = error_reporting();
|
$e1 = error_reporting();
|
||||||
$this->smarty->setErrorReporting(E_ALL & ~E_NOTICE);
|
$this->smarty->setErrorReporting(E_ALL & ~E_WARNING & ~E_NOTICE);
|
||||||
$tpl = $this->smarty->createTemplate('001_main.tpl');
|
$tpl = $this->smarty->createTemplate('001_main.tpl');
|
||||||
$this->assertEquals('undefined = ', $this->smarty->fetch($tpl));
|
$this->assertEquals('undefined = ', $this->smarty->fetch($tpl));
|
||||||
$e2 = error_reporting();
|
$e2 = error_reporting();
|
||||||
@@ -60,12 +60,16 @@ class UndefinedTemplateVarTest extends PHPUnit_Smarty
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Throw E_NOTICE message
|
* Throw E_NOTICE message
|
||||||
*
|
|
||||||
* @expectedException PHPUnit_Framework_Error_Notice
|
|
||||||
* @expectedExceptionMessage Undefined index: foo
|
|
||||||
*/
|
*/
|
||||||
public function testE_Notice()
|
public function testE_Notice()
|
||||||
{
|
{
|
||||||
|
if (PHP_VERSION_ID >= 80000) {
|
||||||
|
$this->expectExceptionMessage("Undefined array key \"foo\"");
|
||||||
|
$this->expectException(PHPUnit_Framework_Error_Warning::class);
|
||||||
|
} else {
|
||||||
|
$this->expectExceptionMessage("Undefined index: foo");
|
||||||
|
$this->expectException(PHPUnit_Framework_Error_Notice::class);
|
||||||
|
}
|
||||||
$e1 = error_reporting();
|
$e1 = error_reporting();
|
||||||
$this->assertEquals('undefined = ', $this->smarty->fetch('001_main.tpl'));
|
$this->assertEquals('undefined = ', $this->smarty->fetch('001_main.tpl'));
|
||||||
$e2 = error_reporting();
|
$e2 = error_reporting();
|
||||||
|
@@ -27,7 +27,7 @@ class MuteExpectedErrorsTest extends PHPUnit_Smarty
|
|||||||
{
|
{
|
||||||
$this->cleanDirs();
|
$this->cleanDirs();
|
||||||
}
|
}
|
||||||
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext)
|
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext = [])
|
||||||
{
|
{
|
||||||
$this->_errors[] = $errfile . ' line ' . $errline;
|
$this->_errors[] = $errfile . ' line ' . $errline;
|
||||||
}
|
}
|
||||||
|
@@ -403,7 +403,11 @@ class ConfigVarTest extends PHPUnit_Smarty
|
|||||||
$this->assertEquals("", $this->smarty->fetch('foo.tpl'));
|
$this->assertEquals("", $this->smarty->fetch('foo.tpl'));
|
||||||
}
|
}
|
||||||
catch (Exception $e) {
|
catch (Exception $e) {
|
||||||
|
if (PHP_VERSION_ID >= 80000) {
|
||||||
|
$this->assertEquals('Undefined variable $foo', $e->getMessage());
|
||||||
|
} else {
|
||||||
$this->assertEquals('Undefined variable: foo', $e->getMessage());
|
$this->assertEquals('Undefined variable: foo', $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -33,7 +33,7 @@ class ClearAllAssignBCTest extends PHPUnit_Smarty
|
|||||||
|
|
||||||
public function testSmarty2ClearAllAssignInSmarty()
|
public function testSmarty2ClearAllAssignInSmarty()
|
||||||
{
|
{
|
||||||
error_reporting((error_reporting() & ~(E_NOTICE | E_USER_NOTICE)));
|
error_reporting((error_reporting() & ~(E_NOTICE | E_WARNING | E_USER_NOTICE)));
|
||||||
$this->smartyBC->clear_all_assign();
|
$this->smartyBC->clear_all_assign();
|
||||||
$this->assertEquals('barblar', $this->smartyBC->fetch($this->_tplBC));
|
$this->assertEquals('barblar', $this->smartyBC->fetch($this->_tplBC));
|
||||||
}
|
}
|
||||||
|
@@ -46,7 +46,7 @@ class ClearAllAssignTest extends PHPUnit_Smarty
|
|||||||
*/
|
*/
|
||||||
public function testClearAllAssignInTemplate()
|
public function testClearAllAssignInTemplate()
|
||||||
{
|
{
|
||||||
error_reporting((error_reporting() & ~(E_NOTICE | E_USER_NOTICE)));
|
error_reporting((error_reporting() & ~(E_NOTICE | E_USER_NOTICE | E_WARNING)));
|
||||||
$this->_tpl->clearAllAssign();
|
$this->_tpl->clearAllAssign();
|
||||||
$this->assertEquals('foobar', $this->smarty->fetch($this->_tpl));
|
$this->assertEquals('foobar', $this->smarty->fetch($this->_tpl));
|
||||||
}
|
}
|
||||||
@@ -56,7 +56,7 @@ class ClearAllAssignTest extends PHPUnit_Smarty
|
|||||||
*/
|
*/
|
||||||
public function testClearAllAssignInData()
|
public function testClearAllAssignInData()
|
||||||
{
|
{
|
||||||
error_reporting((error_reporting() & ~(E_NOTICE | E_USER_NOTICE)));
|
error_reporting((error_reporting() & ~(E_NOTICE | E_USER_NOTICE | E_WARNING)));
|
||||||
$this->_data->clearAllAssign();
|
$this->_data->clearAllAssign();
|
||||||
$this->assertEquals('fooblar', $this->smarty->fetch($this->_tpl));
|
$this->assertEquals('fooblar', $this->smarty->fetch($this->_tpl));
|
||||||
}
|
}
|
||||||
@@ -66,7 +66,7 @@ class ClearAllAssignTest extends PHPUnit_Smarty
|
|||||||
*/
|
*/
|
||||||
public function testClearAllAssignInSmarty()
|
public function testClearAllAssignInSmarty()
|
||||||
{
|
{
|
||||||
error_reporting((error_reporting() & ~(E_NOTICE | E_USER_NOTICE)));
|
error_reporting((error_reporting() & ~(E_NOTICE | E_USER_NOTICE | E_WARNING)));
|
||||||
$this->smarty->clearAllAssign();
|
$this->smarty->clearAllAssign();
|
||||||
$this->assertEquals('barblar', $this->smarty->fetch($this->_tpl));
|
$this->assertEquals('barblar', $this->smarty->fetch($this->_tpl));
|
||||||
}
|
}
|
||||||
|
@@ -33,14 +33,14 @@ class ClearAssignBCTest extends PHPUnit_Smarty
|
|||||||
}
|
}
|
||||||
public function testSmarty2ClearAssign()
|
public function testSmarty2ClearAssign()
|
||||||
{
|
{
|
||||||
$this->smartyBC->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE));
|
$this->smartyBC->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE | E_WARNING));
|
||||||
$this->smartyBC->clear_assign('blar');
|
$this->smartyBC->clear_assign('blar');
|
||||||
$this->assertEquals('foobar', $this->smartyBC->fetch('eval:{$foo}{$bar}{$blar}'));
|
$this->assertEquals('foobar', $this->smartyBC->fetch('eval:{$foo}{$bar}{$blar}'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSmarty2ArrayClearAssign()
|
public function testSmarty2ArrayClearAssign()
|
||||||
{
|
{
|
||||||
$this->smartyBC->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE));
|
$this->smartyBC->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE | E_WARNING));
|
||||||
$this->smartyBC->clear_assign(array('blar', 'foo'));
|
$this->smartyBC->clear_assign(array('blar', 'foo'));
|
||||||
$this->assertEquals('bar', $this->smartyBC->fetch('eval:{$foo}{$bar}{$blar}'));
|
$this->assertEquals('bar', $this->smartyBC->fetch('eval:{$foo}{$bar}{$blar}'));
|
||||||
}
|
}
|
||||||
|
@@ -36,7 +36,7 @@ class ClearAssignTest extends PHPUnit_Smarty
|
|||||||
*/
|
*/
|
||||||
public function testClearAssign()
|
public function testClearAssign()
|
||||||
{
|
{
|
||||||
$this->smarty->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE));
|
$this->smarty->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE | E_WARNING));
|
||||||
$this->smarty->clearAssign('blar');
|
$this->smarty->clearAssign('blar');
|
||||||
$this->assertEquals('foobar', $this->smarty->fetch('eval:{$foo}{$bar}{$blar}'));
|
$this->assertEquals('foobar', $this->smarty->fetch('eval:{$foo}{$bar}{$blar}'));
|
||||||
}
|
}
|
||||||
@@ -46,7 +46,7 @@ class ClearAssignTest extends PHPUnit_Smarty
|
|||||||
*/
|
*/
|
||||||
public function testArrayClearAssign()
|
public function testArrayClearAssign()
|
||||||
{
|
{
|
||||||
$this->smarty->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE));
|
$this->smarty->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE | E_WARNING));
|
||||||
$this->smarty->clearAssign(array('blar', 'foo'));
|
$this->smarty->clearAssign(array('blar', 'foo'));
|
||||||
$this->assertEquals('bar', $this->smarty->fetch('eval:{$foo}{$bar}{$blar}'));
|
$this->assertEquals('bar', $this->smarty->fetch('eval:{$foo}{$bar}{$blar}'));
|
||||||
}
|
}
|
||||||
|
@@ -44,7 +44,7 @@ class CompileForeachTest extends PHPUnit_Smarty
|
|||||||
$this->smarty->assign('foo', $foo);
|
$this->smarty->assign('foo', $foo);
|
||||||
} else {
|
} else {
|
||||||
// unassigned $from parameter
|
// unassigned $from parameter
|
||||||
$this->smarty->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE));
|
$this->smarty->setErrorReporting(error_reporting() & ~(E_NOTICE | E_USER_NOTICE | E_WARNING));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->assertEquals($result, $this->smarty->fetch($file), "testForeach - {$code} - {$testName}");
|
$this->assertEquals($result, $this->smarty->fetch($file), "testForeach - {$code} - {$testName}");
|
||||||
|
@@ -275,7 +275,7 @@ class PluginFunctionHtmlCheckboxesTest extends PHPUnit_Smarty
|
|||||||
|
|
||||||
protected $_errors = array();
|
protected $_errors = array();
|
||||||
|
|
||||||
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext)
|
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext = [])
|
||||||
{
|
{
|
||||||
$this->_errors[] = $errstr;
|
$this->_errors[] = $errstr;
|
||||||
}
|
}
|
||||||
|
@@ -369,7 +369,7 @@ class PluginFunctionHtmlOptionsTest extends PHPUnit_Smarty
|
|||||||
|
|
||||||
protected $_errors = array();
|
protected $_errors = array();
|
||||||
|
|
||||||
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext)
|
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext = [])
|
||||||
{
|
{
|
||||||
$this->_errors[] = $errstr;
|
$this->_errors[] = $errstr;
|
||||||
}
|
}
|
||||||
|
@@ -275,7 +275,7 @@ class PluginFunctionHtmlRadiosTest extends PHPUnit_Smarty
|
|||||||
|
|
||||||
protected $_errors = array();
|
protected $_errors = array();
|
||||||
|
|
||||||
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext)
|
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext = [])
|
||||||
{
|
{
|
||||||
$this->_errors[] = $errstr;
|
$this->_errors[] = $errstr;
|
||||||
}
|
}
|
||||||
|
@@ -78,11 +78,13 @@ class ConstantsTest extends PHPUnit_Smarty
|
|||||||
}
|
}
|
||||||
public function testConstantsUndefined()
|
public function testConstantsUndefined()
|
||||||
{
|
{
|
||||||
|
$this->smarty->setErrorReporting(E_ALL & ~E_WARNING & ~E_NOTICE);
|
||||||
$tpl = $this->smarty->createTemplate('string:{$smarty.const.MYCONSTANT2}');
|
$tpl = $this->smarty->createTemplate('string:{$smarty.const.MYCONSTANT2}');
|
||||||
$this->assertEquals("", $this->smarty->fetch($tpl));
|
$this->assertEquals("", $this->smarty->fetch($tpl));
|
||||||
}
|
}
|
||||||
public function testConstantsUndefined2()
|
public function testConstantsUndefined2()
|
||||||
{
|
{
|
||||||
|
$this->smarty->setErrorReporting(E_ALL & ~E_WARNING & ~E_NOTICE);
|
||||||
$tpl = $this->smarty->createTemplate('eval:{$foo = MYCONSTANT2}{$foo}');
|
$tpl = $this->smarty->createTemplate('eval:{$foo = MYCONSTANT2}{$foo}');
|
||||||
$this->assertEquals("MYCONSTANT2", $this->smarty->fetch($tpl));
|
$this->assertEquals("MYCONSTANT2", $this->smarty->fetch($tpl));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user