function CronRunTestCase::testCronCacheExpiration

Tests that hook_flush_caches() is not invoked on every single cron run.

See also

system_cron()

File

modules/system/system.test, line 949

Class

CronRunTestCase

Code

public function testCronCacheExpiration() {
    module_enable(array(
        'system_cron_test',
    ));
    variable_del('system_cron_test_flush_caches');
    // Invoke cron the first time: hook_flush_caches() should be called and then
    // get cached.
    drupal_cron_run();
    $this->assertEqual(variable_get('system_cron_test_flush_caches'), 1, 'hook_flush_caches() was invoked the first time.');
    $cache = cache_get('system_cache_tables');
    $this->assertEqual(empty($cache), FALSE, 'Cache is filled with cache table data.');
    // Run cron again and ensure that hook_flush_caches() is not called.
    variable_del('system_cron_test_flush_caches');
    drupal_cron_run();
    $this->assertNull(variable_get('system_cron_test_flush_caches'), 'hook_flush_caches() was not invoked the second time.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.