Index: tests/feedapi_expire.test
===================================================================
RCS file: tests/feedapi_expire.test
diff -N tests/feedapi_expire.test
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tests/feedapi_expire.test	21 Aug 2009 08:28:15 -0000
@@ -0,0 +1,56 @@
+<?php
+// $Id$
+
+require_once(dirname(__FILE__) .'/feedapi_test_case.tinc');
+
+/**
+ * Class for testing FeedAPI cron scheduling.
+ */
+class FeedAPIExpireTestsCase extends FeedAPITestCase {
+
+  /**
+   * Implementation of getInfo().
+   */
+  public static function getInfo() {
+    return array(
+      'name' => t('FeedAPI Expiring'),
+      'description' => t('Creates one feed, refresh it. Manipulates directly the timestamp of the items and see if FeedAPI deletes the outdated items or not.'),
+      'group' => t('FeedAPI'),
+    );
+  }
+
+  /**
+   * Checks cron feed scheduling functionality
+   */
+  function testFeedAPIExpire() {
+    $this->create_type(array_pop($this->get_parsers()));
+    $this->feedapi_user();
+
+    $num = db_result(db_query("SELECT COUNT(*) FROM {feedapi_node_item}"));
+    $this->assertTrue($num == 0, 'At the beginning there are no items');
+
+    $feed_url = "http://novaak.net/test_feed.rss?". $this->randomName();
+    $edit = array(
+      'feedapi[feedapi_url]' => $feed_url,
+      'feedapi[refresh_time]' => FEEDAPI_NEVER_DELETE_OLD,
+    );
+    $this->drupalPost('node/add/'. $this->info->type, $edit, 'Save');
+
+    $node = db_fetch_object(db_query("SELECT nid FROM {feedapi} WHERE url = '%s'", $feed_url));
+    $this->drupalGet("node/{$node->nid}/refresh");
+    $num = db_result(db_query("SELECT COUNT(*) FROM {feedapi_node_item}"));
+    $this->assertTrue($num > 0, 'The feed has at least one item');
+    db_query("UPDATE {feedapi_node_item} SET timestamp = %d", time() - 51840000);
+
+    $edit = array(
+      'feedapi[feedapi_url]' => 'http://novaak.net/empty.rss',
+      'feedapi[items_delete]' => 31536000,
+    );
+    $this->drupalPost("node/{$node->nid}/edit", $edit, 'Save');
+    // Make sure that the feed will be refreshed
+    $this->drupalGet("node/{$node->nid}/refresh");
+    $num = db_result(db_query("SELECT COUNT(*) FROM {feedapi_node_item}"));
+    $this->assertTrue($num == 0, 'The feed hasn\'t got any items');
+  }
+
+}
