瀏覽代碼

Increase Tooltip z-index to be larger than the default overlay z-index. (#14854)

Change-Id: Ib6a2f77aadc9cb1afe8a8e43be9916de3d2eaf44
tags/7.6.0.alpha3^2
Sauli Tähkäpää 9 年之前
父節點
當前提交
0e085a9ddb

+ 3
- 0
client/src/com/vaadin/client/VTooltip.java 查看文件

@@ -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);
}

/**

+ 34
- 0
uitest/src/com/vaadin/tests/tooltip/MenuBarTooltip.java 查看文件

@@ -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.";
}
}

+ 46
- 0
uitest/src/com/vaadin/tests/tooltip/MenuBarTooltipTest.java 查看文件

@@ -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"));
}

}

Loading…
取消
儲存