Skip to content

Commit

Permalink
Added some extra unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
wisskid committed Oct 22, 2023
1 parent babec0f commit 9ee3cce
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 6 deletions.
2 changes: 2 additions & 0 deletions src/Compiler/Template.php
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,8 @@ public function processText($text) {
public function getTagCompiler($tag): ?\Smarty\Compile\CompilerInterface {
$tag = strtolower($tag);

$tag = strtolower($tag);

if (isset($this->smarty->security_policy) && !$this->smarty->security_policy->isTrustedTag($tag, $this)) {
return null;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Security.php
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ public function isTrustedStaticClassAccess($class_name, $params, $compiler) {
* @return boolean true if tag is trusted
*/
public function isTrustedTag($tag_name, $compiler) {
$tag_name = strtolower($tag_name);
$tag_name = strtolower($tag_name);

// check for internal always required tags
if (in_array($tag_name, ['assign', 'call'])) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ public function testUnregisterFunction()
public function testUnregisterFunctionNotRegistered()
{
$this->smarty->unregisterPlugin(Smarty::PLUGIN_FUNCTION, 'testfunction');
$this->assertNull($this->smarty->getRegisteredPlugin(Smarty::PLUGIN_FUNCTION, 'testfunction'));
$this->assertNull($this->smarty->getRegisteredPlugin(Smarty::PLUGIN_FUNCTION, 'testfunction'));
}

/**
Expand All @@ -164,18 +164,32 @@ public function testUnregisterFunctionOtherRegistered()
{
$this->smarty->registerPlugin(Smarty::PLUGIN_BLOCK, 'testfunction', 'myfunction');
$this->smarty->unregisterPlugin(Smarty::PLUGIN_FUNCTION, 'testfunction');
$this->assertIsArray($this->smarty->getRegisteredPlugin(Smarty::PLUGIN_BLOCK, 'testfunction'));
$this->assertIsArray($this->smarty->getRegisteredPlugin(Smarty::PLUGIN_BLOCK, 'testfunction'));
}


/**
* Test case (in)sensitivy of plugin functions
* @param $registerName
* @param $templateString
* @return void
* @throws \Smarty\Exception
* @group issue907
* @dataProvider dataProviderForCaseSensitivity
*/
public function testCaseSensitivity() {
$this->smarty->registerPlugin(Smarty::PLUGIN_FUNCTION, 'customTag', 'myfunction');
$this->assertEquals('hello world ', $this->smarty->fetch('string:{customTag}'));
public function testCaseSensitivity($registerName, $templateString) {
$this->smarty->registerPlugin(
Smarty::PLUGIN_FUNCTION,
$registerName,
function($params, $smarty) { return 'function-output'; });
$this->assertEquals('function-output', $this->smarty->fetch('string:' . $templateString));
}

public function dataProviderForCaseSensitivity() {
return [
['customTag', '{customTag}'],
['customtag', '{customtag}'],
];
}

}
Expand Down

0 comments on commit 9ee3cce

Please sign in to comment.