You are here

public function BlockAddTest::testBlockAddThemeSelector in Drupal 10

Tests the AJAX for the theme selector.

File

core/modules/block/tests/src/FunctionalJavascript/BlockAddTest.php, line 30

Class

BlockAddTest
Tests the JS functionality in the block add form.

Namespace

Drupal\Tests\block\FunctionalJavascript

Code

public function testBlockAddThemeSelector() {
  \Drupal::service('theme_installer')
    ->install([
    'claro',
  ]);
  $this
    ->drupalLogin($this
    ->drupalCreateUser([
    'administer blocks',
  ]));
  $this
    ->drupalGet('admin/structure/block/add/system_powered_by_block');
  $assert_session = $this
    ->assertSession();

  // Pick a theme with a region that does not exist in another theme.
  $assert_session
    ->selectExists('Theme')
    ->selectOption('claro');
  $assert_session
    ->assertWaitOnAjaxRequest();
  $assert_session
    ->selectExists('Region')
    ->selectOption('pre_content');
  $assert_session
    ->assertWaitOnAjaxRequest();

  // Switch to a theme that doesn't contain the region selected above.
  $assert_session
    ->selectExists('Theme')
    ->selectOption('stark');
  $assert_session
    ->assertWaitOnAjaxRequest();
  $assert_session
    ->pageTextNotContains('An illegal choice has been detected. Please contact the site administrator.');
  $assert_session
    ->optionExists('Region', '- Select -');
}