You are here

public function PageTest::testBatchProgressPageTheme in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/system/tests/src/Functional/Batch/PageTest.php \Drupal\Tests\system\Functional\Batch\PageTest::testBatchProgressPageTheme()

Tests that the batch API progress page uses the correct theme.

File

core/modules/system/tests/src/Functional/Batch/PageTest.php, line 29

Class

PageTest
Tests the content of the progress page.

Namespace

Drupal\Tests\system\Functional\Batch

Code

public function testBatchProgressPageTheme() {

  // Make sure that the page which starts the batch (an administrative page)
  // is using a different theme than would normally be used by the batch API.
  $this->container
    ->get('theme_installer')
    ->install([
    'seven',
    'bartik',
  ]);
  $this
    ->config('system.theme')
    ->set('default', 'bartik')
    ->set('admin', 'seven')
    ->save();

  // Log in as an administrator who can see the administrative theme.
  $admin_user = $this
    ->drupalCreateUser([
    'view the administration theme',
  ]);
  $this
    ->drupalLogin($admin_user);

  // Visit an administrative page that runs a test batch, and check that the
  // theme that was used during batch execution (which the batch callback
  // function saved as a variable) matches the theme used on the
  // administrative page.
  $this
    ->drupalGet('admin/batch-test/test-theme');

  // The stack should contain the name of the theme used on the progress
  // page.
  $this
    ->assertEquals([
    'seven',
  ], batch_test_stack(), 'A progressive batch correctly uses the theme of the page that started the batch.');
}