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 * @var string
|
Chris@0
|
21 */
|
Chris@0
|
22 protected $profile = 'testing';
|
Chris@0
|
23
|
Chris@0
|
24 /**
|
Chris@0
|
25 * Admin user
|
Chris@0
|
26 *
|
Chris@0
|
27 * @var \Drupal\user\UserInterface
|
Chris@0
|
28 */
|
Chris@0
|
29 protected $adminUser;
|
Chris@0
|
30
|
Chris@0
|
31 /**
|
Chris@0
|
32 * Permissions to grant admin user.
|
Chris@0
|
33 *
|
Chris@0
|
34 * @var array
|
Chris@0
|
35 */
|
Chris@0
|
36 protected $permissions = [
|
Chris@4
|
37 'administer blocks',
|
Chris@0
|
38 ];
|
Chris@0
|
39
|
Chris@0
|
40 /**
|
Chris@0
|
41 * Modules to enable.
|
Chris@0
|
42 *
|
Chris@0
|
43 * @var array
|
Chris@0
|
44 */
|
Chris@0
|
45 public static $modules = ['block', 'block_content'];
|
Chris@0
|
46
|
Chris@0
|
47 /**
|
Chris@0
|
48 * Whether or not to auto-create the basic block type during setup.
|
Chris@0
|
49 *
|
Chris@0
|
50 * @var bool
|
Chris@0
|
51 */
|
Chris@0
|
52 protected $autoCreateBasicBlockType = TRUE;
|
Chris@0
|
53
|
Chris@0
|
54 /**
|
Chris@0
|
55 * Sets the test up.
|
Chris@0
|
56 */
|
Chris@0
|
57 protected function setUp() {
|
Chris@0
|
58 parent::setUp();
|
Chris@0
|
59 if ($this->autoCreateBasicBlockType) {
|
Chris@0
|
60 $this->createBlockContentType('basic', TRUE);
|
Chris@0
|
61 }
|
Chris@0
|
62
|
Chris@0
|
63 $this->adminUser = $this->drupalCreateUser($this->permissions);
|
Chris@0
|
64 $this->drupalPlaceBlock('local_actions_block');
|
Chris@0
|
65 }
|
Chris@0
|
66
|
Chris@0
|
67 /**
|
Chris@0
|
68 * Creates a custom block.
|
Chris@0
|
69 *
|
Chris@0
|
70 * @param bool|string $title
|
Chris@0
|
71 * (optional) Title of block. When no value is given uses a random name.
|
Chris@0
|
72 * Defaults to FALSE.
|
Chris@0
|
73 * @param string $bundle
|
Chris@0
|
74 * (optional) Bundle name. Defaults to 'basic'.
|
Chris@0
|
75 * @param bool $save
|
Chris@0
|
76 * (optional) Whether to save the block. Defaults to TRUE.
|
Chris@0
|
77 *
|
Chris@0
|
78 * @return \Drupal\block_content\Entity\BlockContent
|
Chris@0
|
79 * Created custom block.
|
Chris@0
|
80 */
|
Chris@0
|
81 protected function createBlockContent($title = FALSE, $bundle = 'basic', $save = TRUE) {
|
Chris@0
|
82 $title = $title ?: $this->randomMachineName();
|
Chris@0
|
83 $block_content = BlockContent::create([
|
Chris@0
|
84 'info' => $title,
|
Chris@0
|
85 'type' => $bundle,
|
Chris@4
|
86 'langcode' => 'en',
|
Chris@0
|
87 ]);
|
Chris@0
|
88 if ($block_content && $save === TRUE) {
|
Chris@0
|
89 $block_content->save();
|
Chris@0
|
90 }
|
Chris@0
|
91 return $block_content;
|
Chris@0
|
92 }
|
Chris@0
|
93
|
Chris@0
|
94 /**
|
Chris@0
|
95 * Creates a custom block type (bundle).
|
Chris@0
|
96 *
|
Chris@0
|
97 * @param string $label
|
Chris@0
|
98 * The block type label.
|
Chris@0
|
99 * @param bool $create_body
|
Chris@0
|
100 * Whether or not to create the body field
|
Chris@0
|
101 *
|
Chris@0
|
102 * @return \Drupal\block_content\Entity\BlockContentType
|
Chris@0
|
103 * Created custom block type.
|
Chris@0
|
104 */
|
Chris@0
|
105 protected function createBlockContentType($label, $create_body = FALSE) {
|
Chris@0
|
106 $bundle = BlockContentType::create([
|
Chris@0
|
107 'id' => $label,
|
Chris@0
|
108 'label' => $label,
|
Chris@0
|
109 'revision' => FALSE,
|
Chris@0
|
110 ]);
|
Chris@0
|
111 $bundle->save();
|
Chris@0
|
112 if ($create_body) {
|
Chris@0
|
113 block_content_add_body_field($bundle->id());
|
Chris@0
|
114 }
|
Chris@0
|
115 return $bundle;
|
Chris@0
|
116 }
|
Chris@0
|
117
|
Chris@0
|
118 }
|