From a2e05d76e389a5fa1fe1817634c1cef203098471 Mon Sep 17 00:00:00 2001 From: Teppo Kurki Date: Wed, 3 Jun 2015 15:34:43 +0300 Subject: [PATCH] Remove duplicate primary stylename from split panels (#17846) Change-Id: Ia0d839654cd14e0109f09d5625fe21ae41a689a3 --- .../vaadin/client/ui/VAbstractSplitPanel.java | 8 +-- .../SplitPanelDuplicateStyleName.java | 59 +++++++++++++++++ .../SplitPanelDuplicateStyleNameTest.java | 63 +++++++++++++++++++ 3 files changed, 125 insertions(+), 5 deletions(-) create mode 100644 uitest/src/com/vaadin/tests/components/splitpanel/SplitPanelDuplicateStyleName.java create mode 100644 uitest/src/com/vaadin/tests/components/splitpanel/SplitPanelDuplicateStyleNameTest.java diff --git a/client/src/com/vaadin/client/ui/VAbstractSplitPanel.java b/client/src/com/vaadin/client/ui/VAbstractSplitPanel.java index b52663b161..5565daf19b 100644 --- a/client/src/com/vaadin/client/ui/VAbstractSplitPanel.java +++ b/client/src/com/vaadin/client/ui/VAbstractSplitPanel.java @@ -43,9 +43,8 @@ import com.vaadin.client.BrowserInfo; import com.vaadin.client.ComponentConnector; import com.vaadin.client.ConnectorMap; import com.vaadin.client.LayoutManager; -import com.vaadin.client.StyleConstants; -import com.vaadin.client.WidgetUtil; import com.vaadin.client.VConsole; +import com.vaadin.client.WidgetUtil; import com.vaadin.client.ui.TouchScrollDelegate.TouchScrollHandler; import com.vaadin.client.ui.VAbstractSplitPanel.SplitterMoveHandler.SplitterMoveEvent; import com.vaadin.shared.ui.Orientation; @@ -125,14 +124,13 @@ public class VAbstractSplitPanel extends ComplexPanel { public VAbstractSplitPanel(Orientation orientation) { setElement(DOM.createDiv()); - setStyleName(StyleConstants.UI_LAYOUT); switch (orientation) { case HORIZONTAL: - addStyleName(CLASSNAME + "-horizontal"); + setStyleName(CLASSNAME + "-horizontal"); break; case VERTICAL: default: - addStyleName(CLASSNAME + "-vertical"); + setStyleName(CLASSNAME + "-vertical"); break; } // size below will be overridden in update from uidl, initial size diff --git a/uitest/src/com/vaadin/tests/components/splitpanel/SplitPanelDuplicateStyleName.java b/uitest/src/com/vaadin/tests/components/splitpanel/SplitPanelDuplicateStyleName.java new file mode 100644 index 0000000000..e6079dba60 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/splitpanel/SplitPanelDuplicateStyleName.java @@ -0,0 +1,59 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.splitpanel; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUIWithLog; +import com.vaadin.ui.AbstractSplitPanel; +import com.vaadin.ui.HorizontalSplitPanel; +import com.vaadin.ui.VerticalSplitPanel; + +/** + * Test UI for duplicate primary style name in SplitPanel. + * + * @author Vaadin Ltd + */ +public class SplitPanelDuplicateStyleName extends AbstractTestUIWithLog { + + @Override + protected void setup(VaadinRequest request) { + addSplitPanel(true); + addSplitPanel(false); + } + + private void addSplitPanel(final boolean horizontal) { + AbstractSplitPanel splitPanel; + if (horizontal) { + splitPanel = new HorizontalSplitPanel(); + } else { + splitPanel = new VerticalSplitPanel(); + } + splitPanel.setWidth("200px"); + splitPanel.setHeight("200px"); + addComponent(splitPanel); + } + + @Override + protected String getTestDescription() { + return "SplitPanel should not have duplicate primary style name"; + } + + @Override + protected Integer getTicketNumber() { + return 17846; + } + +} diff --git a/uitest/src/com/vaadin/tests/components/splitpanel/SplitPanelDuplicateStyleNameTest.java b/uitest/src/com/vaadin/tests/components/splitpanel/SplitPanelDuplicateStyleNameTest.java new file mode 100644 index 0000000000..8a142ac2e1 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/splitpanel/SplitPanelDuplicateStyleNameTest.java @@ -0,0 +1,63 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.splitpanel; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.openqa.selenium.By; + +import com.vaadin.shared.ui.splitpanel.HorizontalSplitPanelState; +import com.vaadin.testbench.elements.HorizontalSplitPanelElement; +import com.vaadin.testbench.elements.VerticalSplitPanelElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +/** + * Test for duplicate primary style name in SplitPanel. + * + * @author Vaadin Ltd + */ +public class SplitPanelDuplicateStyleNameTest extends MultiBrowserTest { + + @Override + public void setup() throws Exception { + super.setup(); + openTestURL(); + waitForElementPresent(By.className("v-splitpanel-horizontal")); + } + + @Test + public void testHorizontalNoDuplicateStyleName() { + HorizontalSplitPanelElement split = $(HorizontalSplitPanelElement.class) + .first(); + String classNames = split.getAttribute("class"); + String primaryStyleName = new HorizontalSplitPanelState().primaryStyleName; + assertEquals("Duplicate primary style name should not exist", + classNames.indexOf(primaryStyleName), + classNames.lastIndexOf(primaryStyleName)); + } + + @Test + public void testVerticalNoDuplicateStyleName() { + VerticalSplitPanelElement split = $(VerticalSplitPanelElement.class) + .first(); + String classNames = split.getAttribute("class"); + String primaryStyleName = new HorizontalSplitPanelState().primaryStyleName; + assertEquals("Duplicate primary style name should not exist", + classNames.indexOf(primaryStyleName), + classNames.lastIndexOf(primaryStyleName)); + } +} -- 2.39.5