You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MenuBarIconsTest.java 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.vaadin.tests.components.menubar;
  2. import com.vaadin.server.FontAwesome;
  3. import com.vaadin.testbench.By;
  4. import com.vaadin.testbench.elements.MenuBarElement;
  5. import com.vaadin.testbench.parallel.BrowserUtil;
  6. import com.vaadin.tests.tb3.SingleBrowserTest;
  7. import org.junit.Assume;
  8. import org.junit.Test;
  9. import org.openqa.selenium.WebElement;
  10. import static org.junit.Assert.assertEquals;
  11. import static org.junit.Assert.assertTrue;
  12. public class MenuBarIconsTest extends SingleBrowserTest {
  13. @Test
  14. public void fontIconsRendered() {
  15. openTestURL();
  16. MenuBarElement menu = $(MenuBarElement.class).id("fontIcon");
  17. WebElement moreItem = menu
  18. .findElements(By.className("v-menubar-menuitem")).get(3);
  19. assertFontIcon(FontAwesome.MAIL_REPLY_ALL,
  20. menu.findElement(By.vaadin("#Main")));
  21. WebElement hasSubElement = menu.findElement(By.vaadin("#Has sub"));
  22. assertFontIcon(FontAwesome.SUBWAY, hasSubElement);
  23. assertFontIcon(FontAwesome.ANGELLIST,
  24. menu.findElement(By.vaadin("#Filler 0")));
  25. hasSubElement.click();
  26. assertFontIcon(FontAwesome.AMBULANCE,
  27. hasSubElement.findElement(By.vaadin("#Sub item")));
  28. // Close sub menu
  29. hasSubElement.click();
  30. assertFontIcon(FontAwesome.MOTORCYCLE, moreItem);
  31. moreItem.click();
  32. WebElement filler5 = moreItem.findElement(By.vaadin("#Filler 5"));
  33. assertFontIcon(FontAwesome.ANGELLIST, filler5);
  34. }
  35. @Test
  36. public void imageIconsRendered() {
  37. Assume.assumeFalse(
  38. "PhantomJS uses different font which shifts index of the 'More' item",
  39. BrowserUtil.isPhantomJS(getDesiredCapabilities()));
  40. openTestURL();
  41. MenuBarElement menu = $(MenuBarElement.class).id("image");
  42. WebElement moreItem = menu
  43. .findElements(By.className("v-menubar-menuitem")).get(4);
  44. String image = "/tests-valo/img/email-reply.png";
  45. assertImage(image, menu.findElement(By.vaadin("#Main")));
  46. WebElement hasSubElement = menu.findElement(By.vaadin("#Has sub"));
  47. assertImage(image, hasSubElement);
  48. assertImage(image, menu.findElement(By.vaadin("#Filler 0")));
  49. hasSubElement.click();
  50. assertImage(image, hasSubElement.findElement(By.vaadin("#Sub item")));
  51. // Close sub menu
  52. hasSubElement.click();
  53. assertImage(image, moreItem);
  54. moreItem.click();
  55. waitForElementPresent(By.className("v-menubar-submenu"));
  56. WebElement filler5 = moreItem.findElement(By.vaadin("#Filler 5"));
  57. assertImage(image, filler5);
  58. }
  59. private void assertImage(String image, WebElement menuItem) {
  60. WebElement imageElement = menuItem.findElement(By.className("v-icon"));
  61. assertTrue(imageElement.getAttribute("src").endsWith(image));
  62. }
  63. private void assertFontIcon(FontAwesome expected, WebElement menuItem) {
  64. WebElement mainIcon = menuItem.findElement(By.className("v-icon"));
  65. assertEquals(expected.getCodepoint(),
  66. mainIcon.getText().codePointAt(0));
  67. }
  68. }