Skip to content
Snippets Groups Projects
feeds_parser_syndication.test 1.67 KiB
Newer Older
<?php

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

/**
 * Test single feeds.
 */
class FeedsSyndicationParserTestCase extends FeedsWebTestCase {
      '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',
    // Only download simplepie if the plugin doesn't already exist somewhere.
    // People running tests locally might have it.
    if (!feeds_simplepie_exists()) {
      $this->downloadExtractSimplePie('1.3');
      $this->assertTrue(feeds_simplepie_exists());
      // Reset all the caches!
      $this->resetAll();
    }

    $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,
      ),
    );
  }
}