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 }
|