From 99b782b257a050ff876e80ab7bcd7c3705eb6147 Mon Sep 17 00:00:00 2001 From: uwetews Date: Mon, 17 Apr 2017 04:20:34 +0200 Subject: [PATCH] add PHP function tests --- .../PHPfunctions/PhpFunctionTest.php | 175 ++++++++++++++++++ .../ValueTests/PHPfunctions/cache/dummy.txt | 0 .../PHPfunctions/templates_c/dummy.txt | 0 3 files changed, 175 insertions(+) create mode 100644 tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/PhpFunctionTest.php create mode 100644 tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/cache/dummy.txt create mode 100644 tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/templates_c/dummy.txt diff --git a/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/PhpFunctionTest.php b/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/PhpFunctionTest.php new file mode 100644 index 00000000..0556cee4 --- /dev/null +++ b/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/PhpFunctionTest.php @@ -0,0 +1,175 @@ +setUpSmarty(dirname(__FILE__)); + } + + public function testInit() + { + $this->cleanDirs(); + } + + /** + * test PHP empty() on variables true + */ + public function testEmpty1() + { + $this->smarty->disableSecurity(); + $this->smarty->assign('var', array(null, + false, + (int) 0, + (float) 0.0, + '', + array())); + $expected = ' true , true , true , true , true , true , true , true '; + $this->assertEquals($expected, $this->smarty->fetch('string:{strip}{if empty($var[0])} true {else} false {/IF} + ,{if empty($var[1])} true {else} false {/IF} + ,{if empty($var[2])} true {else} false {/IF} + ,{if empty($var[3])} true {else} false {/IF} + ,{if empty($var[4])} true {else} false {/IF} + ,{if empty($var[5])} true {else} false {/IF} + ,{if empty($var[6])} true {else} false {/IF} + ,{if empty($varr)} true {else} false {/IF} + ')); + } + + /** + * test PHP empty() on function result true + */ + public function testEmpty2() + { + $this->smarty->disableSecurity(); + $this->smarty->assign('var', array(null, + false, + (int) 0, + (float) 0.0, + '', + array())); + $expected = ' true , true , true , true , true , true '; + $this->assertEquals($expected, $this->smarty->fetch('string:{strip}{if empty(pass($var[0]))} true {else} false {/IF} + ,{if empty(pass($var[1]))} true {else} false {/IF} + ,{if empty(pass($var[2]))} true {else} false {/IF} + ,{if empty(pass($var[3]))} true {else} false {/IF} + ,{if empty(pass($var[4]))} true {else} false {/IF} + ,{if empty(pass($var[5]))} true {else} false {/IF} + ')); + } + /** + * test PHP empty() on function result false + */ + public function testEmpty3() + { + $this->smarty->disableSecurity(); + $this->smarty->assign('var', array(true, + (int) 1, + (float) 0.1, + ' ', + array(1))); + $expected = ' false , false , false , false , false '; + $this->assertEquals($expected, $this->smarty->fetch('string:{strip}{if empty(pass($var[0]))} true {else} false {/IF} + ,{if empty(pass($var[1]))} true {else} false {/IF} + ,{if empty(pass($var[2]))} true {else} false {/IF} + ,{if empty(pass($var[3]))} true {else} false {/IF} + ,{if empty(pass($var[4]))} true {else} false {/IF} + ')); + } + /** + * test PHP empty() on object + */ + public function testEmpty4() + { + $this->smarty->disableSecurity(); + $this->smarty->assign('var', new TestIsset()); + $expected = ' true , false , false , true , true , true , false '; + $this->assertEquals($expected, $this->smarty->fetch('string:{strip}{if empty($var->isNull)} true {else} false {/IF} + ,{if empty($var->isSet)} true {else} false {/IF} + ,{if empty($var->arr[\'isSet\'])} true {else} false {/IF} + ,{if empty($var->arr[\'isNull\'])} true {else} false {/IF} + ,{if empty($var->arr[\'foo\'])} true {else} false {/IF} + ,{if empty($var->pass(null))} true {else} false {/IF} + ,{if empty($var->pass(1))} true {else} false {/IF} + ')); + } + /** + * test PHP isset() on variables and functions + */ + public function testIsset1() + { + $this->smarty->disableSecurity(); + $this->smarty->assign('isNull', null); + $this->smarty->assign('isSet', 1); + $this->smarty->assign('arr', array('isNull' => null, 'isSet' => 1)); + $expected = ' false , true , false , true , false , false , false , true '; + $this->assertEquals($expected, $this->smarty->fetch('string:{strip}{if isset($isNull)} true {else} false {/IF} + ,{if isset($isSet)} true {else} false {/IF} + ,{if isset($foo)} true {else} false {/IF} + ,{if isset($arr[\'isSet\'])} true {else} false {/IF} + ,{if isset($arr[\'isNull\'])} true {else} false {/IF} + ,{if isset($arr[\'foo\'])} true {else} false {/IF} + ,{if isset(pass(null))} true {else} false {/IF} + ,{if isset(pass(1))} true {else} false {/IF} + ')); + } + /** + * test PHP isset() on object + */ + public function testIsset2() + { + $this->smarty->disableSecurity(); + $this->smarty->assign('var', new TestIsset()); + $expected = ' false , true , true , false , false , false , true '; + $this->assertEquals($expected, $this->smarty->fetch('string:{strip}{if isset($var->isNull)} true {else} false {/IF} + ,{if isset($var->isSet)} true {else} false {/IF} + ,{if isset($var->arr[\'isSet\'])} true {else} false {/IF} + ,{if isset($var->arr[\'isNull\'])} true {else} false {/IF} + ,{if isset($var->arr[\'foo\'])} true {else} false {/IF} + ,{if isset($var->pass(null))} true {else} false {/IF} + ,{if isset($var->pass(1))} true {else} false {/IF} + ')); + } +} + +/** + * @param mixed $v + * + * @return mixed + */ +function pass($v) { + return $v; +} + +/** + * Class TestIsset + */ +class TestIsset { + public $isNull = null; + public $isSet = 1; + public $arr = array('isNull' => null, 'isSet' => 1); + + /** + * @param mixed $v + * + * @return mixed + */ + public function pass($v) { + return $v; + } +} \ No newline at end of file diff --git a/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/cache/dummy.txt b/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/cache/dummy.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/templates_c/dummy.txt b/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/templates_c/dummy.txt new file mode 100644 index 00000000..e69de29b