You are here

public function FeedsMapperDateTestCase::test in Feeds 7.2

Same name and namespace in other branches
  1. 6 tests/feeds_mapper_date.test \FeedsMapperDateTestCase::test()
  2. 7 tests/feeds_mapper_date.test \FeedsMapperDateTestCase::test()

Basic test loading a single entry CSV file.

File

tests/feeds_mapper_date.test, line 39
Contains FeedsMapperDateTestCase.

Class

FeedsMapperDateTestCase
Test case for CCK date field mapper mappers/date.inc.

Code

public function test() {
  $this
    ->drupalGet('admin/config/regional/settings');

  // Create content type.
  $typename = $this
    ->createContentType(array(), array(
    'date' => 'date',
    'datestamp' => 'datestamp',
    'datetime' => 'datetime',
  ));

  // Hack to get date fields to not round to every 15 minutes.
  foreach (array(
    'date',
    'datestamp',
    'datetime',
  ) as $field) {
    $field = 'field_' . $field;
    $edit = array(
      'widget_type' => 'date_select',
    );
    $this
      ->drupalPost('admin/structure/types/manage/' . $typename . '/fields/' . $field . '/widget-type', $edit, 'Continue');
    $edit = array(
      'instance[widget][settings][increment]' => 1,
    );
    $this
      ->drupalPost('admin/structure/types/manage/' . $typename . '/fields/' . $field, $edit, 'Save settings');
    $edit = array(
      'widget_type' => 'date_text',
    );
    $this
      ->drupalPost('admin/structure/types/manage/' . $typename . '/fields/' . $field . '/widget-type', $edit, 'Continue');
  }

  // Create and configure importer.
  $this
    ->createImporterConfiguration('Date RSS', 'daterss');
  $this
    ->setSettings('daterss', NULL, array(
    'content_type' => '',
    'import_period' => FEEDS_SCHEDULE_NEVER,
  ));
  $this
    ->setPlugin('daterss', 'FeedsFileFetcher');
  $this
    ->setSettings('daterss', 'FeedsNodeProcessor', array(
    'bundle' => $typename,
  ));
  $this
    ->addMappings('daterss', array(
    0 => array(
      'source' => 'title',
      'target' => 'title',
    ),
    1 => array(
      'source' => 'description',
      'target' => 'body',
    ),
    2 => array(
      'source' => 'timestamp',
      'target' => 'field_date:start',
    ),
    3 => array(
      'source' => 'timestamp',
      'target' => 'field_datestamp:start',
    ),
    4 => array(
      'source' => 'timestamp',
      'target' => 'field_datetime:start',
    ),
  ));
  $edit = array(
    'allowed_extensions' => 'rss2',
  );
  $this
    ->drupalPost('admin/structure/feeds/daterss/settings/FeedsFileFetcher', $edit, 'Save');

  // Import CSV file.
  $this
    ->importFile('daterss', $this
    ->absolutePath() . '/tests/feeds/googlenewstz.rss2');
  $this
    ->assertText('Created 6 nodes');

  // Check the imported nodes.
  $values = array(
    '01/06/2010 - 19:26',
    '01/06/2010 - 10:21',
    '01/06/2010 - 13:42',
    '01/06/2010 - 06:05',
    '01/06/2010 - 11:26',
    '01/07/2010 - 00:26',
  );
  for ($i = 1; $i <= 6; $i++) {
    $this
      ->drupalGet("node/{$i}/edit");
    $this
      ->assertNodeFieldValue('date', $values[$i - 1]);
    $this
      ->assertNodeFieldValue('datestamp', $values[$i - 1]);
    $this
      ->assertNodeFieldValue('datetime', $values[$i - 1]);
  }
}