Version 1
[yaffs-website] / web / core / modules / aggregator / src / Tests / AggregatorCronTest.php
diff --git a/web/core/modules/aggregator/src/Tests/AggregatorCronTest.php b/web/core/modules/aggregator/src/Tests/AggregatorCronTest.php
new file mode 100644 (file)
index 0000000..9ebb2d2
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+
+namespace Drupal\aggregator\Tests;
+
+/**
+ * Update feeds on cron.
+ *
+ * @group aggregator
+ */
+class AggregatorCronTest extends AggregatorTestBase {
+  /**
+   * Adds feeds and updates them via cron process.
+   */
+  public function testCron() {
+    // Create feed and test basic updating on cron.
+    $this->createSampleNodes();
+    $feed = $this->createFeed();
+    $this->cronRun();
+    $this->assertEqual(5, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', [':fid' => $feed->id()])->fetchField());
+    $this->deleteFeedItems($feed);
+    $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', [':fid' => $feed->id()])->fetchField());
+    $this->cronRun();
+    $this->assertEqual(5, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', [':fid' => $feed->id()])->fetchField());
+
+    // Test feed locking when queued for update.
+    $this->deleteFeedItems($feed);
+    db_update('aggregator_feed')
+      ->condition('fid', $feed->id())
+      ->fields([
+        'queued' => REQUEST_TIME,
+      ])
+      ->execute();
+    $this->cronRun();
+    $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', [':fid' => $feed->id()])->fetchField());
+    db_update('aggregator_feed')
+      ->condition('fid', $feed->id())
+      ->fields([
+        'queued' => 0,
+      ])
+      ->execute();
+    $this->cronRun();
+    $this->assertEqual(5, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', [':fid' => $feed->id()])->fetchField());
+  }
+
+}