function BlockContentValidationTest::testValidation

Same name and namespace in other branches
  1. 9 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->assertEqual($violations[0]->getPropertyPath(), 'info');
    // Make sure the message is correct.
    $this->assertEqual($violations[0]->getMessage(), new FormattableMarkup('A custom block with block description %value already exists.', [
        '%value' => $block->label(),
    ]));
}

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