diff options
| author | Andreas Fischer <bantu@phpbb.com> | 2012-12-03 17:17:50 +0100 |
|---|---|---|
| committer | Andreas Fischer <bantu@phpbb.com> | 2012-12-03 17:17:50 +0100 |
| commit | 49f29259003da180c008a6bb6e0d5605c3a79bd9 (patch) | |
| tree | 13e7ff812d8efec5bec854c1e44d1006dcf50e1c /tests/cache/file_driver_test.php | |
| parent | 34018ed1d63942ff96828d298c10895db1623c9a (diff) | |
| parent | db6b11a3902c27b612d7d6d4696c4cd8cf1f0bdf (diff) | |
| download | forums-49f29259003da180c008a6bb6e0d5605c3a79bd9.tar forums-49f29259003da180c008a6bb6e0d5605c3a79bd9.tar.gz forums-49f29259003da180c008a6bb6e0d5605c3a79bd9.tar.bz2 forums-49f29259003da180c008a6bb6e0d5605c3a79bd9.tar.xz forums-49f29259003da180c008a6bb6e0d5605c3a79bd9.zip | |
Merge remote-tracking branch 'p/ticket/9983' into develop
* p/ticket/9983:
[ticket/9983] Also check generic APC enable/disable.
[ticket/9983] Use APC instead of apc in error messages.
[ticket/9983] Skip tests if APC is not enabled for CLI.
[ticket/9983] Test for apc cache driver.
[ticket/9983] Add phpbb prefix to global variables.
[ticket/9983] Empty line by request.
[ticket/9983] Indeed, it is <?php.
[ticket/9983] Add a test for destroy.
[ticket/9983] Exercise exists also.
[ticket/9983] Add a purge test.
[ticket/9983] Rename test methods.
[ticket/9983] get/put cache test moved to a base class.
[ticket/9983] Create driver in setup in null driver test.
[ticket/9983] Split cache test into per-driver files.
[ticket/9983] Add redis cache driver tests.
Diffstat (limited to 'tests/cache/file_driver_test.php')
| -rw-r--r-- | tests/cache/file_driver_test.php | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/tests/cache/file_driver_test.php b/tests/cache/file_driver_test.php new file mode 100644 index 0000000000..2353940277 --- /dev/null +++ b/tests/cache/file_driver_test.php @@ -0,0 +1,107 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +require_once dirname(__FILE__) . '/common_test_case.php'; + +class phpbb_cache_file_driver_test extends phpbb_cache_common_test_case +{ + private $cache_dir; + protected $driver; + + public function __construct() + { + $this->cache_dir = dirname(__FILE__) . '/../tmp/cache/'; + } + + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/config.xml'); + } + + protected function setUp() + { + parent::setUp(); + + if (file_exists($this->cache_dir)) + { + // cache directory possibly left after aborted + // or failed run earlier + $this->remove_cache_dir(); + } + $this->create_cache_dir(); + + $this->driver = new phpbb_cache_driver_file($this->cache_dir); + } + + protected function tearDown() + { + if (file_exists($this->cache_dir)) + { + $this->remove_cache_dir(); + } + + parent::tearDown(); + } + + private function create_cache_dir() + { + $this->get_test_case_helpers()->makedirs($this->cache_dir); + } + + private function remove_cache_dir() + { + $iterator = new DirectoryIterator($this->cache_dir); + foreach ($iterator as $file) + { + if ($file != '.' && $file != '..') + { + unlink($this->cache_dir . '/' . $file); + } + } + rmdir($this->cache_dir); + } + + public function test_cache_sql() + { + global $db, $cache; + $db = $this->new_dbal(); + $cache = new phpbb_cache_service($this->driver); + + $sql = "SELECT * FROM phpbb_config + WHERE config_name = 'foo'"; + + $cache_path = $this->cache_dir . 'sql_' . md5(preg_replace('/[\n\r\s\t]+/', ' ', $sql)) . '.php'; + $this->assertFileNotExists($cache_path); + + $result = $db->sql_query($sql, 300); + $first_result = $db->sql_fetchrow($result); + $expected = array('config_name' => 'foo', 'config_value' => '23', 'is_dynamic' => 0); + $this->assertEquals($expected, $first_result); + + $this->assertFileExists($cache_path); + + $sql = 'DELETE FROM phpbb_config'; + $result = $db->sql_query($sql); + + $sql = "SELECT * FROM phpbb_config + WHERE config_name = 'foo'"; + $result = $db->sql_query($sql, 300); + + $this->assertEquals($expected, $db->sql_fetchrow($result)); + + $sql = "SELECT * FROM phpbb_config + WHERE config_name = 'foo'"; + $result = $db->sql_query($sql); + + $no_cache_result = $db->sql_fetchrow($result); + $this->assertSame(false, $no_cache_result); + + $db->sql_close(); + } +} |
