mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-13 20:24:08 +02:00
[task/acm-refactor] Refactor the ACM classes to have a common interface.
They are now refered to as cache drivers rather than ACM classes. The additional utility functions from the original cache class have been moved to the cache_service. The class loader is now instantiated without a cache instance and passed one as soon as it is constructed to allow autoloading the cache classes. PHPBB3-9983
This commit is contained in:
@@ -28,7 +28,7 @@ else
|
||||
require_once $phpbb_root_path . 'includes/constants.php';
|
||||
require_once $phpbb_root_path . 'includes/class_loader.' . $phpEx;
|
||||
|
||||
$class_loader = new phpbb_class_loader($phpbb_root_path, '.' . $phpEx);
|
||||
$class_loader = new phpbb_class_loader($phpbb_root_path, '.php');
|
||||
$class_loader->register();
|
||||
|
||||
require_once 'test_framework/phpbb_test_case_helpers.php';
|
||||
|
40
tests/cache/all_tests.php
vendored
Normal file
40
tests/cache/all_tests.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2010 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
if (!defined('PHPUnit_MAIN_METHOD'))
|
||||
{
|
||||
define('PHPUnit_MAIN_METHOD', 'phpbb_request_all_tests::main');
|
||||
}
|
||||
|
||||
require_once 'test_framework/framework.php';
|
||||
require_once 'PHPUnit/TextUI/TestRunner.php';
|
||||
|
||||
require_once 'cache/cache_test.php';
|
||||
|
||||
class phpbb_cache_all_tests
|
||||
{
|
||||
public static function main()
|
||||
{
|
||||
PHPUnit_TextUI_TestRunner::run(self::suite());
|
||||
}
|
||||
|
||||
public static function suite()
|
||||
{
|
||||
$suite = new PHPUnit_Framework_TestSuite('phpBB Cache System');
|
||||
|
||||
$suite->addTestSuite('phpbb_cache_test');
|
||||
|
||||
return $suite;
|
||||
}
|
||||
}
|
||||
|
||||
if (PHPUnit_MAIN_METHOD == 'phpbb_cache_all_tests::main')
|
||||
{
|
||||
phpbb_cache_all_tests::main();
|
||||
}
|
39
tests/cache/cache_test.php
vendored
Normal file
39
tests/cache/cache_test.php
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @version $Id$
|
||||
* @copyright (c) 2010 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
require_once 'test_framework/framework.php';
|
||||
|
||||
class phpbb_cache_test extends phpbb_test_case
|
||||
{
|
||||
protected function tearDown()
|
||||
{
|
||||
$iterator = new DirectoryIterator('cache/tmp');
|
||||
foreach ($iterator as $file)
|
||||
{
|
||||
if (is_file('cache/tmp/' . $file))
|
||||
{
|
||||
unlink('cache/tmp/' . $file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function test_acm_file()
|
||||
{
|
||||
$acm = new phpbb_cache_driver_file('cache/tmp/');
|
||||
$acm->put('test_key', 'test_value');
|
||||
$acm->save();
|
||||
|
||||
$this->assertEquals(
|
||||
'test_value',
|
||||
$acm->get('test_key'),
|
||||
'File ACM put and get'
|
||||
);
|
||||
}
|
||||
}
|
@@ -8,7 +8,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
class phpbb_cache_mock
|
||||
require '../phpBB/includes/cache/driver/interface.php';
|
||||
|
||||
class phpbb_cache_mock implements phpbb_cache_driver_interface
|
||||
{
|
||||
private $variables = array();
|
||||
|
||||
@@ -22,8 +24,51 @@ class phpbb_cache_mock
|
||||
return false;
|
||||
}
|
||||
|
||||
function put($var_name, $value)
|
||||
function put($var_name, $value, $ttl = 0)
|
||||
{
|
||||
$this->variables[$var_name] = $value;
|
||||
}
|
||||
|
||||
function load()
|
||||
{
|
||||
}
|
||||
function unload()
|
||||
{
|
||||
}
|
||||
function save()
|
||||
{
|
||||
}
|
||||
function tidy()
|
||||
{
|
||||
}
|
||||
function purge()
|
||||
{
|
||||
}
|
||||
function destroy($var_name, $table = '')
|
||||
{
|
||||
}
|
||||
public function _exists($var_name)
|
||||
{
|
||||
}
|
||||
public function sql_load($query)
|
||||
{
|
||||
}
|
||||
public function sql_save($query, &$query_result, $ttl)
|
||||
{
|
||||
}
|
||||
public function sql_exists($query_id)
|
||||
{
|
||||
}
|
||||
public function sql_fetchrow($query_id)
|
||||
{
|
||||
}
|
||||
public function sql_fetchfield($query_id, $field)
|
||||
{
|
||||
}
|
||||
public function sql_rowseek($rownum, $query_id)
|
||||
{
|
||||
}
|
||||
public function sql_freeresult($query_id)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
@@ -10,8 +10,6 @@
|
||||
|
||||
require_once __DIR__ . '/cache_mock.php';
|
||||
|
||||
require_once __DIR__ . '/../../phpBB/includes/class_loader.php';
|
||||
|
||||
class phpbb_class_loader_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function setUp()
|
||||
@@ -63,8 +61,16 @@ class phpbb_class_loader_test extends PHPUnit_Framework_TestCase
|
||||
|
||||
public function test_resolve_cached()
|
||||
{
|
||||
$cache = new phpbb_cache_mock;
|
||||
$cache->put('class_loader', array('phpbb_a_cached_name' => 'a/cached_name'));
|
||||
$cacheMap = array('class_loader' => array('phpbb_a_cached_name' => 'a/cached_name'));
|
||||
|
||||
$cache = $this->getMock('phpbb_cache_driver_interface',
|
||||
array('get', 'put', 'load', 'unload', 'save', 'tidy', 'purge', 'destroy', '_exists',
|
||||
'sql_load', 'sql_save', 'sql_exists', 'sql_fetchrow', 'sql_fetchfield', 'sql_rowseek', 'sql_freeresult'));
|
||||
$cache->expects($this->any())
|
||||
->method('get')
|
||||
->will($this->returnCallback(function($var_name) use ($cacheMap) {
|
||||
return $cacheMap[$var_name];
|
||||
}));
|
||||
|
||||
$prefix = __DIR__ . '/';
|
||||
$class_loader = new phpbb_class_loader($prefix, '.php', $cache);
|
||||
|
Reference in New Issue
Block a user