annotate core/modules/block/tests/src/Kernel/BlockConfigSchemaTest.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents c75dbcec494b
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\block\Kernel;
Chris@0 4
Chris@0 5 use Drupal\block\Entity\Block;
Chris@0 6 use Drupal\Tests\SchemaCheckTestTrait;
Chris@0 7 use Drupal\KernelTests\KernelTestBase;
Chris@0 8
Chris@0 9 /**
Chris@0 10 * Tests the block config schema.
Chris@0 11 *
Chris@0 12 * @group block
Chris@0 13 */
Chris@0 14 class BlockConfigSchemaTest extends KernelTestBase {
Chris@0 15
Chris@0 16 use SchemaCheckTestTrait;
Chris@0 17
Chris@0 18 /**
Chris@0 19 * {@inheritdoc}
Chris@0 20 */
Chris@0 21 public static $modules = [
Chris@0 22 'block',
Chris@0 23 'aggregator',
Chris@0 24 'book',
Chris@0 25 'block_content',
Chris@0 26 'comment',
Chris@0 27 'forum',
Chris@0 28 'node',
Chris@0 29 'statistics',
Chris@0 30 // BlockManager->getModuleName() calls system_get_info().
Chris@0 31 'system',
Chris@0 32 'taxonomy',
Chris@0 33 'user',
Chris@0 34 'text',
Chris@0 35 ];
Chris@0 36
Chris@0 37 /**
Chris@0 38 * The typed config manager.
Chris@0 39 *
Chris@0 40 * @var \Drupal\Core\Config\TypedConfigManagerInterface
Chris@0 41 */
Chris@0 42 protected $typedConfig;
Chris@0 43
Chris@0 44 /**
Chris@0 45 * The block manager.
Chris@0 46 *
Chris@0 47 * @var \Drupal\Core\Block\BlockManagerInterface
Chris@0 48 */
Chris@0 49 protected $blockManager;
Chris@0 50
Chris@0 51 /**
Chris@0 52 * {@inheritdoc}
Chris@0 53 */
Chris@0 54 protected function setUp() {
Chris@0 55 parent::setUp();
Chris@0 56
Chris@0 57 $this->typedConfig = \Drupal::service('config.typed');
Chris@0 58 $this->blockManager = \Drupal::service('plugin.manager.block');
Chris@0 59 $this->installEntitySchema('block_content');
Chris@0 60 $this->installEntitySchema('taxonomy_term');
Chris@0 61 $this->installEntitySchema('node');
Chris@0 62 $this->installSchema('book', ['book']);
Chris@0 63 }
Chris@0 64
Chris@0 65 /**
Chris@0 66 * Tests the block config schema for block plugins.
Chris@0 67 */
Chris@0 68 public function testBlockConfigSchema() {
Chris@0 69 foreach ($this->blockManager->getDefinitions() as $block_id => $definition) {
Chris@0 70 $id = strtolower($this->randomMachineName());
Chris@0 71 $block = Block::create([
Chris@0 72 'id' => $id,
Chris@0 73 'theme' => 'classy',
Chris@0 74 'weight' => 00,
Chris@0 75 'status' => TRUE,
Chris@0 76 'region' => 'content',
Chris@0 77 'plugin' => $block_id,
Chris@0 78 'settings' => [
Chris@0 79 'label' => $this->randomMachineName(),
Chris@0 80 'provider' => 'system',
Chris@0 81 'label_display' => FALSE,
Chris@0 82 ],
Chris@0 83 'visibility' => [],
Chris@0 84 ]);
Chris@0 85 $block->save();
Chris@0 86
Chris@0 87 $config = $this->config("block.block.$id");
Chris@0 88 $this->assertEqual($config->get('id'), $id);
Chris@0 89 $this->assertConfigSchema($this->typedConfig, $config->getName(), $config->get());
Chris@0 90 }
Chris@0 91 }
Chris@0 92
Chris@0 93 }