summaryrefslogtreecommitdiff
path: root/modules/aggregator/aggregator.test
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2010-02-26 00:11:58 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2010-02-26 00:11:58 +0000
commit28bca620e10451095b2321a77358384f282caa2b (patch)
tree42d8b701e2e6781ebdbfa8867400684f863e18e2 /modules/aggregator/aggregator.test
parent96b9d512c3e037ded1b076e18fc4b6821e3485a5 (diff)
downloadbrdo-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.test46
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.');
+ }
+}