mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
Merge branch '41997-26' of git://github.com/samhemelryk/moodle
This commit is contained in:
commit
e360a68adc
3 changed files with 79 additions and 16 deletions
2
cache/classes/definition.php
vendored
2
cache/classes/definition.php
vendored
|
@ -824,7 +824,7 @@ class cache_definition {
|
||||||
// Request caches should never use static acceleration - it just doesn't make sense.
|
// Request caches should never use static acceleration - it just doesn't make sense.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return $this->staticacceleration || $this->mode === cache_store::MODE_SESSION;
|
return $this->staticacceleration;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
7
cache/classes/dummystore.php
vendored
7
cache/classes/dummystore.php
vendored
|
@ -113,7 +113,12 @@ class cachestore_dummy extends cache_store {
|
||||||
// store things in its static array.
|
// store things in its static array.
|
||||||
// - If the definition is not using static acceleration then the cache loader won't try to store anything
|
// - If the definition is not using static acceleration then the cache loader won't try to store anything
|
||||||
// and we will need to store it here in order to make sure it is accessible.
|
// and we will need to store it here in order to make sure it is accessible.
|
||||||
$this->persist = !$definition->use_static_acceleration();
|
if ($definition->get_mode() !== self::MODE_APPLICATION) {
|
||||||
|
// Neither the request cache nor the session cache provide static acceleration.
|
||||||
|
$this->persist = true;
|
||||||
|
} else {
|
||||||
|
$this->persist = !$definition->use_static_acceleration();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
86
cache/tests/cache_test.php
vendored
86
cache/tests/cache_test.php
vendored
|
@ -1058,28 +1058,63 @@ class core_cache_testcase extends advanced_testcase {
|
||||||
*/
|
*/
|
||||||
public function test_disable_stores() {
|
public function test_disable_stores() {
|
||||||
$instance = cache_config_phpunittest::instance();
|
$instance = cache_config_phpunittest::instance();
|
||||||
$instance->phpunit_add_definition('phpunit/disabletest', array(
|
$instance->phpunit_add_definition('phpunit/disabletest1', array(
|
||||||
'mode' => cache_store::MODE_APPLICATION,
|
'mode' => cache_store::MODE_APPLICATION,
|
||||||
'component' => 'phpunit',
|
'component' => 'phpunit',
|
||||||
'area' => 'disabletest'
|
'area' => 'disabletest1'
|
||||||
|
));
|
||||||
|
$instance->phpunit_add_definition('phpunit/disabletest2', array(
|
||||||
|
'mode' => cache_store::MODE_SESSION,
|
||||||
|
'component' => 'phpunit',
|
||||||
|
'area' => 'disabletest2'
|
||||||
|
));
|
||||||
|
$instance->phpunit_add_definition('phpunit/disabletest3', array(
|
||||||
|
'mode' => cache_store::MODE_REQUEST,
|
||||||
|
'component' => 'phpunit',
|
||||||
|
'area' => 'disabletest3'
|
||||||
));
|
));
|
||||||
$cache = cache::make('phpunit', 'disabletest');
|
|
||||||
$this->assertInstanceOf('cache_phpunit_application', $cache);
|
|
||||||
$this->assertEquals('cachestore_file', $cache->phpunit_get_store_class());
|
|
||||||
|
|
||||||
$this->assertFalse($cache->get('test'));
|
$caches = array(
|
||||||
$this->assertTrue($cache->set('test', 'test'));
|
'disabletest1' => cache::make('phpunit', 'disabletest1'),
|
||||||
$this->assertEquals('test', $cache->get('test'));
|
'disabletest2' => cache::make('phpunit', 'disabletest2'),
|
||||||
|
'disabletest3' => cache::make('phpunit', 'disabletest3')
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertInstanceOf('cache_phpunit_application', $caches['disabletest1']);
|
||||||
|
$this->assertInstanceOf('cache_phpunit_session', $caches['disabletest2']);
|
||||||
|
$this->assertInstanceOf('cache_phpunit_request', $caches['disabletest3']);
|
||||||
|
|
||||||
|
$this->assertEquals('cachestore_file', $caches['disabletest1']->phpunit_get_store_class());
|
||||||
|
$this->assertEquals('cachestore_session', $caches['disabletest2']->phpunit_get_store_class());
|
||||||
|
$this->assertEquals('cachestore_static', $caches['disabletest3']->phpunit_get_store_class());
|
||||||
|
|
||||||
|
foreach ($caches as $cache) {
|
||||||
|
$this->assertFalse($cache->get('test'));
|
||||||
|
$this->assertTrue($cache->set('test', 'test'));
|
||||||
|
$this->assertEquals('test', $cache->get('test'));
|
||||||
|
}
|
||||||
|
|
||||||
cache_factory::disable_stores();
|
cache_factory::disable_stores();
|
||||||
|
|
||||||
$cache = cache::make('phpunit', 'disabletest');
|
$caches = array(
|
||||||
$this->assertInstanceOf('cache_phpunit_application', $cache);
|
'disabletest1' => cache::make('phpunit', 'disabletest1'),
|
||||||
$this->assertEquals('cachestore_dummy', $cache->phpunit_get_store_class());
|
'disabletest2' => cache::make('phpunit', 'disabletest2'),
|
||||||
|
'disabletest3' => cache::make('phpunit', 'disabletest3')
|
||||||
|
);
|
||||||
|
|
||||||
$this->assertFalse($cache->get('test'));
|
$this->assertInstanceOf('cache_phpunit_application', $caches['disabletest1']);
|
||||||
$this->assertTrue($cache->set('test', 'test'));
|
$this->assertInstanceOf('cache_phpunit_session', $caches['disabletest2']);
|
||||||
$this->assertEquals('test', $cache->get('test'));
|
$this->assertInstanceOf('cache_phpunit_request', $caches['disabletest3']);
|
||||||
|
|
||||||
|
$this->assertEquals('cachestore_dummy', $caches['disabletest1']->phpunit_get_store_class());
|
||||||
|
$this->assertEquals('cachestore_dummy', $caches['disabletest2']->phpunit_get_store_class());
|
||||||
|
$this->assertEquals('cachestore_dummy', $caches['disabletest3']->phpunit_get_store_class());
|
||||||
|
|
||||||
|
foreach ($caches as $cache) {
|
||||||
|
$this->assertFalse($cache->get('test'));
|
||||||
|
$this->assertTrue($cache->set('test', 'test'));
|
||||||
|
$this->assertEquals('test', $cache->get('test'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1108,6 +1143,7 @@ class core_cache_testcase extends advanced_testcase {
|
||||||
$cache = cache::make('phpunit', 'disable');
|
$cache = cache::make('phpunit', 'disable');
|
||||||
$this->assertInstanceOf('cache_disabled', $cache);
|
$this->assertInstanceOf('cache_disabled', $cache);
|
||||||
|
|
||||||
|
// Test an application cache.
|
||||||
$cache = cache::make_from_params(cache_store::MODE_APPLICATION, 'phpunit', 'disable');
|
$cache = cache::make_from_params(cache_store::MODE_APPLICATION, 'phpunit', 'disable');
|
||||||
$this->assertInstanceOf('cache_disabled', $cache);
|
$this->assertInstanceOf('cache_disabled', $cache);
|
||||||
|
|
||||||
|
@ -1118,6 +1154,28 @@ class core_cache_testcase extends advanced_testcase {
|
||||||
$this->assertFalse($cache->delete('test'));
|
$this->assertFalse($cache->delete('test'));
|
||||||
$this->assertTrue($cache->purge());
|
$this->assertTrue($cache->purge());
|
||||||
|
|
||||||
|
// Test a session cache.
|
||||||
|
$cache = cache::make_from_params(cache_store::MODE_SESSION, 'phpunit', 'disable');
|
||||||
|
$this->assertInstanceOf('cache_disabled', $cache);
|
||||||
|
|
||||||
|
$this->assertFalse(file_exists($configfile));
|
||||||
|
|
||||||
|
$this->assertFalse($cache->get('test'));
|
||||||
|
$this->assertFalse($cache->set('test', 'test'));
|
||||||
|
$this->assertFalse($cache->delete('test'));
|
||||||
|
$this->assertTrue($cache->purge());
|
||||||
|
|
||||||
|
// Finally test a request cache.
|
||||||
|
$cache = cache::make_from_params(cache_store::MODE_REQUEST, 'phpunit', 'disable');
|
||||||
|
$this->assertInstanceOf('cache_disabled', $cache);
|
||||||
|
|
||||||
|
$this->assertFalse(file_exists($configfile));
|
||||||
|
|
||||||
|
$this->assertFalse($cache->get('test'));
|
||||||
|
$this->assertFalse($cache->set('test', 'test'));
|
||||||
|
$this->assertFalse($cache->delete('test'));
|
||||||
|
$this->assertTrue($cache->purge());
|
||||||
|
|
||||||
cache_factory::reset();
|
cache_factory::reset();
|
||||||
|
|
||||||
$factory = cache_factory::instance(true);
|
$factory = cache_factory::instance(true);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue