autoCreateBasicBlockType) { $this->createBlockContentType('basic', TRUE); } $this->adminUser = $this->drupalCreateUser($this->permissions); $this->drupalPlaceBlock('local_actions_block'); } /** * Creates a custom block. * * @param bool|string $title * (optional) Title of block. When no value is given uses a random name. * Defaults to FALSE. * @param string $bundle * (optional) Bundle name. Defaults to 'basic'. * @param bool $save * (optional) Whether to save the block. Defaults to TRUE. * * @return \Drupal\block_content\Entity\BlockContent * Created custom block. */ protected function createBlockContent($title = FALSE, $bundle = 'basic', $save = TRUE) { $title = $title ?: $this->randomMachineName(); $block_content = BlockContent::create([ 'info' => $title, 'type' => $bundle, 'langcode' => 'en' ]); if ($block_content && $save === TRUE) { $block_content->save(); } return $block_content; } /** * Creates a custom block type (bundle). * * @param string $label * The block type label. * @param bool $create_body * Whether or not to create the body field * * @return \Drupal\block_content\Entity\BlockContentType * Created custom block type. */ protected function createBlockContentType($label, $create_body = FALSE) { $bundle = BlockContentType::create([ 'id' => $label, 'label' => $label, 'revision' => FALSE, ]); $bundle->save(); if ($create_body) { block_content_add_body_field($bundle->id()); } return $bundle; } }