Issue #1049284 by xjm: Fixed Running update.php to flush caches no longer works unless there are updates pending.
parent
4c99420766
commit
58237ba0b2
|
@ -1 +1,18 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* This file provides testing functionality for update.php.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements hook_flush_caches().
|
||||
*
|
||||
* This sets a message to confirm that all caches are cleared whenever
|
||||
* update.php completes.
|
||||
*
|
||||
* @see UpdateScriptFunctionalTest::testRequirements()
|
||||
*/
|
||||
function update_script_test_flush_caches() {
|
||||
drupal_set_message(t('hook_flush_caches() invoked for update_script_test.module.'));
|
||||
}
|
||||
|
|
|
@ -2133,12 +2133,15 @@ class UpdateScriptFunctionalTest extends DrupalWebTestCase {
|
|||
$this->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
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue