You are here

public function WorkspaceToolbarIntegrationTest::testWorkspaceSwitch in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/workspaces/tests/src/FunctionalJavascript/WorkspaceToolbarIntegrationTest.php \Drupal\Tests\workspaces\FunctionalJavascript\WorkspaceToolbarIntegrationTest::testWorkspaceSwitch()

Tests workspace switch and landing page behavior.

File

core/modules/workspaces/tests/src/FunctionalJavascript/WorkspaceToolbarIntegrationTest.php, line 64

Class

WorkspaceToolbarIntegrationTest
Tests workspace settings stray integration.

Namespace

Drupal\Tests\workspaces\FunctionalJavascript

Code

public function testWorkspaceSwitch() {
  $page = $this
    ->getSession()
    ->getPage();
  $assert_session = $this
    ->assertSession();

  // Wait for toolbar to appear.
  $this
    ->getSession()
    ->resizeWindow(1200, 600);
  $this
    ->drupalGet('admin');

  // Wait for toolbar to appear.
  $this
    ->assertNotEmpty($assert_session
    ->waitForElement('css', 'body.toolbar-horizontal'));

  // Open workspace canvas.
  $page
    ->clickLink('Switch workspace');
  $this
    ->waitForOffCanvasToOpen('top');

  // Click 'stage' workspace and confirm switch.
  $page
    ->clickLink('Stage');
  $this
    ->assertElementVisibleAfterWait('css', '.workspace-activate-form.workspace-confirm-form');
  $page
    ->find('css', '.ui-dialog-buttonset .button--primary')
    ->click();
  $assert_session
    ->waitForElementVisible('css', '.messages--status');

  // Make sure we stay on same page after switch.
  $assert_session
    ->responseContains('<em class="placeholder">Stage</em> is now the active workspace.');
  $assert_session
    ->addressEquals('admin');
}