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.

TableScrollAfterAddRowTest.java 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.vaadin.tests.components.table;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertNotEquals;
  4. import org.junit.Before;
  5. import org.junit.Test;
  6. import org.openqa.selenium.By;
  7. import org.openqa.selenium.JavascriptExecutor;
  8. import org.openqa.selenium.WebElement;
  9. import com.vaadin.testbench.commands.TestBenchCommandExecutor;
  10. import com.vaadin.testbench.elements.ButtonElement;
  11. import com.vaadin.testbench.elements.LabelElement;
  12. import com.vaadin.testbench.screenshot.ImageComparison;
  13. import com.vaadin.testbench.screenshot.ReferenceNameGenerator;
  14. import com.vaadin.tests.tb3.MultiBrowserTest;
  15. public class TableScrollAfterAddRowTest extends MultiBrowserTest {
  16. @Before
  17. public void init() {
  18. openTestURL();
  19. }
  20. @Test
  21. public void testJumpToFirstRow() throws InterruptedException {
  22. jumpToFifteenthRow();
  23. sleep(300);
  24. jumpToFirstRow();
  25. assertEquals("0", getCurrentPageFirstItemIndex());
  26. }
  27. @Test
  28. public void testAddRowAfterJumpToLastRow() throws InterruptedException {
  29. jumpToLastRow();
  30. addRow();
  31. sleep(200);
  32. assertEquals("85", getCurrentPageFirstItemIndex());
  33. }
  34. @Test
  35. public void testAddRowAfterJumpingToLastRowAndScrollingUp()
  36. throws InterruptedException {
  37. jumpToLastRow();
  38. scrollUp();
  39. addRow();
  40. sleep(200);
  41. assertNotEquals("86", getCurrentPageFirstItemIndex());
  42. }
  43. private void scrollUp() {
  44. WebElement actualElement = getDriver()
  45. .findElement(By.className("v-table-body-wrapper"));
  46. JavascriptExecutor js = new TestBenchCommandExecutor(getDriver(),
  47. new ImageComparison(), new ReferenceNameGenerator());
  48. js.executeScript("arguments[0].scrollTop = " + 30, actualElement);
  49. }
  50. private String getCurrentPageFirstItemIndex() throws InterruptedException {
  51. ButtonElement updateLabelButton = $(ButtonElement.class).get(4);
  52. LabelElement label = $(LabelElement.class).get(1);
  53. updateLabelButton.click();
  54. sleep(200);
  55. return label.getText();
  56. }
  57. private void addRow() {
  58. ButtonElement button = $(ButtonElement.class).get(0);
  59. button.click();
  60. }
  61. private void jumpToFirstRow() {
  62. ButtonElement button = $(ButtonElement.class).get(3);
  63. button.click();
  64. }
  65. private void jumpToFifteenthRow() {
  66. ButtonElement button = $(ButtonElement.class).get(2);
  67. button.click();
  68. }
  69. private void jumpToLastRow() {
  70. ButtonElement button = $(ButtonElement.class).get(1);
  71. button.click();
  72. }
  73. }