You are here

public function BlockContentValidationTest::testValidation in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/block_content/tests/src/Functional/BlockContentValidationTest.php \Drupal\Tests\block_content\Functional\BlockContentValidationTest::testValidation()

Tests the block content validation constraints.

File

core/modules/block_content/tests/src/Functional/BlockContentValidationTest.php, line 22

Class

BlockContentValidationTest
Tests block content validation constraints.

Namespace

Drupal\Tests\block_content\Functional

Code

public function testValidation() {

  // Add a block.
  $description = $this
    ->randomMachineName();
  $block = $this
    ->createBlockContent($description, 'basic');

  // Validate the block.
  $violations = $block
    ->validate();

  // Make sure we have no violations.
  $this
    ->assertCount(0, $violations);

  // Save the block.
  $block
    ->save();

  // Add another block with the same description.
  $block = $this
    ->createBlockContent($description, 'basic');

  // Validate this block.
  $violations = $block
    ->validate();

  // Make sure we have 1 violation.
  $this
    ->assertCount(1, $violations);

  // Make sure the violation is on the info property
  $this
    ->assertEquals('info', $violations[0]
    ->getPropertyPath());

  // Make sure the message is correct.
  $this
    ->assertEquals(new FormattableMarkup('A custom block with block description %value already exists.', [
    '%value' => $block
      ->label(),
  ]), $violations[0]
    ->getMessage());
}