function MemCacheClearCase::testClearCacheLifetime in Zircon Profile 8
Same name in this branch
- 8 modules/memcache/tests/memcache.test \MemCacheClearCase::testClearCacheLifetime()
- 8 modules/memcache/tests/memcache6.test \MemCacheClearCase::testClearCacheLifetime()
Same name and namespace in other branches
- 8.0 modules/memcache/tests/memcache.test \MemCacheClearCase::testClearCacheLifetime()
- 8.0 modules/memcache/tests/memcache6.test \MemCacheClearCase::testClearCacheLifetime()
Test full bin flushes with cache lifetime.
File
- modules/
memcache/ tests/ memcache.test, line 302
Class
- MemCacheClearCase
- Test cache clearing methods.
Code
function testClearCacheLifetime() {
variable_set('cache_lifetime', 600);
$this
->resetVariables();
// Set a cache item with an expiry.
cache_set('test_cid', $this->default_value, $this->default_bin, time() + 3600);
$this
->assertTrue($this
->checkCacheExists('test_cid', $this->default_value), 'Cache item was created successfully.');
// Set a permanent cache item.
cache_set('test_cid_2', $this->default_value, $this->default_bin);
// Clear the page and block caches.
cache_clear_all(MEMCACHE_CONTENT_CLEAR, $this->default_bin);
// Since the cache was cleared within the current session, cache_get()
// should return false.
$this
->assertFalse($this
->checkCacheExists('test_cid', $this->default_value), 'Cache item was cleared successfully.');
// However permament items should stay in place.
$this
->assertTrue($this
->checkCacheExists('test_cid_2', $this->default_value), 'Cache item was not cleared');
// If $_SESSION['cache_flush'] is not set, then the expired item should be returned.
unset($_SESSION['cache_flush']);
$this
->assertTrue($this
->checkCacheExists('test_cid', $this->default_value), 'Cache item is still returned due to minimum cache lifetime.');
// Set a much shorter cache lifetime.
variable_set('cache_content_flush_' . $this->default_bin, 0);
variable_set('cache_lifetime', 1);
cache_set('test_cid_1', $this->default_value, $this->default_bin, time() + 6000);
$this
->assertTrue($this
->checkCacheExists('test_cid', $this->default_value), 'Cache item was created successfully.');
sleep(2);
cache_clear_all(MEMCACHE_CONTENT_CLEAR, $this->default_bin);
$this
->assertFalse($this
->checkCacheExists('test_cid', $this->default_value), 'Cache item is not returned once minimum cache lifetime has expired.');
// Reset the cache clear variables.
variable_set('cache_content_flush_' . $this->default_bin, 0);
variable_set('cache_lifetime', 6000);
$this
->resetVariables();
sleep(1);
// Confirm that cache_lifetime does not take effect for full bin flushes.
cache_set('test_cid', $this->default_value, $this->default_bin, time() + 6000);
$this
->assertTrue($this
->checkCacheExists('test_cid', $this->default_value), 'Cache item was created successfully.');
cache_set('test_cid_2', $this->default_value, $this->default_bin);
$this
->assertTrue($this
->checkCacheExists('test_cid_2', $this->default_value), 'Cache item was created successfully.');
// Now flush the bin.
cache_clear_all('*', $this->default_bin, TRUE);
$this
->assertFalse($this
->checkCacheExists('test_cid', $this->default_value), 'Cache item was cleared successfully.');
$this
->assertFalse($this
->checkCacheExists('test_cid_2', $this->default_value), 'Cache item was cleared successfully.');
}