View source
<?php
require_once drupal_get_path('module', 'feeds') . '/tests/feeds_mapper_test.inc';
class FeedsMapperDateTestCase extends FeedsMapperTestCase {
public static function getInfo() {
return array(
'name' => t('Mapper: Date'),
'description' => t('Test Feeds Mapper support for CCK Date fields. <strong>Requires CCK and Date module</strong>.'),
'group' => t('Feeds'),
);
}
public function setUp() {
parent::setUp('feeds', 'feeds_ui', 'ctools', 'job_scheduler', 'content', 'date_api', 'date');
$this
->drupalLogin($this
->drupalCreateUser(array(
'administer content types',
'administer feeds',
'administer nodes',
'administer site configuration',
)));
}
public function test() {
$typename = $this
->createContentType(NULL, array(
'date' => 'date',
'datestamp' => 'datestamp',
'datetime' => 'datetime',
));
$this
->createImporterConfiguration('Date RSS', 'daterss');
$this
->setSettings('daterss', NULL, array(
'content_type' => '',
'import_period' => FEEDS_SCHEDULE_NEVER,
));
$this
->setPlugin('daterss', 'FeedsFileFetcher');
$this
->setPlugin('daterss', 'FeedsSyndicationParser');
$this
->setSettings('daterss', 'FeedsNodeProcessor', array(
'content_type' => $typename,
));
$this
->addMappings('daterss', array(
array(
'source' => 'title',
'target' => 'title',
),
array(
'source' => 'description',
'target' => 'body',
),
array(
'source' => 'timestamp',
'target' => 'field_date:start',
),
array(
'source' => 'timestamp',
'target' => 'field_datestamp:start',
),
));
$this
->importFile('daterss', $this
->absolutePath() . '/tests/feeds/googlenewstz.rss2');
$this
->assertText('Created 6 ' . $typename . ' 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
->assertCCKFieldValue('date', $values[$i - 1]);
$this
->assertCCKFieldValue('datestamp', $values[$i - 1]);
}
}
protected function getFormFieldsNames($field_name, $index) {
if (in_array($field_name, array(
'date',
'datetime',
'datestamp',
))) {
return array(
"field_{$field_name}[{$index}][value][date]",
);
}
else {
return parent::getFormFieldsNames($field_name, $index);
}
}
}