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(); } }