From 58237ba0b26f52a5634adf81f73492fea3961c3b Mon Sep 17 00:00:00 2001 From: webchick Date: Fri, 11 Nov 2011 11:53:38 -0800 Subject: Issue #1049284 by xjm: Fixed Running update.php to flush caches no longer works unless there are updates pending. --- modules/simpletest/tests/update_script_test.module | 17 +++++++++++++++++ modules/system/system.test | 15 ++++++++++++--- update.php | 3 +++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/modules/simpletest/tests/update_script_test.module b/modules/simpletest/tests/update_script_test.module index b3d9bbc7f..beb5a71ec 100644 --- a/modules/simpletest/tests/update_script_test.module +++ b/modules/simpletest/tests/update_script_test.module @@ -1 +1,18 @@ drupalGet($this->update_url, array('external' => TRUE)); $this->drupalPost(NULL, array(), t('Continue')); $this->assertText(t('No pending updates.'), t('End of update process was reached.')); + // Confirm that all caches were cleared. + $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared when there were no requirements warnings or errors.'); // If there is a requirements warning, we expect it to be initially // displayed, but clicking the link to proceed should allow us to go - // through the rest of the update process uninterrupted. (First run this - // test with pending updates to make sure they can be run successfully; - // then try again without pending updates to make sure that works too.) + // through the rest of the update process uninterrupted. + + // First, run this test with pending updates to make sure they can be run + // successfully. variable_set('update_script_test_requirement_type', REQUIREMENT_WARNING); drupal_set_installed_schema_version('update_script_test', drupal_get_installed_schema_version('update_script_test') - 1); $this->drupalGet($this->update_url, array('external' => TRUE)); @@ -2148,12 +2151,18 @@ class UpdateScriptFunctionalTest extends DrupalWebTestCase { $this->drupalPost(NULL, array(), t('Continue')); $this->drupalPost(NULL, array(), t('Apply pending updates')); $this->assertText(t('The update_script_test_update_7000() update was executed successfully.'), t('End of update process was reached.')); + // Confirm that all caches were cleared. + $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared after resolving a requirements warning and applying updates.'); + + // Now try again without pending updates to make sure that works too. $this->drupalGet($this->update_url, array('external' => TRUE)); $this->assertText('This is a requirements warning provided by the update_script_test module.'); $this->clickLink('try again'); $this->assertNoText('This is a requirements warning provided by the update_script_test module.'); $this->drupalPost(NULL, array(), t('Continue')); $this->assertText(t('No pending updates.'), t('End of update process was reached.')); + // Confirm that all caches were cleared. + $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared after applying updates and re-running the script.'); // If there is a requirements error, it should be displayed even after // clicking the link to proceed (since the problem that triggered the error diff --git a/update.php b/update.php index 5e771a824..2b5d2218b 100644 --- a/update.php +++ b/update.php @@ -108,6 +108,9 @@ function update_script_selection_form($form, &$form_state) { $form['links'] = array( '#markup' => theme('item_list', array('items' => update_helpful_links())), ); + + // No updates to run, so caches won't get flushed later. Clear them now. + drupal_flush_all_caches(); } else { $form['help'] = array( -- cgit v1.2.3