summaryrefslogtreecommitdiff
path: root/tests/UnitTests/SmartyMethodsTests/RegisterModifier/RegisterModifierFirstClassCallablesTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/UnitTests/SmartyMethodsTests/RegisterModifier/RegisterModifierFirstClassCallablesTest.php')
-rw-r--r--tests/UnitTests/SmartyMethodsTests/RegisterModifier/RegisterModifierFirstClassCallablesTest.php76
1 files changed, 37 insertions, 39 deletions
diff --git a/tests/UnitTests/SmartyMethodsTests/RegisterModifier/RegisterModifierFirstClassCallablesTest.php b/tests/UnitTests/SmartyMethodsTests/RegisterModifier/RegisterModifierFirstClassCallablesTest.php
index 18e3fa36..fc99ca7f 100644
--- a/tests/UnitTests/SmartyMethodsTests/RegisterModifier/RegisterModifierFirstClassCallablesTest.php
+++ b/tests/UnitTests/SmartyMethodsTests/RegisterModifier/RegisterModifierFirstClassCallablesTest.php
@@ -1,54 +1,52 @@
<?php
-// first class callables where introduced in PHP 8.1
-if (PHP_VERSION_ID >= 80100) {
- /**
- * class for register modifier with (first class) callables tests
- *
- * @runTestsInSeparateProcess
- * @preserveGlobalState disabled
- * @backupStaticAttributes enabled
- */
- class RegisterModifierFirstClassCallablesTest extends PHPUnit_Smarty
+/**
+ * class for register modifier with (first class) callables tests
+ *
+ * @runTestsInSeparateProcess
+ * @preserveGlobalState disabled
+ * @backupStaticAttributes enabled
+ */
+class RegisterModifierFirstClassCallablesTest extends PHPUnit_Smarty
+{
+ public function setUp(): void
{
- public function setUp(): void
- {
- $this->setUpSmarty(__DIR__);
+ // First-class callable syntax (Closure::fromCallable shorthand) requires PHP 8.1+
+ if (PHP_VERSION_ID < 80100) {
+ $this->markTestSkipped('First-class callables require PHP >= 8.1');
}
+ $this->setUpSmarty(__DIR__);
+ }
- public function testInit()
- {
- $this->cleanDirs();
- }
-
- public function testRegisterFirstClassCallable()
- {
- $this->smarty->registerPlugin(\Smarty\Smarty::PLUGIN_MODIFIER, 'testmodifier', eval('return strrev(...);'));
- $this->assertEquals('mosredna', $this->smarty->fetch('string:{"andersom"|testmodifier}'));
- }
- public function testRegisterFirstClassCallableSameName()
- {
- $this->smarty->registerPlugin(\Smarty\Smarty::PLUGIN_MODIFIER, 'mymodifier', eval('return strrev(...);'));
- $this->assertEquals('mosredna', $this->smarty->fetch('string:{"andersom"|mymodifier}'));
- }
+ public function testRegisterFirstClassCallable()
+ {
+ $this->smarty->registerPlugin(\Smarty\Smarty::PLUGIN_MODIFIER, 'testmodifier', eval('return strrev(...);'));
+ $this->assertEquals('mosredna', $this->smarty->fetch('string:{"andersom"|testmodifier}'));
+ }
- public function testRegisterFirstClassCallableAsFunc()
- {
- $this->smarty->registerPlugin(\Smarty\Smarty::PLUGIN_MODIFIER, 'kprint_r_out', eval('return strrev(...);'));
- $this->smarty->assign('myVar', 'andersom');
- $this->assertEquals('mosredna', $this->smarty->fetch('string:{kprint_r_out($myVar)}'));
- }
+ public function testRegisterFirstClassCallableSameName()
+ {
+ $this->smarty->registerPlugin(\Smarty\Smarty::PLUGIN_MODIFIER, 'mymodifier', eval('return strrev(...);'));
+ $this->assertEquals('mosredna', $this->smarty->fetch('string:{"andersom"|mymodifier}'));
+ }
- public function testRegisterFirstClassCallableSameNameAsPhpFunc()
- {
- $this->smarty->registerPlugin(\Smarty\Smarty::PLUGIN_MODIFIER, 'mymodifierfcc', eval('return strrev(...);'));
- $this->assertEquals('mosredna', $this->smarty->fetch('string:{mymodifierfcc("andersom")}'));
- }
+ public function testRegisterFirstClassCallableAsFunc()
+ {
+ $this->smarty->registerPlugin(\Smarty\Smarty::PLUGIN_MODIFIER, 'kprint_r_out', eval('return strrev(...);'));
+ $this->smarty->assign('myVar', 'andersom');
+ $this->assertEquals('mosredna', $this->smarty->fetch('string:{kprint_r_out($myVar)}'));
+ }
+ public function testRegisterFirstClassCallableSameNameAsPhpFunc()
+ {
+ $this->smarty->registerPlugin(\Smarty\Smarty::PLUGIN_MODIFIER, 'mymodifierfcc', eval('return strrev(...);'));
+ $this->assertEquals('mosredna', $this->smarty->fetch('string:{mymodifierfcc("andersom")}'));
}
+
}
+
function mymodifierfcc($a, $b, $c)
{
return "$a function $b $c";