123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- /**
- * @file
- * Prepare a codebase and upgrade it in several stages, exercising
- * updatecode's filters.
- * @todo test security-only once one of these modules or core gets a security release.
- */
- class pmUpdateCode extends Drush_TestCase {
- /*
- * Download old core and older contrib releases which will always need updating.
- */
- public function setUp() {
- $this->setUpDrupal('dev', TRUE, '7.0-rc3');
- $options = array(
- 'root' => $this->sites['dev']['root'],
- 'uri' => 'dev',
- 'yes' => NULL,
- 'quiet' => NULL,
- );
- $this->drush('pm-download', array('devel-7.x-1.0-rc1,webform-7.x-3.4-beta1'), $options);
- $this->drush('pm-enable', array('menu', 'devel', 'webform'), $options);
- }
- function testUpdateCode() {
- $options = array(
- 'root' => $this->sites['dev']['root'],
- 'uri' => 'dev',
- 'yes' => NULL,
- 'backup-dir' => UNISH_SANDBOX . '/backups',
- 'self-update' => 0, // Don't try update Drush.
- );
- // Try to upgrade a specific module.
- $this->drush('pm-updatecode', array('devel'), $options + array());
- // Assure that devel was upgraded and webform was not.
- $this->drush('pm-updatecode', array(), $options + array('pipe' => NULL));
- $all = $this->getOutput();
- $this->assertNotContains('devel', $all);
- $this->assertContains('webform', $all);
- // Lock webform, and update core.
- $this->drush('pm-updatecode', array(), $options + array('lock' => 'webform'));
- $list = $this->getOutputAsList(); // For debugging.
- $this->drush('pm-updatecode', array(), $options + array('pipe' => NULL));
- $all = $this->getOutput();
- $this->assertNotContains('drupal', $all, 'Core was updated');
- $this->assertContains('webform', $all, 'Webform was skipped.');
- // Unlock webform, update, and check.
- $this->drush('pm-updatecode', array(), $options + array('unlock' => 'webform', 'no-backup' => NULL));
- $list = $this->getOutputAsList();
- $this->drush('pm-updatecode', array(), $options + array('pipe' => NULL));
- $all = $this->getOutput();
- $this->assertNotContains('webform', $all, 'Webform was updated');
- // Verify that we keep backups as instructed.
- $pattern = 'find %s -iname %s';
- $backup_dir = UNISH_SANDBOX . '/backups';
- $cmd = sprintf($pattern, self::escapeshellarg($backup_dir), escapeshellarg('devel.module'));
- $this->execute($cmd);
- $output = $this->getOutput();
- $this->assertNotEmpty($output);
- $cmd = sprintf($pattern, self::escapeshellarg($backup_dir), escapeshellarg('webform.module'));
- $this->execute($cmd);
- $output = $this->getOutput();
- $this->assertEmpty($output);
- }
- }
|