Commit c95075ec authored by catch's avatar catch

Issue #996236 by fago, sun, pillarsdotnet: Fixed drupal_flush_all_caches()...

Issue #996236 by fago, sun, pillarsdotnet: Fixed drupal_flush_all_caches() does not clear entity info cache.
parent 8e20a82e
......@@ -7444,6 +7444,8 @@ function drupal_flush_all_caches() {
system_rebuild_theme_data();
drupal_theme_rebuild();
entity_info_cache_clear();
// @todo D8: Split cache flushing from rebuilding.
// @see http://drupal.org/node/996236
if (module_exists('node')) {
......
......@@ -66,3 +66,50 @@ class EntityAPITestCase extends DrupalWebTestCase {
$this->assertTrue(empty($all), 'Deleted all entities.');
}
}
/**
* Tests Entity API base functionality.
*/
class EntityAPIInfoTestCase extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'Entity info',
'description' => 'Makes sure entity info is accurately cached.',
'group' => 'Entity API',
);
}
/**
* Ensures entity info cache is updated after changes.
*/
function testEntityInfoChanges() {
module_enable(array('entity_cache_test'));
$entity_info = entity_get_info();
$this->assertTrue(isset($entity_info['entity_cache_test']), 'Test entity type found.');
// Change the label of the test entity type and make sure changes appear
// after flushing caches.
variable_set('entity_cache_test_label', 'New label.');
drupal_flush_all_caches();
$info = entity_get_info('entity_cache_test');
$this->assertEqual($info['label'], 'New label.', 'New label appears in entity info.');
// Disable the providing module and make sure the entity type is gone.
module_disable(array('entity_cache_test', 'entity_cache_test_dependency'));
$entity_info = entity_get_info();
$this->assertFalse(isset($entity_info['entity_cache_test']), 'Entity type of the providing module is gone.');
}
/**
* Tests entity info cache after enabling a module with a dependency on an entity providing module.
*
* @see entity_cache_test_watchdog()
*/
function testEntityInfoCacheWatchdog() {
module_enable(array('entity_cache_test'));
$info = variable_get('entity_cache_test');
$this->assertEqual($info['label'], 'Entity Cache Test', 'Entity info label is correct.');
$this->assertEqual($info['controller class'], 'DrupalDefaultEntityController', 'Entity controller class info is correct.');
}
}
......@@ -11,7 +11,7 @@
function entity_cache_test_dependency_entity_info() {
return array(
'entity_cache_test' => array(
'label' => 'Entity Cache Test',
'label' => variable_get('entity_cache_test_label', 'Entity Cache Test'),
),
);
}
......@@ -271,19 +271,6 @@ class EnableDisableTestCase extends ModuleTestCase {
$this->assertText(t('The configuration options have been saved.'), t('Modules status has been updated.'));
}
/**
* Tests entity cache after enabling a module with a dependency on an enitity
* providing module.
*
* @see entity_cache_test_watchdog()
*/
function testEntityCache() {
module_enable(array('entity_cache_test'));
$info = variable_get('entity_cache_test');
$this->assertEqual($info['label'], 'Entity Cache Test', 'Entity info label is correct.');
$this->assertEqual($info['controller class'], 'DrupalDefaultEntityController', 'Entity controller class info is correct.');
}
/**
* Disables and uninstalls a module and asserts that it was done correctly.
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment