Change-Id: Ib6a2f77aadc9cb1afe8a8e43be9916de3d2eaf44tags/7.6.0.alpha3^2
@@ -89,6 +89,9 @@ public class VTooltip extends VOverlay { | |||
LiveValue.ASSERTIVE); | |||
Roles.getTooltipRole().setAriaRelevantProperty(getElement(), | |||
RelevantValue.ADDITIONS); | |||
// Tooltip needs to be on top of other VOverlay elements. | |||
setZIndex(VOverlay.Z_INDEX + 1); | |||
} | |||
/** |
@@ -0,0 +1,34 @@ | |||
package com.vaadin.tests.tooltip; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.MenuBar; | |||
public class MenuBarTooltip extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
MenuBar menubar = new MenuBar(); | |||
MenuBar.MenuItem menuitem = menubar.addItem("Menu item", null, null); | |||
menuitem.setDescription("Menu item description"); | |||
MenuBar.MenuItem submenuitem1 = menuitem.addItem("Submenu item 1", null, null); | |||
submenuitem1.setDescription("Submenu item 1 description"); | |||
MenuBar.MenuItem submenuitem2 = menuitem.addItem("Submenu item 2", null, null); | |||
submenuitem2.setDescription("Submenu item 2 description"); | |||
addComponent(menubar); | |||
} | |||
@Override | |||
protected Integer getTicketNumber() { | |||
return 14854; | |||
} | |||
@Override | |||
protected String getTestDescription() { | |||
return "MenuItem tooltip should have a larger z-index than MenuBar/MenuItem."; | |||
} | |||
} |
@@ -0,0 +1,46 @@ | |||
package com.vaadin.tests.tooltip; | |||
import static org.hamcrest.MatcherAssert.assertThat; | |||
import static org.hamcrest.Matchers.greaterThan; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
import com.vaadin.testbench.elements.MenuBarElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
import com.vaadin.ui.themes.ChameleonTheme; | |||
import com.vaadin.ui.themes.Reindeer; | |||
import com.vaadin.ui.themes.Runo; | |||
import com.vaadin.ui.themes.ValoTheme; | |||
public class MenuBarTooltipTest extends MultiBrowserTest { | |||
@Test | |||
public void toolTipShouldBeOnTopOfMenuItem() { | |||
String[] themes = new String[] { | |||
ValoTheme.THEME_NAME, | |||
Reindeer.THEME_NAME, | |||
Runo.THEME_NAME, | |||
ChameleonTheme.THEME_NAME | |||
}; | |||
for(String theme : themes) { | |||
assertZIndices(theme); | |||
} | |||
} | |||
public void assertZIndices(String theme) { | |||
openTestURL("theme=" + theme); | |||
$(MenuBarElement.class).first().clickItem("Menu item"); | |||
assertThat(String.format("Invalid z-index for theme %s.", theme), | |||
getZIndex("v-tooltip"), greaterThan(getZIndex("v-menubar-popup"))); | |||
} | |||
private int getZIndex(String className) { | |||
return Integer.parseInt( | |||
findElement(By.className(className)).getCssValue("z-index")); | |||
} | |||
} |