source: sipes/modules_contrib/feeds/tests/feeds_processor_user.test @ 92213c1

stableversion-3.0
Last change on this file since 92213c1 was 177a560, checked in by José Gregorio Puentes <jpuentes@…>, 8 años ago

se agrego el directorio de modulos contribuidos de drupal

  • Propiedad mode establecida a 100755
File size: 3.4 KB
Línea 
1<?php
2module_load_include('test', 'feeds', 'tests/feeds');
3
4/**
5 * @file
6 * Tests for plugins/FeedsUserProcessor.inc
7 */
8
9/**
10 * Test aggregating a feed as data records.
11 */
12class FeedsCSVtoUsersTest extends FeedsWebTestCase {
13  public static function getInfo() {
14    return array(
15      'name' => 'CSV import to users',
16      'description' => 'Tests a standalone import configuration that uses file fetcher and CSV parser to import users from a CSV file.',
17      'group' => 'Feeds',
18    );
19  }
20
21  /**
22   * Test node creation, refreshing/deleting feeds and feed items.
23   */
24  public function test() {
25    // Create an importer.
26    $this->createImporterConfiguration('User import', 'user_import');
27
28    // Set and configure plugins.
29    $this->setPlugin('user_import', 'FeedsFileFetcher');
30    $this->setPlugin('user_import', 'FeedsCSVParser');
31    $this->setPlugin('user_import', 'FeedsUserProcessor');
32
33    // Go to mapping page and create a couple of mappings.
34    $mappings = array(
35      '0' => array(
36        'source' => 'name',
37        'target' => 'name',
38        'unique' => 0,
39      ),
40      '1' => array(
41        'source' => 'mail',
42        'target' => 'mail',
43        'unique' => 1,
44      ),
45      '2' => array(
46        'source' => 'since',
47        'target' => 'created',
48        'unique' => FALSE,
49      ),
50      '3' => array(
51        'source' => 'password',
52        'target' => 'pass',
53        'unique' => 0,
54      ),
55    );
56    $this->addMappings('user_import', $mappings);
57
58    // Use standalone form.
59    $edit = array(
60      'content_type' => '',
61    );
62    $this->drupalPost('admin/build/feeds/edit/user_import/settings', $edit, 'Save');
63
64    // Create roles and assign one of them to the users to be imported.
65    $manager_rid = $this->drupalCreateRole(array('access content'), 'manager');
66    $admin_rid = $this->drupalCreateRole(array('access content'), 'administrator');
67    $edit = array(
68      "roles[$manager_rid]" => TRUE,
69      "roles[$admin_rid]" => FALSE,
70    );
71    $this->setSettings('user_import', 'FeedsUserProcessor', $edit);
72
73    // Import CSV file.
74    $this->importFile('user_import', $this->absolutePath() .'/tests/feeds/users.csv');
75
76    // Assert result.
77    $this->assertText('Created 4 users.');
78    // 1 user has an invalid email address, all users should be assigned
79    // the manager role.
80    $this->assertText('There was 1 user that could not be imported because either their name or their email was empty or not valid. Check import data and mapping settings on User processor.');
81    $this->drupalGet('admin/user/user');
82    $this->assertText('Morticia');
83    $this->assertText('Fester');
84    $this->assertText('Gomez');
85    $this->assertText('Pugsley');
86    $count = db_result(db_query("SELECT count(*) FROM {users_roles} WHERE rid = %d", $manager_rid));
87    $this->assertEqual($count, 4, t('All imported users were assigned the manager role.'));
88    $count = db_result(db_query("SELECT count(*) FROM {users_roles} WHERE rid = %d", $admin_rid));
89    $this->assertEqual($count, 0, t('No imported user was assigned the administrator role.'));
90
91    // @todo Test status setting, update existing and role settings.
92
93    // Attempt to log in as one of the imported users.
94    $uid = db_result(db_query("SELECT uid FROM {users} WHERE name = 'Morticia'"));
95    $account = user_load($uid);
96    $this->assertTrue($account, 'Imported user account loaded.');
97    $account->pass_raw = 'mort';
98    $this->drupalLogin($account);
99  }
100}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.