You are here

class UserImportWebTestCase in User Import 8

Same name and namespace in other branches
  1. 6.4 user_import.test \UserImportWebTestCase
  2. 6.2 user_import.test \UserImportWebTestCase
  3. 7.3 user_import.test \UserImportWebTestCase
  4. 7 user_import.test \UserImportWebTestCase
  5. 7.2 user_import.test \UserImportWebTestCase

User Import module base test class.

Hierarchy

Expanded class hierarchy of UserImportWebTestCase

File

./user_import.test, line 6

View source
class UserImportWebTestCase extends DrupalWebTestCase {
  protected $admin_user;
  protected $user_importer;

  /**
   *  Select CSV file (the included example file)
   */
  function settingsFileSelect() {
    $edit = array(
      'file_ftp' => 1,
    );
    $this
      ->drupalPost('admin/people/user_import/add', $edit, t('Next'));

    /* Check file was selected */
    $this
      ->assertText(t('Use Different CSV File'), '[assert] File was selected');
  }
  function settingsEmailMatch(&$edit) {
    $edit['field_match[5][field_match]'] = 'user-email';
  }
  function settingsIgnoreFirstLine(&$edit) {
    $edit['first_line_skip'] = 1;
  }
  function checkAccountsExist($list_failures = FALSE) {
    $failures_list = '';
    $users_email = $this
      ->usersList();
    $failed = array();
    foreach ($users_email as $mail) {
      $user = user_load_by_mail($mail);
      if (empty($user)) {
        $failed[] = $mail;
      }
    }
    if (!empty($failed) && $list_failures) {
      $failures_list = t('. Failed accounts: %failures', array(
        '%failures' => implode(', ', $failed),
      ));
    }
    $this
      ->assertTrue(empty($failed), t('Accounts created for users imported') . $failures_list);
  }

  /**
   *  List of users (email addresses) being imported
   *  To Do - Generate this dynamically, bearing in mind it could be used for stress testing
   */
  function usersList() {
    return array(
      'john@example.com',
      'mandy@example.com',
      'charles@example.com',
      'sarah@example.com',
      'sarah_smith@example.com',
      'helen@example.com',
      'claire@example.com',
      'victoria@example.com',
      'james@example.com',
      'anna@example.com',
      'tino@example.com',
      'sofia@example.com',
      'steve@example.com',
      'lucy@example.com',
      'angie@example.com',
      'carmen@example.com',
      'paul@example.com',
      'jason@example.com',
      'mike@example.com',
      'mary@example.com',
      'simon@example.com',
      'kieran@example.com',
      'arthur@example.com',
      'gwen@example.com',
      'chester@example.com',
      'dorothy@example.com',
      'cameron@example.com',
      'trisha@example.com',
      'david@example.com',
      'peter@example.com',
      'saul@example.com',
      'noel@example.com',
      'matt@example.com',
      'aston@example.com',
      'mille@example.com',
      'ernest@example.com',
    );
  }

  /**
   * Store import ID
   * - set on import settings page, retrieve on later tasks
   */
  function importID($url = NULL) {
    static $import_id = 0;
    if (empty($import_id) && !empty($url)) {
      $args = explode('/', $url);
      $import_id = $args[7];
    }
    return $import_id;
  }

  /**
   * SimpleTest core method: code run after each and every test method.
   */
  function tearDown() {

    // delete accounts of users imported
    $users_email = $this
      ->usersList();
    foreach ($users_email as $mail) {
      $account = user_load_by_mail($mail);
      if (!empty($account)) {
        user_delete($account->uid);
      }
    }

    // delete the import
    $import_id = $this
      ->importID();
    $this
      ->assertTrue(!empty($import_id), t('Import ID: !id', array(
      '!id' => $import_id,
    )));
    _user_import_settings_deletion($import_id);

    // Always call the tearDown() function from the parent class.
    parent::tearDown();
  }

}

Members

Namesort descending Modifiers Type Description Overrides
UserImportWebTestCase::$admin_user protected property
UserImportWebTestCase::$user_importer protected property
UserImportWebTestCase::checkAccountsExist function
UserImportWebTestCase::importID function Store import ID
UserImportWebTestCase::settingsEmailMatch function
UserImportWebTestCase::settingsFileSelect function Select CSV file (the included example file)
UserImportWebTestCase::settingsIgnoreFirstLine function
UserImportWebTestCase::tearDown function SimpleTest core method: code run after each and every test method.
UserImportWebTestCase::usersList function List of users (email addresses) being imported To Do - Generate this dynamically, bearing in mind it could be used for stress testing