annotate core/modules/block_content/src/Tests/BlockContentTestBase.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 7a779792577d
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\block_content\Tests;
Chris@0 4
Chris@0 5 use Drupal\block_content\Entity\BlockContent;
Chris@0 6 use Drupal\block_content\Entity\BlockContentType;
Chris@0 7 use Drupal\simpletest\WebTestBase;
Chris@0 8
Chris@0 9 /**
Chris@0 10 * Sets up block content types.
Chris@0 11 *
Chris@0 12 * @deprecated Scheduled for removal in Drupal 9.0.0.
Chris@0 13 * Use \Drupal\Tests\block_content\Functional\BlockContentTestBase instead.
Chris@0 14 */
Chris@0 15 abstract class BlockContentTestBase extends WebTestBase {
Chris@0 16
Chris@0 17 /**
Chris@0 18 * Profile to use.
Chris@0 19 */
Chris@0 20 protected $profile = 'testing';
Chris@0 21
Chris@0 22 /**
Chris@0 23 * Admin user
Chris@0 24 *
Chris@0 25 * @var \Drupal\user\UserInterface
Chris@0 26 */
Chris@0 27 protected $adminUser;
Chris@0 28
Chris@0 29 /**
Chris@0 30 * Permissions to grant admin user.
Chris@0 31 *
Chris@0 32 * @var array
Chris@0 33 */
Chris@0 34 protected $permissions = [
Chris@0 35 'administer blocks'
Chris@0 36 ];
Chris@0 37
Chris@0 38 /**
Chris@0 39 * Modules to enable.
Chris@0 40 *
Chris@0 41 * @var array
Chris@0 42 */
Chris@0 43 public static $modules = ['block', 'block_content'];
Chris@0 44
Chris@0 45 /**
Chris@0 46 * Whether or not to auto-create the basic block type during setup.
Chris@0 47 *
Chris@0 48 * @var bool
Chris@0 49 */
Chris@0 50 protected $autoCreateBasicBlockType = TRUE;
Chris@0 51
Chris@0 52 /**
Chris@0 53 * Sets the test up.
Chris@0 54 */
Chris@0 55 protected function setUp() {
Chris@0 56 parent::setUp();
Chris@0 57 if ($this->autoCreateBasicBlockType) {
Chris@0 58 $this->createBlockContentType('basic', TRUE);
Chris@0 59 }
Chris@0 60
Chris@0 61 $this->adminUser = $this->drupalCreateUser($this->permissions);
Chris@0 62 $this->drupalPlaceBlock('local_actions_block');
Chris@0 63 }
Chris@0 64
Chris@0 65 /**
Chris@0 66 * Creates a custom block.
Chris@0 67 *
Chris@0 68 * @param bool|string $title
Chris@0 69 * (optional) Title of block. When no value is given uses a random name.
Chris@0 70 * Defaults to FALSE.
Chris@0 71 * @param string $bundle
Chris@0 72 * (optional) Bundle name. Defaults to 'basic'.
Chris@0 73 * @param bool $save
Chris@0 74 * (optional) Whether to save the block. Defaults to TRUE.
Chris@0 75 *
Chris@0 76 * @return \Drupal\block_content\Entity\BlockContent
Chris@0 77 * Created custom block.
Chris@0 78 */
Chris@0 79 protected function createBlockContent($title = FALSE, $bundle = 'basic', $save = TRUE) {
Chris@0 80 $title = $title ?: $this->randomMachineName();
Chris@0 81 $block_content = BlockContent::create([
Chris@0 82 'info' => $title,
Chris@0 83 'type' => $bundle,
Chris@0 84 'langcode' => 'en'
Chris@0 85 ]);
Chris@0 86 if ($block_content && $save === TRUE) {
Chris@0 87 $block_content->save();
Chris@0 88 }
Chris@0 89 return $block_content;
Chris@0 90 }
Chris@0 91
Chris@0 92 /**
Chris@0 93 * Creates a custom block type (bundle).
Chris@0 94 *
Chris@0 95 * @param string $label
Chris@0 96 * The block type label.
Chris@0 97 * @param bool $create_body
Chris@0 98 * Whether or not to create the body field
Chris@0 99 *
Chris@0 100 * @return \Drupal\block_content\Entity\BlockContentType
Chris@0 101 * Created custom block type.
Chris@0 102 */
Chris@0 103 protected function createBlockContentType($label, $create_body = FALSE) {
Chris@0 104 $bundle = BlockContentType::create([
Chris@0 105 'id' => $label,
Chris@0 106 'label' => $label,
Chris@0 107 'revision' => FALSE,
Chris@0 108 ]);
Chris@0 109 $bundle->save();
Chris@0 110 if ($create_body) {
Chris@0 111 block_content_add_body_field($bundle->id());
Chris@0 112 }
Chris@0 113 return $bundle;
Chris@0 114 }
Chris@0 115
Chris@0 116 }