You are here

class BlockContentValidationTest in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/block_content/tests/src/Functional/BlockContentValidationTest.php \Drupal\Tests\block_content\Functional\BlockContentValidationTest
  2. 9 core/modules/block_content/tests/src/Functional/BlockContentValidationTest.php \Drupal\Tests\block_content\Functional\BlockContentValidationTest

Tests block content validation constraints.

@group block_content

Hierarchy

Expanded class hierarchy of BlockContentValidationTest

File

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

Namespace

Drupal\Tests\block_content\Functional
View source
class BlockContentValidationTest extends BlockContentTestBase {

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * Tests the block content validation constraints.
   */
  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());
  }

}

Members