選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

TableScrollAfterAddRowTest.java 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /*
  2. * Copyright 2000-2014 Vaadin Ltd.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy of
  6. * the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations under
  14. * the License.
  15. */
  16. package com.vaadin.tests.components.table;
  17. import static org.junit.Assert.assertEquals;
  18. import org.junit.Assert;
  19. import org.junit.Before;
  20. import org.junit.Test;
  21. import org.openqa.selenium.By;
  22. import org.openqa.selenium.JavascriptExecutor;
  23. import org.openqa.selenium.WebElement;
  24. import com.vaadin.testbench.commands.TestBenchCommandExecutor;
  25. import com.vaadin.testbench.elements.ButtonElement;
  26. import com.vaadin.testbench.elements.LabelElement;
  27. import com.vaadin.testbench.screenshot.ImageComparison;
  28. import com.vaadin.testbench.screenshot.ReferenceNameGenerator;
  29. import com.vaadin.tests.tb3.MultiBrowserTest;
  30. public class TableScrollAfterAddRowTest extends MultiBrowserTest {
  31. @Before
  32. public void init() {
  33. openTestURL();
  34. }
  35. @Test
  36. public void testJumpToFirstRow() throws InterruptedException {
  37. jumpToFifteenthRow();
  38. sleep(300);
  39. jumpToFirstRow();
  40. assertEquals("0", getCurrentPageFirstItemIndex());
  41. }
  42. @Test
  43. public void testAddRowAfterJumpToLastRow() throws InterruptedException {
  44. jumpToLastRow();
  45. addRow();
  46. sleep(200);
  47. assertEquals("85", getCurrentPageFirstItemIndex());
  48. }
  49. @Test
  50. public void testAddRowAfterJumpingToLastRowAndScrollingUp()
  51. throws InterruptedException {
  52. jumpToLastRow();
  53. scrollUp();
  54. addRow();
  55. sleep(200);
  56. Assert.assertNotEquals("86", getCurrentPageFirstItemIndex());
  57. }
  58. private void scrollUp() {
  59. WebElement actualElement = getDriver().findElement(
  60. By.className("v-table-body-wrapper"));
  61. JavascriptExecutor js = new TestBenchCommandExecutor(getDriver(),
  62. new ImageComparison(), new ReferenceNameGenerator());
  63. js.executeScript("arguments[0].scrollTop = " + 30, actualElement);
  64. }
  65. private String getCurrentPageFirstItemIndex() throws InterruptedException {
  66. ButtonElement updateLabelButton = $(ButtonElement.class).get(4);
  67. LabelElement label = $(LabelElement.class).get(1);
  68. updateLabelButton.click();
  69. sleep(200);
  70. return label.getText();
  71. }
  72. private void addRow() {
  73. ButtonElement button = $(ButtonElement.class).get(0);
  74. button.click();
  75. }
  76. private void jumpToFirstRow() {
  77. ButtonElement button = $(ButtonElement.class).get(3);
  78. button.click();
  79. }
  80. private void jumpToFifteenthRow() {
  81. ButtonElement button = $(ButtonElement.class).get(2);
  82. button.click();
  83. }
  84. private void jumpToLastRow() {
  85. ButtonElement button = $(ButtonElement.class).get(1);
  86. button.click();
  87. }
  88. }