diff --git a/modules/simpletest/simpletest.info b/modules/simpletest/simpletest.info index 26647b7..52a0c60 100644 --- a/modules/simpletest/simpletest.info +++ b/modules/simpletest/simpletest.info @@ -41,7 +41,8 @@ files[] = tests/upgrade/upgrade.test files[] = tests/upgrade/upgrade.comment.test files[] = tests/upgrade/upgrade.filter.test files[] = tests/upgrade/upgrade.forum.test +files[] = tests/upgrade/upgrade.locale.test files[] = tests/upgrade/upgrade.node.test files[] = tests/upgrade/upgrade.taxonomy.test files[] = tests/upgrade/upgrade.upload.test -files[] = tests/upgrade/upgrade.locale.test +files[] = tests/upgrade/upgrade.user.test diff --git a/modules/simpletest/tests/upgrade/drupal-6.user.database.php b/modules/simpletest/tests/upgrade/drupal-6.user.database.php new file mode 100755 index 0000000..772e3f7 --- /dev/null +++ b/modules/simpletest/tests/upgrade/drupal-6.user.database.php @@ -0,0 +1,10 @@ +fields(array( + 'name', + 'value', +)) +->values(array( + 'name' => 'user_mail_register_pending_approval_subject', + 'value' => 's:63:"Account details for !username at !site (pending admin approval)";', +)) +->execute(); diff --git a/modules/simpletest/tests/upgrade/upgrade.user.test b/modules/simpletest/tests/upgrade/upgrade.user.test new file mode 100755 index 0000000..24a410c --- /dev/null +++ b/modules/simpletest/tests/upgrade/upgrade.user.test @@ -0,0 +1,30 @@ + 'User upgrade path', + 'description' => 'User upgrade path tests.', + 'group' => 'Upgrade path', + ); + } + + public function setUp() { + // Path to the database dump files. + $this->databaseDumpFiles = array( + drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-6.bare.database.php', + drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-6.user.database.php', + ); + parent::setUp(); + } + + /** + * Test a successful upgrade. + */ + public function testUserUpgrade() { + $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.')); + $this->assertEqual(variable_get('user_mail_register_pending_approval_subject'), 'Account details for [user:name] at [site:name] (pending admin approval)', 'Old !token format was upgraded to the new core tokens format'); + } +} diff --git a/modules/user/user.install b/modules/user/user.install index 0967818..a85bff4 100644 --- a/modules/user/user.install +++ b/modules/user/user.install @@ -697,29 +697,32 @@ function user_update_7011() { $message = ''; $tokens = array( - '!site-name-token' => '[site:name]', - '!site-url-token' => '[site:url]', - '!user-name-token' => '[user:name]', - '!user-mail-token' => '[user:mail]', - '!site-login-url-token' => '[site:login-url]', - '!site-url-brief-token' => '[site:url-brief]', - '!user-edit-url-token' => '[user:edit-url]', - '!user-one-time-login-url-token' => '[user:one-time-login-url]', - '!user-cancel-url-token' => '[user:cancel-url]', + '!site' => '[site:name]', + '!username' => '[user:name]', + '!mailto' => '[user:mail]', + '!login_uri' => '[site:login-url]', + '!uri_brief' => '[site:url-brief]', + '!edit_uri' => '[user:edit-url]', + '!login_url' => '[user:one-time-login-url]', + '!uri' => '[site:url]', + '!date' => '[date:medium]', '!password' => '', ); $result = db_select('variable', 'v') - ->fields('v', array('name', 'value')) - ->condition('value', db_like('user_mail_') . '%', 'LIKE') + ->fields('v', array('name')) + ->condition('name', db_like('user_mail_') . '%', 'LIKE') ->execute(); foreach ($result as $row) { - if (empty($message) && (strpos($row->value, '!password') !== FALSE)) { - $message = t('The ability to send users their passwords in plain text has been removed in Drupal 7. Your existing email templates have been modified to remove it. You should review these templates to make sure they read properly.', array('@template-url' => url('admin/config/people/accounts'))); - } + if ($value = variable_get($row->name, FALSE)) { + + if (empty($message) && (strpos($value, '!password') !== FALSE)) { + $message = t('The ability to send users their passwords in plain text has been removed in Drupal 7. Your existing email templates have been modified to remove it. You should review these templates to make sure they read properly.', array('@template-url' => url('admin/config/people/accounts'))); + } - variable_set($row->name, str_replace(array_keys($tokens), $tokens, $row->value)); + variable_set($row->name, str_replace(array_keys($tokens), $tokens, $value)); + } } return $message;