| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | 
							- <?php
 
- /*
 
-  * @file
 
-  * Contains tests for Translation management
 
-  */
 
- /**
 
-  * Upgrade tests.
 
-  */
 
- class TMGMTUpgradeAlpha1TestCase extends DrupalWebTestCase {
 
-   protected $profile = 'testing';
 
-   static function getInfo() {
 
-     return array(
 
-       'name' => t('Upgrade tests Alpha1'),
 
-       'description' => t('Tests the upgrade path from 7.x-1.0-alpha1'),
 
-       'group' => t('Translation Management'),
 
-     );
 
-   }
 
-   function setUp() {
 
-     // Enable all dependencies.
 
-     parent::setUp(array('entity', 'views', 'translation', 'locale'));
 
-     // Create the tmgmt tables and fill them.
 
-     module_load_include('inc', 'tmgmt', 'tests/tmgmt_alpha1_dump.sql');
 
-     // @todo: Figure out why this is necessary.
 
-     $enabled_modules = db_query("SELECT name FROM {system} where status = 1 and type = 'module'")->fetchCol();
 
-     foreach ($enabled_modules as $enabled_module) {
 
-       module_load_install($enabled_module);
 
-       // Set the schema version to the number of the last update provided
 
-       // by the module.
 
-       $versions = drupal_get_schema_versions($enabled_module);
 
-       $version = $versions ? max($versions) : SCHEMA_INSTALLED;
 
-       db_update('system')
 
-         ->condition('name', $enabled_module)
 
-         ->fields(array('schema_version' => $version))
 
-         ->execute();
 
-     }
 
-     // Set schema version to 0 and then install the tmgmt modules, to simulate
 
-     // an enabling.
 
-     db_update('system')
 
-       ->condition('name', array('tmgmt', 'tmgmt_ui', 'tmgmt_field', 'tmgmt_node', 'tmgmt_test', 'tmgmt_node_ui'))
 
-       ->fields(array(
 
-         'schema_version' => 0,
 
-       ))
 
-       ->execute();
 
-     module_enable(array('tmgmt', 'tmgmt_ui', 'tmgmt_field', 'tmgmt_node', 'tmgmt_test', 'tmgmt_node_ui'));
 
-     // Log in as a user that can run update.php
 
-     $admin = $this->drupalCreateUser(array('administer software updates'));
 
-     $this->drupalLogin($admin);
 
-     $this->performUpgrade();
 
-   }
 
-   /**
 
-    * Verifies that the data has been migrated properly
 
-    */
 
-   function testUpgradePath() {
 
-     // Log in as a user with enough permissions.
 
-     $translator = $this->drupalCreateUser(array('administer tmgmt'));
 
-     $this->drupalLogin($translator);
 
-     // Go to a job and check the review form.
 
-     $this->drupalGet('admin/tmgmt/jobs/1');
 
-     // Make sure the #status values have been set accordingly.
 
-     $this->assertRaw(t('Accepted: @accepted, reviewed: @reviewed, translated: @translated, pending: @pending.', array('@accepted' => 0, '@reviewed' => 0, '@translated' => 2, '@pending' => 0)));
 
-     // Extract the word count field and make sure it's correct.
 
-     $word_count = $this->xpath('//td[contains(@class, :class)]', array(':class' => 'views-field-word-count-1'));
 
-     $this->assertEqual(6, trim((string)reset($word_count)));
 
-     $this->clickLink(t('review'));
 
-     // Needs review icon.
 
-     $this->assertRaw('tmgmt-ui-icon-yellow tmgmt-ui-state-translated');
 
-     // Translated values.
 
-     $this->assertRaw('de_Test content');
 
-     $this->assertRaw('de_This is the body.');
 
-     // Reject button.
 
-     $this->assertRaw('✗');
 
-     // Check that accepted count has been updated correctly.
 
-     $this->drupalGet('admin/tmgmt/jobs/2');
 
-     // Make sure the #status values have been set accordingly.
 
-     $this->assertRaw(t('Accepted: @accepted, reviewed: @reviewed, translated: @translated, pending: @pending.', array('@accepted' => 2, '@reviewed' => 0, '@translated' => 0, '@pending' => 0)));
 
-   }
 
-   /**
 
-    * Perform the upgrade.
 
-    *
 
-    * Copied and adapted from UpgradePathTestCase::performUpgrade().
 
-    *
 
-    * @param $register_errors
 
-    *   Register the errors during the upgrade process as failures.
 
-    * @return
 
-    *   TRUE if the upgrade succeeded, FALSE otherwise.
 
-    */
 
-   protected function performUpgrade($register_errors = TRUE) {
 
-     $update_url = $GLOBALS['base_url'] . '/update.php';
 
-     // Load the first update screen.
 
-     $this->drupalGet($update_url, array('external' => TRUE));
 
-     if (!$this->assertResponse(200)) {
 
-       return FALSE;
 
-     }
 
-     // Continue.
 
-     $this->drupalPost(NULL, array(), t('Continue'));
 
-     if (!$this->assertResponse(200)) {
 
-       return FALSE;
 
-     }
 
-     // The test should pass if there are no pending updates.
 
-     $content = $this->drupalGetContent();
 
-     if (strpos($content, t('No pending updates.')) !== FALSE) {
 
-       $this->pass(t('No pending updates and therefore no upgrade process to test.'));
 
-       $this->pendingUpdates = FALSE;
 
-       return TRUE;
 
-     }
 
-     // Go!
 
-     $this->drupalPost(NULL, array(), t('Apply pending updates'));
 
-     if (!$this->assertResponse(200)) {
 
-       return FALSE;
 
-     }
 
-     // Check for errors during the update process.
 
-     foreach ($this->xpath('//li[@class=:class]', array(':class' => 'failure')) as $element) {
 
-       $message = strip_tags($element->asXML());
 
-       $this->upgradeErrors[] = $message;
 
-       if ($register_errors) {
 
-         $this->fail($message);
 
-       }
 
-     }
 
-     if (!empty($this->upgradeErrors)) {
 
-       // Upgrade failed, the installation might be in an inconsistent state,
 
-       // don't process.
 
-       return FALSE;
 
-     }
 
-     // Check if there still are pending updates.
 
-     $this->drupalGet($update_url, array('external' => TRUE));
 
-     $this->drupalPost(NULL, array(), t('Continue'));
 
-     if (!$this->assertText(t('No pending updates.'), t('No pending updates at the end of the update process.'))) {
 
-       return FALSE;
 
-     }
 
-     // Clear caches.
 
-     $this->checkPermissions(array(), TRUE);
 
-   }
 
- }
 
 
  |