mirror of
https://github.com/smarty-php/smarty.git
synced 2025-10-07 17:54:38 +02:00
Adds support for PHP8.0, dropping support for PHP7.0 and below. Backwards incompatible changes: - Dropped support for php asp tags in templates (removed from php since php7.0) - Dropped deprecated API calls that where only accessible through SmartyBC - Dropped support for {php} and {include_php} tags and embedded PHP in templates. Embedded PHP will now be passed through as is. - Removed all PHP_VERSION_ID and compare_version checks and conditional code blocks that are now no longer required - Dropped deprecated SMARTY_RESOURCE_CHAR_SET and SMARTY_RESOURCE_DATE_FORMAT constants - Dropped deprecated Smarty::muteExpectedErrors and Smarty::unmuteExpectedErrors API methods - Dropped deprecated $smarty->getVariable() method. Use $smarty->getTemplateVars() instead. - $smarty->registerResource() no longer accepts an array of callback functions See the changelog for more details. Switched CI from Travis to Github CI.
148 lines
4.2 KiB
PHP
148 lines
4.2 KiB
PHP
<?php
|
|
/**
|
|
* Smarty PHPunit tests for cache resource file
|
|
*
|
|
* @package PHPunit
|
|
* @author Uwe Tews
|
|
*/
|
|
|
|
/**
|
|
* class for cache resource file tests
|
|
*
|
|
* @runTestsInSeparateProcess
|
|
* @preserveGlobalState disabled
|
|
* @backupStaticAttributes enabled
|
|
*/
|
|
class HttpModifiedSinceTest extends PHPUnit_Smarty
|
|
{
|
|
|
|
public function setUp(): void
|
|
{
|
|
$this->setUpSmarty(dirname(__FILE__));
|
|
}
|
|
|
|
public function testInit()
|
|
{
|
|
$this->cleanDirs();
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public function testDisabled()
|
|
{
|
|
$_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'] = true;
|
|
$_SERVER['SMARTY_PHPUNIT_HEADERS'] = array();
|
|
|
|
$this->smarty->setCacheModifiedCheck(false);
|
|
$this->smarty->caching = true;
|
|
$this->smarty->cache_lifetime = 20;
|
|
ob_start();
|
|
$this->smarty->display('helloworld.tpl');
|
|
$output = ob_get_contents();
|
|
ob_end_clean();
|
|
$this->assertEquals('hello world', $output);
|
|
$this->assertEquals('', join("\r\n", $_SERVER['SMARTY_PHPUNIT_HEADERS']));
|
|
|
|
unset($_SERVER['HTTP_IF_MODIFIED_SINCE']);
|
|
unset($_SERVER['SMARTY_PHPUNIT_HEADERS']);
|
|
unset($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS']);
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public function testEnabledUncached()
|
|
{
|
|
$_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'] = true;
|
|
$_SERVER['SMARTY_PHPUNIT_HEADERS'] = array();
|
|
|
|
$this->smarty->setCacheModifiedCheck(true);
|
|
$this->smarty->caching = false;
|
|
$this->smarty->cache_lifetime = 20;
|
|
ob_start();
|
|
$this->smarty->display('helloworld.tpl');
|
|
$output = ob_get_contents();
|
|
ob_end_clean();
|
|
$this->assertEquals('hello world', $output);
|
|
$this->assertEquals('', join("\r\n", $_SERVER['SMARTY_PHPUNIT_HEADERS']));
|
|
|
|
unset($_SERVER['HTTP_IF_MODIFIED_SINCE']);
|
|
unset($_SERVER['SMARTY_PHPUNIT_HEADERS']);
|
|
unset($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS']);
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public function testEnabledCached()
|
|
{
|
|
$_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'] = true;
|
|
$_SERVER['SMARTY_PHPUNIT_HEADERS'] = array();
|
|
|
|
$this->smarty->setCacheModifiedCheck(true);
|
|
$this->smarty->caching = true;
|
|
$this->smarty->cache_lifetime = 20;
|
|
|
|
ob_start();
|
|
$l1 = ob_get_level();
|
|
$this->smarty->display('helloworld.tpl');
|
|
$l2 = ob_get_level();
|
|
$output = ob_get_contents();
|
|
ob_end_clean();
|
|
$this->assertEquals('hello world', $output);
|
|
$t1 = time();
|
|
$t2 = strtotime(substr( $_SERVER['SMARTY_PHPUNIT_HEADERS'][0],15));
|
|
$this->assertTrue(($t2-$t1) <= 1);
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public function testEnabledCached2()
|
|
{
|
|
|
|
$_SERVER['SMARTY_PHPUNIT_HEADERS'] = array();
|
|
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = gmdate('D, d M Y H:i:s', time() - 3600) . ' GMT';
|
|
$this->smarty->setCacheModifiedCheck(true);
|
|
$this->smarty->caching = true;
|
|
$this->smarty->cache_lifetime = 20;
|
|
ob_start();
|
|
$l3 = ob_get_level();
|
|
$this->smarty->display('helloworld.tpl');
|
|
$l4 = ob_get_level();
|
|
$output = ob_get_contents();
|
|
ob_end_clean();
|
|
$this->assertEquals('hello world', $output);
|
|
$t1 = time();
|
|
$t2 = strtotime(substr( $_SERVER['SMARTY_PHPUNIT_HEADERS'][0],15));
|
|
$this->assertTrue(($t2-$t1) <= 1);
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public function testEnabledCached3()
|
|
{
|
|
|
|
$_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.1';
|
|
$_SERVER['SMARTY_PHPUNIT_HEADERS'] = array();
|
|
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = gmdate('D, d M Y H:i:s', time() + 10) . ' GMT';
|
|
$this->smarty->setCacheModifiedCheck(true);
|
|
$this->smarty->caching = true;
|
|
$this->smarty->cache_lifetime = 20;
|
|
ob_start();
|
|
$l5 = ob_get_level();
|
|
$this->smarty->display('helloworld.tpl');
|
|
$l6 = ob_get_level();
|
|
$output = ob_get_contents();
|
|
ob_end_clean();
|
|
$this->assertEquals('', $output);
|
|
$this->assertEquals('304 Not Modified', join("\r\n", $_SERVER['SMARTY_PHPUNIT_HEADERS']));
|
|
|
|
unset($_SERVER['HTTP_IF_MODIFIED_SINCE']);
|
|
unset($_SERVER['SMARTY_PHPUNIT_HEADERS']);
|
|
unset($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS']);
|
|
}
|
|
}
|