function ToolbarIntegrationTest::testToolbarToggling

Same name in other branches
  1. 9 core/modules/toolbar/tests/src/FunctionalJavascript/ToolbarIntegrationTest.php \Drupal\Tests\toolbar\FunctionalJavascript\ToolbarIntegrationTest::testToolbarToggling()
  2. 8.9.x core/modules/toolbar/tests/src/FunctionalJavascript/ToolbarIntegrationTest.php \Drupal\Tests\toolbar\FunctionalJavascript\ToolbarIntegrationTest::testToolbarToggling()
  3. 10 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 29

Class

ToolbarIntegrationTest
Tests the JavaScript functionality of the toolbar.

Namespace

Drupal\Tests\toolbar\FunctionalJavascript

Code

public function testToolbarToggling() : void {
    $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'));
    $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.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.