function BlockExampleTest::testBlockExampleBasic
Same name in other branches
- 3.x modules/block_example/tests/src/Functional/BlockExampleTest.php \Drupal\Tests\block_example\Functional\BlockExampleTest::testBlockExampleBasic()
Tests block_example functionality.
File
-
modules/
block_example/ tests/ src/ Functional/ BlockExampleTest.php, line 32
Class
- BlockExampleTest
- Test the configuration options and block created by Block Example module.
Namespace
Drupal\Tests\block_example\FunctionalCode
public function testBlockExampleBasic() {
$assert = $this->assertSession();
// Create user.
$web_user = $this->drupalCreateUser([
'administer blocks',
]);
// Login the admin user.
$this->drupalLogin($web_user);
$theme_name = $this->config('system.theme')
->get('default');
// Verify the blocks are listed to be added.
$this->drupalGet('/admin/structure/block/library/' . $theme_name, [
'query' => [
'region' => 'content',
],
]);
$assert->pageTextContains('Example: configurable text');
$assert->pageTextContains('Example: empty block');
$assert->pageTextContains('Example: uppercase this please');
// Define and place blocks.
$settings_configurable = [
'label' => 'Configurable text',
'id' => 'block_example_example_configurable_text',
'theme' => $theme_name,
];
$this->drupalPlaceBlock('example_configurable_text', $settings_configurable);
$settings_uppercase = [
'label' => 'Configurable block to be uppercased',
'id' => 'block_example_example_uppercased',
'theme' => $theme_name,
];
$this->drupalPlaceBlock('example_uppercase', $settings_uppercase);
$settings_empty = [
'label' => 'Empty block',
'id' => 'block_example_example_empty',
'theme' => $theme_name,
];
$this->drupalPlaceBlock('example_empty', $settings_empty);
// Verify that blocks are there. Empty block will not be shown, because it
// holds an empty array.
$this->drupalGet('');
$assert->pageTextContains($settings_configurable['label']);
$assert->pageTextContains($settings_uppercase['label']);
$assert->pageTextContains(mb_strtoupper($settings_uppercase['label']));
$assert->pageTextNotContains($settings_empty['label']);
// Change content of configurable text block.
$edit = [
'settings[block_example_string_text]' => $this->randomMachineName(),
];
$this->drupalGet('/admin/structure/block/manage/' . $settings_configurable['id']);
$this->submitForm($edit, 'Save block');
$assert->statusCodeEquals(200);
// Verify that new content is shown.
$this->drupalGet('');
$assert->statusCodeEquals(200);
$assert->pageTextContains($edit['settings[block_example_string_text]']);
}