You are here

public function BlockLanguageCacheTest::testBlockLinks in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/block/tests/src/Functional/BlockLanguageCacheTest.php \Drupal\Tests\block\Functional\BlockLanguageCacheTest::testBlockLinks()
  2. 10 core/modules/block/tests/src/Functional/BlockLanguageCacheTest.php \Drupal\Tests\block\Functional\BlockLanguageCacheTest::testBlockLinks()

Creates a block in a language, check blocks page in all languages.

File

core/modules/block/tests/src/Functional/BlockLanguageCacheTest.php, line 52

Class

BlockLanguageCacheTest
Tests display of menu blocks with multiple languages.

Namespace

Drupal\Tests\block\Functional

Code

public function testBlockLinks() {

  // Create admin user to be able to access block admin.
  $admin_user = $this
    ->drupalCreateUser([
    'administer blocks',
    'access administration pages',
    'administer menu',
  ]);
  $this
    ->drupalLogin($admin_user);

  // Create the block cache for all languages.
  foreach ($this->langcodes as $langcode) {
    $this
      ->drupalGet('admin/structure/block', [
      'language' => $langcode,
    ]);
    $this
      ->clickLink('Place block');
  }

  // Create a menu in the default language.
  $edit['label'] = $this
    ->randomMachineName();
  $edit['id'] = mb_strtolower($edit['label']);
  $this
    ->drupalGet('admin/structure/menu/add');
  $this
    ->submitForm($edit, 'Save');
  $this
    ->assertSession()
    ->pageTextContains('Menu ' . $edit['label'] . ' has been added.');

  // Check that the block is listed for all languages.
  foreach ($this->langcodes as $langcode) {
    $this
      ->drupalGet('admin/structure/block', [
      'language' => $langcode,
    ]);
    $this
      ->clickLink('Place block');
    $this
      ->assertSession()
      ->pageTextContains($edit['label']);
  }
}