You are here

public function ToolbarIntegrationTest::testToolbarToggling in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/toolbar/tests/src/FunctionalJavascript/ToolbarIntegrationTest.php \Drupal\Tests\toolbar\FunctionalJavascript\ToolbarIntegrationTest::testToolbarToggling()
  2. 9 core/modules/toolbar/tests/src/FunctionalJavascript/ToolbarIntegrationTest.php \Drupal\Tests\toolbar\FunctionalJavascript\ToolbarIntegrationTest::testToolbarToggling()

Tests if the toolbar can be toggled with JavaScript.

File

core/modules/toolbar/tests/src/FunctionalJavascript/ToolbarIntegrationTest.php, line 27

Class

ToolbarIntegrationTest
Tests the JavaScript functionality of the toolbar.

Namespace

Drupal\Tests\toolbar\FunctionalJavascript

Code

public function testToolbarToggling() {
  $admin_user = $this
    ->drupalCreateUser([
    'access toolbar',
    'administer site configuration',
    'access content overview',
  ]);
  $this
    ->drupalLogin($admin_user);

  // Set size for horizontal toolbar.
  $this
    ->getSession()
    ->resizeWindow(1200, 600);
  $this
    ->drupalGet('<front>');
  $this
    ->assertNotEmpty($this
    ->assertSession()
    ->waitForElement('css', 'body.toolbar-horizontal'));
  $this
    ->assertNotEmpty($this
    ->assertSession()
    ->waitForElementVisible('css', '.toolbar-tray'));

  // Confirm touchevents detection is loaded with the toolbar.
  $this
    ->assertNotNull($this
    ->assertSession()
    ->waitForElement('css', 'html.no-touchevents'));
  $page = $this
    ->getSession()
    ->getPage();

  // Test that it is possible to toggle the toolbar tray.
  $content = $page
    ->findLink('Content');
  $this
    ->assertTrue($content
    ->isVisible(), 'Toolbar tray is open by default.');
  $page
    ->clickLink('Manage');
  $this
    ->assertFalse($content
    ->isVisible(), 'Toolbar tray is closed after clicking the "Manage" link.');
  $page
    ->clickLink('Manage');
  $this
    ->assertTrue($content
    ->isVisible(), 'Toolbar tray is visible again after clicking the "Manage" button a second time.');

  // Test toggling the toolbar tray between horizontal and vertical.
  $tray = $page
    ->findById('toolbar-item-administration-tray');
  $this
    ->assertFalse($tray
    ->hasClass('toolbar-tray-vertical'), 'Toolbar tray is not vertically oriented by default.');
  $page
    ->pressButton('Vertical orientation');
  $this
    ->assertTrue($tray
    ->hasClass('toolbar-tray-vertical'), 'After toggling the orientation the toolbar tray is now displayed vertically.');
  $page
    ->pressButton('Horizontal orientation');
  $this
    ->assertTrue($tray
    ->hasClass('toolbar-tray-horizontal'), 'After toggling the orientation a second time the toolbar tray is displayed horizontally again.');
}