FeedProcessorPluginTest.php

Same filename and directory in other branches
  1. 9 core/modules/aggregator/tests/src/Functional/FeedProcessorPluginTest.php

Namespace

Drupal\Tests\aggregator\Functional

File

core/modules/aggregator/tests/src/Functional/FeedProcessorPluginTest.php

View source
<?php

namespace Drupal\Tests\aggregator\Functional;

use Drupal\aggregator\Entity\Feed;
use Drupal\aggregator\Entity\Item;

/**
 * Tests the processor plugins functionality and discoverability.
 *
 * @group aggregator
 *
 * @see \Drupal\aggregator_test\Plugin\aggregator\processor\TestProcessor.
 */
class FeedProcessorPluginTest extends AggregatorTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() {
        parent::setUp();
        // Enable test plugins.
        $this->enableTestPlugins();
        // Create some nodes.
        $this->createSampleNodes();
    }
    
    /**
     * Test processing functionality.
     */
    public function testProcess() {
        $feed = $this->createFeed();
        $this->updateFeedItems($feed);
        foreach ($feed->items as $iid) {
            $item = Item::load($iid);
            $this->assertStringStartsWith('testProcessor', $item->label());
        }
    }
    
    /**
     * Test deleting functionality.
     */
    public function testDelete() {
        $feed = $this->createFeed();
        $description = $feed->description->value ?: '';
        $this->updateAndDelete($feed, NULL);
        // Make sure the feed title is changed.
        $entities = \Drupal::entityTypeManager()->getStorage('aggregator_feed')
            ->loadByProperties([
            'description' => $description,
        ]);
        $this->assertTrue(empty($entities));
    }
    
    /**
     * Test post-processing functionality.
     */
    public function testPostProcess() {
        $feed = $this->createFeed(NULL, [
            'refresh' => 1800,
        ]);
        $this->updateFeedItems($feed);
        $feed_id = $feed->id();
        // Reset entity cache manually.
        \Drupal::entityTypeManager()->getStorage('aggregator_feed')
            ->resetCache([
            $feed_id,
        ]);
        // Reload the feed to get new values.
        $feed = Feed::load($feed_id);
        // Make sure its refresh rate doubled.
        $this->assertEqual($feed->getRefreshRate(), 3600);
    }

}

Classes

Title Deprecated Summary
FeedProcessorPluginTest Tests the processor plugins functionality and discoverability.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.