You are here

protected function BlockStorageUnitTest::createTests in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/block/src/Tests/BlockStorageUnitTest.php \Drupal\block\Tests\BlockStorageUnitTest::createTests()

Tests the creation of blocks.

1 call to BlockStorageUnitTest::createTests()
BlockStorageUnitTest::testBlockCRUD in core/modules/block/src/Tests/BlockStorageUnitTest.php
Tests CRUD operations.

File

core/modules/block/src/Tests/BlockStorageUnitTest.php, line 59
Contains \Drupal\block\Tests\BlockStorageUnitTest.

Class

BlockStorageUnitTest
Tests the storage of blocks.

Namespace

Drupal\block\Tests

Code

protected function createTests() {

  // Attempt to create a block without a plugin.
  try {
    $entity = $this->controller
      ->create(array());
    $entity
      ->getPlugin();
    $this
      ->fail('A block without a plugin was created with no exception thrown.');
  } catch (PluginException $e) {
    $this
      ->assertEqual('The block \'\' did not specify a plugin.', $e
      ->getMessage(), 'An exception was thrown when a block was created without a plugin.');
  }

  // Create a block with only required values.
  $entity = $this->controller
    ->create(array(
    'id' => 'test_block',
    'theme' => 'stark',
    'plugin' => 'test_html',
  ));
  $entity
    ->save();
  $this
    ->assertTrue($entity instanceof Block, 'The newly created entity is a Block.');

  // Verify all of the block properties.
  $actual_properties = $this
    ->config('block.block.test_block')
    ->get();
  $this
    ->assertTrue(!empty($actual_properties['uuid']), 'The block UUID is set.');
  unset($actual_properties['uuid']);

  // Ensure that default values are filled in.
  $expected_properties = array(
    'langcode' => \Drupal::languageManager()
      ->getDefaultLanguage()
      ->getId(),
    'status' => TRUE,
    'dependencies' => array(
      'module' => array(
        'block_test',
      ),
      'theme' => array(
        'stark',
      ),
    ),
    'id' => 'test_block',
    'theme' => 'stark',
    'region' => '-1',
    'weight' => NULL,
    'provider' => NULL,
    'plugin' => 'test_html',
    'settings' => array(
      'id' => 'test_html',
      'label' => '',
      'provider' => 'block_test',
      'label_display' => BlockInterface::BLOCK_LABEL_VISIBLE,
    ),
    'visibility' => array(),
  );
  $this
    ->assertIdentical($actual_properties, $expected_properties);
  $this
    ->assertTrue($entity
    ->getPlugin() instanceof TestHtmlBlock, 'The entity has an instance of the correct block plugin.');
}