aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/extension/manager.php8
-rw-r--r--tests/extension/manager_test.php13
2 files changed, 19 insertions, 2 deletions
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()));
+ }
+
}