AggregatorCronTest.php

Definition of Drupal\aggregator\Tests\AggregatorCronTest.

Namespace

Drupal\aggregator\Tests

File

drupal/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorCronTest.php
View source
<?php

/**
 * @file
 * Definition of Drupal\aggregator\Tests\AggregatorCronTest.
 */
namespace Drupal\aggregator\Tests;

class AggregatorCronTest extends AggregatorTestBase {
  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 = state()
      ->get('system.cron_key');
    $this
      ->createSampleNodes();
    $feed = $this
      ->createFeed();
    $this
      ->cronRun();
    $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
      ->cronRun();
    $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
      ->cronRun();
    $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
      ->cronRun();
    $this
      ->assertEqual(5, db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', array(
      ':fid' => $feed->fid,
    ))
      ->fetchField(), 'Expected number of items in database.');
  }

}

Classes

Namesort descending Description
AggregatorCronTest