diff --git a/includes/common.inc b/includes/common.inc index 1e287f834b177f149307f05f1f34de1b6731730a..1ef681f121a9afdbed0b40a206cd72792bb6a08e 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -7138,7 +7138,7 @@ function drupal_flush_all_caches() { // Don't clear cache_form - in-progress form submissions may break. // Ordered so clearing the page cache will always be the last action. - $core = array('cache', 'cache_filter', 'cache_bootstrap', 'cache_page'); + $core = array('cache', 'cache_path', 'cache_filter', 'cache_bootstrap', 'cache_page'); $cache_tables = array_merge(module_invoke_all('flush_caches'), $core); foreach ($cache_tables as $table) { cache_clear_all('*', $table, TRUE); diff --git a/modules/simpletest/tests/cache.test b/modules/simpletest/tests/cache.test index 43d1fa122c7326c0c1b9bcca55eefa97986740ac..954f575961dc4ef9cb7f1a5e759daeaca0b0afd8 100644 --- a/modules/simpletest/tests/cache.test +++ b/modules/simpletest/tests/cache.test @@ -310,6 +310,27 @@ class CacheClearCase extends CacheTestCase { || $this->checkCacheExists('test_cid_clear3', $this->default_value), t('All cache entries removed when the array exceeded the cache clear threshold.')); } + + /** + * Test drupal_flush_all_caches(). + */ + function testFlushAllCaches() { + // Create cache entries for each flushed cache bin. + $bins = array('cache', 'cache_filter', 'cache_page', 'cache_boostrap', 'cache_path'); + $bins = array_merge(module_invoke_all('flush_caches'), $bins); + foreach ($bins as $id => $bin) { + $id = 'test_cid_clear' . $id; + cache_set($id, $this->default_value, $bin); + } + + // Remove all caches then make sure that they are cleared. + drupal_flush_all_caches(); + + foreach ($bins as $id => $bin) { + $id = 'test_cid_clear' . $id; + $this->assertFalse($this->checkCacheExists($id, $this->default_value, $bin), t('All cache entries removed from @bin.', array('@bin' => $bin))); + } + } } /** diff --git a/modules/system/system.module b/modules/system/system.module index 946ef0c41076355eb0c941f2591e97dc3f09608e..3737af1bc0f8dc9c2a0d4f8c3f199473dab1bf07 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -3004,7 +3004,7 @@ function system_cron() { } } - $core = array('cache', 'cache_filter', 'cache_page', 'cache_form', 'cache_menu'); + $core = array('cache', 'cache_path', 'cache_filter', 'cache_page', 'cache_form', 'cache_menu'); $cache_tables = array_merge(module_invoke_all('flush_caches'), $core); foreach ($cache_tables as $table) { cache_clear_all(NULL, $table);