diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-02-26 00:11:58 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-02-26 00:11:58 +0000 |
commit | 28bca620e10451095b2321a77358384f282caa2b (patch) | |
tree | 42d8b701e2e6781ebdbfa8867400684f863e18e2 /modules/aggregator/aggregator.test | |
parent | 96b9d512c3e037ded1b076e18fc4b6821e3485a5 (diff) | |
download | brdo-28bca620e10451095b2321a77358384f282caa2b.tar.gz brdo-28bca620e10451095b2321a77358384f282caa2b.tar.bz2 |
#578676 follow-up by alex_b: Fix endless adding of non-processed aggregator feeds to queue
Diffstat (limited to 'modules/aggregator/aggregator.test')
-rw-r--r-- | modules/aggregator/aggregator.test | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/modules/aggregator/aggregator.test b/modules/aggregator/aggregator.test index 101e11f1d..6837cb854 100644 --- a/modules/aggregator/aggregator.test +++ b/modules/aggregator/aggregator.test @@ -638,3 +638,49 @@ class ImportOPMLTestCase extends AggregatorTestCase { $this->submitImportForm(); } } + +class AggregatorCronTestCase extends AggregatorTestCase { + public static function getInfo() { + return array( + 'name' => 'Update on cron functionality', + 'description' => 'Update feeds on cron.', + 'group' => 'Aggregator' + ); + } + + /** + * Add feeds update them on cron. + */ + public function testCron() { + // Create feed and test basic updating on cron. + global $base_url; + $key = variable_get('cron_key', 'drupal'); + $this->createSampleNodes(); + $feed = $this->createFeed(); + $this->drupalGet($base_url . '/cron.php', array('external' => TRUE, 'query' => array('cron_key' => $key))); + $this->assertEqual(5, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', array(':fid' => $feed->fid))->fetchField(), 'Expected number of items in database.'); + $this->removeFeedItems($feed); + $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', array(':fid' => $feed->fid))->fetchField(), 'Expected number of items in database.'); + $this->drupalGet($base_url . '/cron.php', array('external' => TRUE, 'query' => array('cron_key' => $key))); + $this->assertEqual(5, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', array(':fid' => $feed->fid))->fetchField(), 'Expected number of items in database.'); + + // Test feed locking when queued for update. + $this->removeFeedItems($feed); + db_update('aggregator_feed') + ->condition('fid', $feed->fid) + ->fields(array( + 'queued' => REQUEST_TIME, + )) + ->execute(); + $this->drupalGet($base_url . '/cron.php', array('external' => TRUE, 'query' => array('cron_key' => $key))); + $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', array(':fid' => $feed->fid))->fetchField(), 'Expected number of items in database.'); + db_update('aggregator_feed') + ->condition('fid', $feed->fid) + ->fields(array( + 'queued' => 0, + )) + ->execute(); + $this->drupalGet($base_url . '/cron.php', array('external' => TRUE, 'query' => array('cron_key' => $key))); + $this->assertEqual(5, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', array(':fid' => $feed->fid))->fetchField(), 'Expected number of items in database.'); + } +} |