diff --git a/phpBB/includes/extension/manager.php b/phpBB/includes/extension/manager.php index 443eaf011b..a6c8ebb3d0 100644 --- a/phpBB/includes/extension/manager.php +++ b/phpBB/includes/extension/manager.php @@ -48,7 +48,7 @@ class phpbb_extension_manager $this->extension_table = $extension_table; $this->cache_name = $cache_name; - $this->extensions = $this->cache->get($this->cache_name); + $this->extensions = ($this->cache) ? $this->cache->get($this->cache_name) : false; if ($this->extensions === false) { @@ -78,7 +78,11 @@ class phpbb_extension_manager } ksort($this->extensions); - $this->cache->put($this->cache_name, $this->extensions); + + if ($this->cache) + { + $this->cache->put($this->cache_name, $this->extensions); + } } /** diff --git a/tests/extension/manager_test.php b/tests/extension/manager_test.php index 70c3543a69..52be88330a 100644 --- a/tests/extension/manager_test.php +++ b/tests/extension/manager_test.php @@ -81,4 +81,17 @@ class phpbb_extension_manager_test extends phpbb_database_test_case $this->assertTrue(phpbb_ext_moo::$purged); } + + public function test_enabled_no_cache() + { + $extension_manager = new phpbb_extension_manager( + $this->new_dbal(), + 'phpbb_ext', + dirname(__FILE__) . '/', + '.php' + ); + + $this->assertEquals(array('foo'), array_keys($extension_manager->all_enabled())); + } + }