Fixes #7912tags/8.4.0.alpha1
@@ -967,6 +967,7 @@ FocusHandler, SubPartAware, MouseOutHandler, MouseOverHandler { | |||
if (styleName != null) { | |||
addStyleDependentName(styleName); | |||
addStyleName(styleName); | |||
} | |||
if (enabled) { |
@@ -0,0 +1,31 @@ | |||
package com.vaadin.tests.components.menubar; | |||
import com.vaadin.annotations.Widgetset; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.MenuBar; | |||
@Widgetset("com.vaadin.DefaultWidgetSet") | |||
public class MenuItemStyleAdd extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
MenuBar barmenu = new MenuBar(); | |||
MenuBar.MenuItem more = barmenu.addItem("More", null, null); | |||
more.setStyleName("styleNameMore"); | |||
barmenu.setMoreMenuItem(more); | |||
MenuBar.MenuItem drinks = barmenu.addItem("Drinks", null, null); | |||
MenuBar.MenuItem hots = drinks.addItem("Hot", null, null); | |||
hots.addItem("Tea", null); | |||
hots.addItem("Coffee", null); | |||
hots.setStyleName("styleTest"); | |||
MenuBar.MenuItem colds = drinks.addItem("Cold", null, null); | |||
colds.addItem("Milk", null); | |||
colds.addItem("Weissbier", null); | |||
addComponent(barmenu); | |||
} | |||
} |
@@ -0,0 +1,38 @@ | |||
package com.vaadin.tests.components.menubar; | |||
import com.vaadin.testbench.By; | |||
import com.vaadin.testbench.elements.MenuBarElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
import org.junit.Test; | |||
import org.openqa.selenium.WebElement; | |||
import static org.junit.Assert.assertEquals; | |||
import java.util.List; | |||
public class MenuItemStyleAddTest extends MultiBrowserTest { | |||
@Test | |||
public void testCustomStyleShouldStayAfterMenuSelect() { | |||
openTestURL(); | |||
MenuBarElement menu = $(MenuBarElement.class).first(); | |||
List<WebElement> elements = menu | |||
.findElements(By.className("v-menubar-menuitem")); | |||
WebElement more = elements.get(0); | |||
assertEquals(true, | |||
more.getAttribute("class") | |||
.replaceAll("v-menubar-menuitem-styleNameMore", "") | |||
.contains("styleNameMore")); | |||
assertEquals(2, elements.size()); | |||
menu.clickItem("Drinks"); | |||
WebElement popup = getDriver() | |||
.findElement(By.className("v-menubar-popup")); | |||
List<WebElement> popupElCon = popup | |||
.findElements(By.className("styleTest")); | |||
assertEquals(1, popupElCon.size()); | |||
assertEquals(true, | |||
popupElCon.get(0).getAttribute("class") | |||
.replaceAll("v-menubar-menuitem-styleTest", "") | |||
.contains("styleTest")); | |||
} | |||
} |