abstract class BlockContentTestBase in Drupal 10
Same name in this branch
- 10 core/modules/block_content/tests/src/Functional/BlockContentTestBase.php \Drupal\Tests\block_content\Functional\BlockContentTestBase
- 10 core/modules/block_content/tests/src/Functional/Views/BlockContentTestBase.php \Drupal\Tests\block_content\Functional\Views\BlockContentTestBase
Same name and namespace in other branches
- 8 core/modules/block_content/tests/src/Functional/BlockContentTestBase.php \Drupal\Tests\block_content\Functional\BlockContentTestBase
- 9 core/modules/block_content/tests/src/Functional/BlockContentTestBase.php \Drupal\Tests\block_content\Functional\BlockContentTestBase
Sets up block content types.
Hierarchy
- class \Drupal\Tests\BrowserTestBase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, FunctionalTestSetupTrait, TestSetupTrait, BlockCreationTrait, ConfigTestTrait, ExtensionListTestTrait, ContentTypeCreationTrait, NodeCreationTrait, RandomGeneratorTrait, TestRequirementsTrait, PhpUnitWarnings, UiHelperTrait, UserCreationTrait, XdebugRequestTrait
- class \Drupal\Tests\block_content\Functional\BlockContentTestBase
Expanded class hierarchy of BlockContentTestBase
1 file declares its use of BlockContentTestBase
- BlockContentWizardTest.php in core/
modules/ block_content/ tests/ src/ Functional/ Views/ BlockContentWizardTest.php
File
- core/
modules/ block_content/ tests/ src/ Functional/ BlockContentTestBase.php, line 12
Namespace
Drupal\Tests\block_content\FunctionalView source
abstract class BlockContentTestBase extends BrowserTestBase {
/**
* Profile to use.
*
* @var string
*/
protected $profile = 'testing';
/**
* Admin user.
*
* @var \Drupal\user\UserInterface
*/
protected $adminUser;
/**
* Permissions to grant admin user.
*
* @var array
*/
protected $permissions = [
'administer blocks',
];
/**
* Modules to enable.
*
* @var array
*/
protected static $modules = [
'block',
'block_content',
];
/**
* Whether or not to auto-create the basic block type during setup.
*
* @var bool
*/
protected $autoCreateBasicBlockType = TRUE;
/**
* Sets the test up.
*/
protected function setUp() : void {
parent::setUp();
if ($this->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 array|string $values
* The value to create the block content type. If $values is an array
* it should be like: ['id' => 'foo', 'label' => 'Foo']. If $values
* is a string, it will be considered that it represents the 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($values, $create_body = FALSE) {
if (is_array($values)) {
if (!isset($values['id'])) {
do {
$id = strtolower($this
->randomMachineName(8));
} while (BlockContentType::load($id));
}
else {
$id = $values['id'];
}
$values += [
'id' => $id,
'label' => $id,
'revision' => FALSE,
];
$bundle = BlockContentType::create($values);
}
else {
$bundle = BlockContentType::create([
'id' => $values,
'label' => $values,
'revision' => FALSE,
]);
}
$bundle
->save();
if ($create_body) {
block_content_add_body_field($bundle
->id());
}
return $bundle;
}
}