package com.vaadin.v7.tests.components.grid; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedCondition; import com.vaadin.testbench.By; import com.vaadin.v7.tests.components.grid.basicfeatures.GridBasicClientFeaturesTest; public class GridDisabledSideBarTest extends GridBasicClientFeaturesTest { @Override public void setup() throws Exception { super.setup(); openTestURL(); } private void makeColumnHidable() { selectMenuPath("Component", "Columns", "Column 0", "Hidable"); } private void toggleSideBarMenuAndDisable() { selectMenuPath("Component", "Sidebar", "Open sidebar and disable grid"); waitUntil(new ExpectedCondition<Boolean>() { @Override public Boolean apply(WebDriver input) { return !findElement(By.className("v-grid-sidebar-button")) .isEnabled(); } }); } private void clickSideBarButton() { findElement(By.cssSelector(".v-grid-sidebar-button")).click(); } private void toggleEnabled() { selectMenuPath("Component", "State", "Enabled"); } private void assertSideBarContainsClass(String cssClass) { assertThat(findElement(By.cssSelector(".v-grid-sidebar")) .getAttribute("class"), containsString(cssClass)); } @Test public void sidebarButtonIsDisabledOnCreation() { selectMenuPath("Component", "State", "Enabled"); makeColumnHidable(); clickSideBarButton(); assertSideBarContainsClass("closed"); } @Test public void sidebarButtonCanBeEnabled() { makeColumnHidable(); clickSideBarButton(); assertSideBarContainsClass("open"); } @Test public void sidebarButtonCanBeDisabled() { makeColumnHidable(); toggleEnabled(); clickSideBarButton(); assertSideBarContainsClass("closed"); } @Test public void sidebarIsClosedOnDisable() { makeColumnHidable(); toggleSideBarMenuAndDisable(); assertSideBarContainsClass("closed"); } }