annotate core/modules/block_content/src/Tests/BlockContentTestBase.php @ 19:fa3358dc1485 tip

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