Skip to content

Commit

Permalink
Added some unit test to study consistent behavior on passing argument…
Browse files Browse the repository at this point in the history
… by reference.
  • Loading branch information
wisskid committed Apr 5, 2024
1 parent 2fc4438 commit c164249
Showing 1 changed file with 65 additions and 0 deletions.
@@ -0,0 +1,65 @@
<?php

class ArgumentMustBePassedByReference961Test extends PHPUnit_Smarty
{

/**
* @group issue961
*/
public function testReset()
{
$smarty = new Smarty();
$smarty->registerPlugin('modifier', 'reset', 'reset');
$templateStr = "string:{reset(\$ar)}";
$smarty->assign('ar', [1,2,3]);
$this->assertEquals(
'1',
$smarty->fetch($templateStr)
);
}

/**
* @group issue961
*/
public function testResetAsModifier()
{
$smarty = new Smarty();
$templateStr = "string:{\$ar|reset}";
$smarty->assign('ar', [1,2,3]);
$this->assertEquals(
'1',
$smarty->fetch($templateStr)
);
}

/**
* @group issue961
*/
public function testResetInExpression()
{
$smarty = new Smarty();
$smarty->registerPlugin('modifier', 'reset', 'reset');
$templateStr = "string:{if reset(\$ar)}ok{/if}";
$smarty->assign('ar', [1,2,3]);
$this->assertEquals(
'ok',
$smarty->fetch($templateStr)
);
}

/**
* @group issue961
* @deprecated
*/
public function testMatch()
{
$smarty = new Smarty();
$smarty->setErrorReporting(E_ALL & ~ E_USER_DEPRECATED);
$smarty->registerPlugin('modifier', 'preg_match', 'preg_match');
$templateStr = 'string:{assign var="match" value=null}{if preg_match(\'/([a-z]{4})/\', "a test", $match)}{$match.1}{/if}';
$this->assertEquals(
'test',
$smarty->fetch($templateStr)
);
}
}

0 comments on commit c164249

Please sign in to comment.