<?php

/**
 * @file
 * Tests for plugins/FeedsSyndicationParser.inc.
 */

/**
 * Test single feeds.
 */
class FeedsSyndicationParserTestCase extends FeedsWebTestCase {
  public static function getInfo() {
    return array(
      'name' => 'Syndication parsers',
      'description' => 'Regression tests for syndication parsers Common syndication and SimplePie. Tests parsers against a set of feeds in the context of Feeds module. <strong>Requires SimplePie parser to be configured correctly.</strong>',
      'group' => 'Feeds',
      'dependencies' => array('libraries'),
    );
  }

  /**
   * Set up test.
   */
  public function setUp() {
    parent::setUp(array('libraries'));
  }

  /**
   * Run tests.
   */
  public function test() {
    $this->createImporterConfiguration('Syndication', 'syndication');

    foreach (array('FeedsSyndicationParser', 'FeedsSimplePieParser') as $parser) {
      $this->setPlugin('syndication', $parser);
      foreach ($this->feedUrls() as $url => $assertions) {
        $this->createFeedNode('syndication', $url);
        $this->assertText('Created ' . $assertions['item_count'] . ' nodes');
      }
    }
  }

  /**
   * Return an array of test feeds.
   */
  protected function feedUrls() {
    $path = $GLOBALS['base_url'] . '/' . drupal_get_path('module', 'feeds') . '/tests/feeds/';
    return array(
      "{$path}developmentseed.rss2" => array(
        'item_count' => 10,
      ),
      "{$path}feed_without_guid.rss2" => array(
        'item_count' => 10,
      ),
    );
  }
}
