function UpdateFeedItemTestCase::testUpdateFeedItem
Tests running "update items" from 'admin/config/services/aggregator' page.
File
-
modules/
aggregator/ aggregator.test, line 573
Class
- UpdateFeedItemTestCase
- Tests functionality of updating a feed item in the Aggregator module.
Code
function testUpdateFeedItem() {
$this->createSampleNodes();
// Create a feed and test updating feed items if possible.
$feed = $this->createFeed();
if (!empty($feed)) {
$this->updateFeedItems($feed, $this->getDefaultFeedItemCount());
$this->removeFeedItems($feed);
}
// Delete feed.
$this->deleteFeed($feed);
// Test updating feed items without valid timestamp information.
$edit = array(
'title' => "Feed without publish timestamp",
'url' => $this->getRSS091Sample(),
);
$this->drupalGet($edit['url']);
$this->assertResponse(array(
200,
), format_string('URL !url is accessible', array(
'!url' => $edit['url'],
)));
$this->drupalPost('admin/config/services/aggregator/add/feed', $edit, t('Save'));
$this->assertRaw(t('The feed %name has been added.', array(
'%name' => $edit['title'],
)), format_string('The feed !name has been added.', array(
'!name' => $edit['title'],
)));
$feed = db_query("SELECT * FROM {aggregator_feed} WHERE url = :url", array(
':url' => $edit['url'],
))->fetchObject();
aggregator_refresh($feed);
$before = db_query('SELECT timestamp FROM {aggregator_item} WHERE fid = :fid', array(
':fid' => $feed->fid,
))
->fetchField();
// Sleep for 3 second.
sleep(3);
db_update('aggregator_feed')->condition('fid', $feed->fid)
->fields(array(
'checked' => 0,
'hash' => '',
'etag' => '',
'modified' => 0,
))
->execute();
aggregator_refresh($feed);
$after = db_query('SELECT timestamp FROM {aggregator_item} WHERE fid = :fid', array(
':fid' => $feed->fid,
))
->fetchField();
$this->assertTrue($before === $after, format_string('Publish timestamp of feed item was not updated (!before === !after)', array(
'!before' => $before,
'!after' => $after,
)));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.