summaryrefslogtreecommitdiff
path: root/modules/system/system.test
diff options
context:
space:
mode:
Diffstat (limited to 'modules/system/system.test')
-rw-r--r--modules/system/system.test23
1 files changed, 23 insertions, 0 deletions
diff --git a/modules/system/system.test b/modules/system/system.test
index 2865bbb25..bc764dde5 100644
--- a/modules/system/system.test
+++ b/modules/system/system.test
@@ -905,6 +905,29 @@ class CronRunTestCase extends DrupalWebTestCase {
$result = variable_get('common_test_cron');
$this->assertEqual($result, 'success', 'Cron correctly handles exceptions thrown during hook_cron() invocations.');
}
+
+ /**
+ * Tests that hook_flush_caches() is not invoked on every single cron run.
+ *
+ * @see system_cron()
+ */
+ 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.');
+ }
+
}
/**