function FeedValidationTest::testValidation

Same name and namespace in other branches
  1. 8.9.x core/modules/aggregator/tests/src/Kernel/FeedValidationTest.php \Drupal\Tests\aggregator\Kernel\FeedValidationTest::testValidation()

Tests the feed validation constraints.

File

core/modules/aggregator/tests/src/Kernel/FeedValidationTest.php, line 34

Class

FeedValidationTest
Tests feed validation constraints.

Namespace

Drupal\Tests\aggregator\Kernel

Code

public function testValidation() {
  // Add feed.
  $feed = Feed::create([
    'title' => 'Feed 1',
    'url' => 'https://www.drupal.org/planet/rss.xml',
    'refresh' => 900,
  ]);
  $violations = $feed->validate();
  $this->assertCount(0, $violations);
  $feed->save();
  // Add another feed.
  /** @var \Drupal\aggregator\FeedInterface $feed */
  $feed = Feed::create([
    'title' => 'Feed 1',
    'url' => 'https://www.drupal.org/planet/rss.xml',
    'refresh' => 900,
  ]);
  $violations = $feed->validate();
  $this->assertCount(2, $violations);
  $this->assertEquals('title', $violations[0]->getPropertyPath());
  $this->assertEquals(t('A feed named %value already exists. Enter a unique title.', [
    '%value' => $feed->label(),
  ]), $violations[0]->getMessage());
  $this->assertEquals('url', $violations[1]->getPropertyPath());
  $this->assertEquals(t('A feed with this URL %value already exists. Enter a unique URL.', [
    '%value' => $feed->getUrl(),
  ]), $violations[1]->getMessage());
}

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