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/apc_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/apc_driver_test.php')
| -rw-r--r-- | tests/cache/apc_driver_test.php | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/cache/apc_driver_test.php b/tests/cache/apc_driver_test.php new file mode 100644 index 0000000000..c8b8f82b67 --- /dev/null +++ b/tests/cache/apc_driver_test.php @@ -0,0 +1,91 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2012 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +// Important: apc.enable_cli=1 must be in php.ini. +// http://forums.devshed.com/php-development-5/apc-problem-561290.html +// http://php.net/manual/en/apc.configuration.php + +require_once dirname(__FILE__) . '/common_test_case.php'; + +class phpbb_cache_apc_driver_test extends phpbb_cache_common_test_case +{ + protected static $config; + protected $driver; + + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/config.xml'); + } + + static public function setUpBeforeClass() + { + if (!extension_loaded('apc')) + { + self::markTestSkipped('APC extension is not loaded'); + } + + $php_ini = new phpbb_php_ini; + + if (!$php_ini->get_bool('apc.enabled')) + { + self::markTestSkipped('APC is not enabled. Make sure apc.enabled=1 in php.ini'); + } + + if (PHP_SAPI == 'cli' && !$php_ini->get_bool('apc.enable_cli')) + { + self::markTestSkipped('APC is not enabled for CLI. Set apc.enable_cli=1 in php.ini'); + } + } + + protected function setUp() + { + parent::setUp(); + + $this->driver = new phpbb_cache_driver_apc; + $this->driver->purge(); + } + + 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'"; + + $key = $this->driver->key_prefix . 'sql_' . md5(preg_replace('/[\n\r\s\t]+/', ' ', $sql)); + $this->assertFalse(apc_fetch($key)); + + $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->assertTrue((bool) apc_fetch($key)); + + $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(); + } +} |
