Merge branch 'MDL-45603-26' of https://github.com/merrill-oakland/moodle into MOODLE_26_STABLE

This commit is contained in:
Sam Hemelryk
2014-05-20 13:59:33 +12:00
2 changed files with 29 additions and 1 deletions
+2 -1
View File
@@ -718,7 +718,8 @@ class cache_helper {
return $stores;
} else {
$stores = self::get_cache_stores($definition);
if (count($stores) === 0) {
// If mappingsonly is set, having 0 stores is ok.
if ((count($stores) === 0) && (!$definition->is_for_mappings_only())) {
// No suitable stores we found for the definition. We need to come up with a sensible default.
// If this has happened we can be sure that the user has mapped custom stores to either the
// mode of the definition. The first alternative to try is the system default for the mode.
+27
View File
@@ -470,6 +470,33 @@ class core_cache_testcase extends advanced_testcase {
$this->assertEquals('Test has no value really.', $cache->get('Test'));
}
/**
* Test the mappingsonly setting.
*/
public function test_definition_mappings_only() {
$instance = cache_config_phpunittest::instance(true);
$instance->phpunit_add_definition('phpunit/mappingsonly', array(
'mode' => cache_store::MODE_APPLICATION,
'component' => 'phpunit',
'area' => 'mappingsonly',
'mappingsonly' => true
));
$instance->phpunit_add_definition('phpunit/nonmappingsonly', array(
'mode' => cache_store::MODE_APPLICATION,
'component' => 'phpunit',
'area' => 'nonmappingsonly',
'mappingsonly' => false
));
$cacheonly = cache::make('phpunit', 'mappingsonly');
$this->assertInstanceOf('cache_application', $cacheonly);
$this->assertEquals('cachestore_dummy', $cacheonly->phpunit_get_store_class());
$cachenon = cache::make('phpunit', 'nonmappingsonly');
$this->assertInstanceOf('cache_application', $cachenon);
$this->assertEquals('cachestore_file', $cachenon->phpunit_get_store_class());
}
/**
* Test a very basic definition.
*/