You are here

class UserImportTest in User Import 5

Same name and namespace in other branches
  1. 8 tests/user_import.test \UserImportTest

Create Invoice node test for Invoices module.

Hierarchy

Expanded class hierarchy of UserImportTest

File

tests/user_import.test, line 6

View source
class UserImportTest extends DrupalTestCase {

  // A global user who may import users and administer configuration.
  var $user_importer;

  // A global user who may import users only with a pre-set configuration.
  var $user_limited_importer;
  function setUp() {

    /* Prepare users */
    $this->admin_user = $this
      ->drupalCreateUserRolePerm(array(
      'administer users',
      'access administration pages',
      'administer site configuration',
    ));
    $this->user_importer = $this
      ->drupalCreateUserRolePerm(array(
      'import users',
    ));
    $this->user_limited_importer = $this
      ->drupalCreateUserRolePerm(array(
      'limited user import',
    ));
    parent::setUp();
  }

  /**
   *  enable necessary modules
   * @param array  $modules      module file names (without .module)
   */
  function enableModules($modules = array()) {
    foreach ($modules as $module) {
      $this
        ->drupalModuleEnable($module);
    }
  }

  /**
   *  Select CSV file (the included example file)
   */
  function settingsFileSelect() {
    $edit = array(
      'file_ftp' => 1,
    );
    $this
      ->drupalPostRequest('admin/user/user_import/add', $edit, '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) {
    $users_email = $this
      ->usersList();
    $failed = array();
    foreach ($users_email as $mail) {
      $user = user_load(array(
        '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(array(
        'mail' => $mail,
      ));
      if (!empty($account)) {
        user_delete(array(), $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
DrupalTestCase::$_cleanupModules property
DrupalTestCase::$_cleanupRoles property
DrupalTestCase::$_cleanupUsers property
DrupalTestCase::$_cleanupVariables property
DrupalTestCase::$_content property
DrupalTestCase::assertCopy function Will trigger a pass if both parameters refer to different objects. Fail otherwise.
DrupalTestCase::assertEqual function Will trigger a pass if the two parameters have the same value only. Otherwise a fail.
DrupalTestCase::assertError function Confirms that an error has occurred and optionally that the error text matches exactly.
DrupalTestCase::assertErrorPattern function Confirms that an error has occurred and that the error text matches a Perl regular expression.
DrupalTestCase::assertIdentical function Will trigger a pass if the two parameters have the same value and same type. Otherwise a fail.
DrupalTestCase::assertIsA function Type and class test. Will pass if class matches the type name or is a subclass or if not an object, but the type is correct.
DrupalTestCase::assertNoErrors function Confirms that no errors have occurred so far in the test method.
DrupalTestCase::assertNotA function Type and class mismatch test. Will pass if class name or underling type does not match the one specified.
DrupalTestCase::assertNotEqual function Will trigger a pass if the two parameters have a different value. Otherwise a fail.
DrupalTestCase::assertNotIdentical function Will trigger a pass if the two parameters have the different value or different type.
DrupalTestCase::assertNotNull function Will be true if the value is set.
DrupalTestCase::assertNoUnwantedPattern function Will trigger a pass if the Perl regex pattern is not present in subject. Fail if found.
DrupalTestCase::assertNoUnwantedRaw function Will trigger a pass if the raw text is NOT found on the loaded page Fail otherwise.
DrupalTestCase::assertNull function Will be true if the value is null.
DrupalTestCase::assertReference function Will trigger a pass if both parameters refer to the same object. Fail otherwise.
DrupalTestCase::assertWantedPattern function Will trigger a pass if the Perl regex pattern is found in the subject. Fail otherwise.
DrupalTestCase::assertWantedRaw function Will trigger a pass if the raw text is found on the loaded page Fail otherwise.
DrupalTestCase::clickLink function Follows a link by name. Will click the first link found with this link text by default, or a later one if an index is given. Match is case insensitive with normalised space. Does make assertations if the click was sucessful or not and it does…
DrupalTestCase::drupalCheckAuth function @abstract Checks to see if we need to send a http-auth header to authenticate when browsing a site.
DrupalTestCase::drupalCreateRolePerm function Create a role / perm combination specified by permissions
DrupalTestCase::drupalCreateUserRolePerm function Creates a user / role / permissions combination specified by permissions
DrupalTestCase::drupalGet function @abstract Brokder for the get function adds the authentication headers if necessary @author Earnest Berry III <earnest.berry@gmail.com>
DrupalTestCase::drupalGetContent function @TODO: needs documentation
DrupalTestCase::drupalLoginUser function Logs in a user with the internal browser
DrupalTestCase::drupalModuleDisable function Disables a drupal module
DrupalTestCase::drupalModuleEnable function Enables a drupal module
DrupalTestCase::drupalPostRequest function Do a post request on a drupal page. It will be done as usual post request with SimpleBrowser
DrupalTestCase::drupalRawPost function @abstract Broker for the post function adds the authentication headers if necessary @author Earnest Berry III <earnest.berry@gmail.com>
DrupalTestCase::DrupalTestCase function
DrupalTestCase::drupalVariableSet function Set a druapl variable and keep track of the changes for tearDown()
DrupalTestCase::randomName function Generates a random string, to be used as name or whatever
DrupalTestCase::run function Just some info for the reporter
UserImportTest::$user_importer property
UserImportTest::$user_limited_importer property
UserImportTest::checkAccountsExist function
UserImportTest::enableModules function * enable necessary modules
UserImportTest::importID function * Store import ID * - set on import settings page, retrieve on later tasks
UserImportTest::settingsEmailMatch function
UserImportTest::settingsFileSelect function * Select CSV file (the included example file)
UserImportTest::settingsIgnoreFirstLine function
UserImportTest::setUp function
UserImportTest::tearDown function SimpleTest core method: code run after each and every test method. Overrides DrupalTestCase::tearDown 1
UserImportTest::usersList function * List of users (email addresses) being imported * To Do - Generate this dynamically, bearing in mind it could be used for stress testing