BlockExampleTest.php

Same filename in other branches
  1. 3.x modules/block_example/tests/src/Functional/BlockExampleTest.php
  2. 8.x-1.x block_example/tests/src/Functional/BlockExampleTest.php

Namespace

Drupal\Tests\block_example\Functional

File

modules/block_example/tests/src/Functional/BlockExampleTest.php

View source
<?php

namespace Drupal\Tests\block_example\Functional;

use Drupal\Tests\BrowserTestBase;

/**
 * Test the configuration options and block created by Block Example module.
 *
 * @ingroup block_example
 *
 * @group block_example
 * @group examples
 */
class BlockExampleTest extends BrowserTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * Modules to enable.
     *
     * @var array
     */
    protected static $modules = [
        'block',
        'block_example',
    ];
    
    /**
     * Tests block_example functionality.
     */
    public function testBlockExampleBasic() {
        $assert = $this->assertSession();
        // Create user.
        $web_user = $this->drupalCreateUser([
            'administer blocks',
        ]);
        // Log in 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 show in upper case',
            'id' => 'block_example_example_uppercase',
            '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]']);
    }

}

Classes

Title Deprecated Summary
BlockExampleTest Test the configuration options and block created by Block Example module.