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.

ColumnCollapsingAndColumnExpansionTest.java 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.vaadin.tests.components.table;
  2. import static org.junit.Assert.assertEquals;
  3. import java.io.IOException;
  4. import org.junit.Test;
  5. import org.openqa.selenium.JavascriptExecutor;
  6. import org.openqa.selenium.WebElement;
  7. import com.vaadin.testbench.TestBenchElement;
  8. import com.vaadin.testbench.elements.ButtonElement;
  9. import com.vaadin.testbench.elements.TableElement;
  10. import com.vaadin.testbench.elements.TableElement.ContextMenuElement;
  11. import com.vaadin.testbench.parallel.BrowserUtil;
  12. import com.vaadin.tests.tb3.MultiBrowserTest;
  13. public class ColumnCollapsingAndColumnExpansionTest extends MultiBrowserTest {
  14. @Test
  15. public void expandCorrectlyAfterCollapse() throws IOException {
  16. openTestURL();
  17. TableElement table = $(TableElement.class).first();
  18. // Hide col2 through UI
  19. table.openCollapseMenu().getItem(1).click();
  20. compareScreen(table, "col1-col3");
  21. // Hide col1 using button
  22. ButtonElement hide1 = $(ButtonElement.class).caption("Collapse Col1")
  23. .first();
  24. hide1.click();
  25. compareScreen(table, "col3");
  26. // Show column 2 using context menu (first action)
  27. contextClick(table.getCell(0, 0));
  28. ContextMenuElement contextMenu = table.getContextMenu();
  29. WebElement i = contextMenu.getItem(0);
  30. i.click();
  31. compareScreen(table, "col2-col3");
  32. // Show column 1 again
  33. ButtonElement show1 = $(ButtonElement.class).caption("Show Col1")
  34. .first();
  35. show1.click();
  36. compareScreen(table, "col1-col2-col3");
  37. }
  38. private void contextClick(TestBenchElement e) {
  39. if (BrowserUtil.isPhantomJS(getDesiredCapabilities())) {
  40. JavascriptExecutor js = (JavascriptExecutor) getDriver();
  41. String scr = "var element=arguments[0];"
  42. + "var ev = document.createEvent('HTMLEvents');"
  43. + "ev.initEvent('contextmenu', true, false);"
  44. + "element.dispatchEvent(ev);";
  45. js.executeScript(scr, e);
  46. } else {
  47. e.contextClick();
  48. }
  49. }
  50. @Test
  51. public void collapseEvents() {
  52. openTestURL();
  53. TableElement table = $(TableElement.class).first();
  54. // Through menu
  55. table.openCollapseMenu().getItem(0).click();
  56. assertEquals("1. Collapse state for Col1 changed to true",
  57. getLogRow(0));
  58. // Through button
  59. $(ButtonElement.class).caption("Collapse Col2").first().click();
  60. assertEquals("2. Collapse state for Col2 changed to true",
  61. getLogRow(0));
  62. // Show through menu
  63. table.openCollapseMenu().getItem(1).click();
  64. assertEquals("3. Collapse state for Col1 changed to false",
  65. getLogRow(0));
  66. // Show through button
  67. $(ButtonElement.class).caption("Show Col2").first().click();
  68. assertEquals("4. Collapse state for Col2 changed to false",
  69. getLogRow(0));
  70. }
  71. }