You are here

public function FeedValidationTest::testValidation in Drupal 9

Same name and namespace in other branches
  1. 8 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 33

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());
}