diff --git a/core/modules/toolbar/tests/src/Functional/ToolbarIntegrationTest.php b/core/modules/toolbar/tests/src/Functional/ToolbarIntegrationTest.php index 0e3a8ec..cc6fe96 100644 --- a/core/modules/toolbar/tests/src/Functional/ToolbarIntegrationTest.php +++ b/core/modules/toolbar/tests/src/Functional/ToolbarIntegrationTest.php @@ -22,14 +22,33 @@ class ToolbarIntegrationTest extends JavascriptTestBase { public static $modules = ['toolbar', 'node']; public function testToolbarToggling() { - $admin_user = $this->drupalCreateUser(['access toolbar', 'administer site configuration', 'access content overview']); + $admin_user = $this->drupalCreateUser([ + 'access toolbar', + 'administer site configuration', + 'access content overview' + ]); $this->drupalLogin($admin_user); $this->drupalGet(''); - $this->assertTrue($this->getSession()->getDriver()->isVisible('.//a[@id="toolbar-link-system-admin_content"]'), 'Toolbar not open by default'); + // Test that it is possible to toggle the toolbar tray. + $this->assertTrue($this->getSession()->getDriver()->isVisible('.//a[@id="toolbar-link-system-admin_content"]'), 'Toolbar tray is open by default.'); $this->getSession()->getDriver()->click('.//a[@id="toolbar-item-administration"]'); - $this->assertFalse($this->getSession()->getDriver()->isVisible('//a[@id="toolbar-link-system-admin_content"]'), 'Toolbar not closed after clicking manage'); + $this->assertFalse($this->getSession()->getDriver()->isVisible('//a[@id="toolbar-link-system-admin_content"]'), 'Toolbar tray is closed after clicking the "Manage" button.'); + $this->getSession()->getDriver()->click('.//a[@id="toolbar-item-administration"]'); + $this->assertTrue($this->getSession()->getDriver()->isVisible('//a[@id="toolbar-link-system-admin_content"]'), 'Toolbar tray is visible again after clicking the "Manage" button a second time.'); + + // Test toggling the toolbar tray between horizontal and vertical. + $this->assertTrue($this->getSession()->getDriver()->isVisible('.//div[@id="toolbar-item-administration-tray" and contains(concat(" ", @class, " "), " toolbar-tray-horizontal ")]'), 'Toolbar tray is horizontally oriented by default.'); + $this->assertEmpty($this->getSession()->getDriver()->find('.//div[@id="toolbar-item-administration-tray" and contains(concat(" ", @class, " "), " toolbar-tray-vertical ")]'), 'Toolbar tray not vertically oriented by default.'); + + $this->getSession()->getDriver()->click('.//div[@id="toolbar-item-administration-tray"]//button[contains(concat(" ", @class, " "), " toolbar-icon-toggle-vertical ")]'); + $this->assertTrue($this->getSession()->getDriver()->wait(1000, 'jQuery("#toolbar-item-administration-tray").hasClass("toolbar-tray-vertical")')); + $this->assertTrue($this->getSession()->getDriver()->isVisible('.//div[@id="toolbar-item-administration-tray" and contains(concat(" ", @class, " "), " toolbar-tray-vertical ")]'), 'After toggling the orientation the toolbar tray is now displayed vertically.'); + + $this->getSession()->getDriver()->click('.//div[@id="toolbar-item-administration-tray"]//button[contains(concat(" ", @class, " "), " toolbar-icon-toggle-horizontal ")]'); + $this->assertTrue($this->getSession()->getDriver()->wait(1000, 'jQuery("#toolbar-item-administration-tray").hasClass("toolbar-tray-horizontal")')); + $this->assertTrue($this->getSession()->getDriver()->isVisible('.//div[@id="toolbar-item-administration-tray" and contains(concat(" ", @class, " "), " toolbar-tray-horizontal ")]'), 'After toggling the orientation a second time the toolbar tray is displayed horizontally again.'); } }