Browse Source

Convert DateTimeFieldReadOnlyTest to not rely on screenshots. (#11870)

tags/8.10.0.beta1
Anna Koskinen 4 years ago
parent
commit
cfb26c45de
13 changed files with 45 additions and 16 deletions
  1. BIN
      uitest/reference-screenshots/chrome/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Chrome__initial-date.png
  2. BIN
      uitest/reference-screenshots/chrome/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Chrome__readonly-date.png
  3. BIN
      uitest/reference-screenshots/chrome/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Chrome__readwrite-popup-date.png
  4. BIN
      uitest/reference-screenshots/firefox/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Firefox__initial-date.png
  5. BIN
      uitest/reference-screenshots/firefox/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Firefox__readonly-date.png
  6. BIN
      uitest/reference-screenshots/firefox/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Firefox__readwrite-popup-date.png
  7. BIN
      uitest/reference-screenshots/internetexplorer/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_Windows_InternetExplorer_11_initial-date.png
  8. BIN
      uitest/reference-screenshots/internetexplorer/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_Windows_InternetExplorer_11_readonly-date.png
  9. BIN
      uitest/reference-screenshots/internetexplorer/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_Windows_InternetExplorer_11_readwrite-popup-date.png
  10. BIN
      uitest/reference-screenshots/phantomjs/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_LINUX_PhantomJS_1_initial-date.png
  11. BIN
      uitest/reference-screenshots/phantomjs/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_LINUX_PhantomJS_1_readonly-date.png
  12. BIN
      uitest/reference-screenshots/phantomjs/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_LINUX_PhantomJS_1_readwrite-popup-date.png
  13. 45
    16
      uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldReadOnlyTest.java

BIN
uitest/reference-screenshots/chrome/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Chrome__initial-date.png View File


BIN
uitest/reference-screenshots/chrome/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Chrome__readonly-date.png View File


BIN
uitest/reference-screenshots/chrome/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Chrome__readwrite-popup-date.png View File


BIN
uitest/reference-screenshots/firefox/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Firefox__initial-date.png View File


BIN
uitest/reference-screenshots/firefox/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Firefox__readonly-date.png View File


BIN
uitest/reference-screenshots/firefox/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_ANY_Firefox__readwrite-popup-date.png View File


BIN
uitest/reference-screenshots/internetexplorer/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_Windows_InternetExplorer_11_initial-date.png View File


BIN
uitest/reference-screenshots/internetexplorer/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_Windows_InternetExplorer_11_readonly-date.png View File


BIN
uitest/reference-screenshots/internetexplorer/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_Windows_InternetExplorer_11_readwrite-popup-date.png View File


BIN
uitest/reference-screenshots/phantomjs/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_LINUX_PhantomJS_1_initial-date.png View File


BIN
uitest/reference-screenshots/phantomjs/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_LINUX_PhantomJS_1_readonly-date.png View File


BIN
uitest/reference-screenshots/phantomjs/DateTimeFieldReadOnlyTest-readOnlyDateFieldPopupShouldNotOpen_LINUX_PhantomJS_1_readwrite-popup-date.png View File


+ 45
- 16
uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldReadOnlyTest.java View File

@@ -1,13 +1,18 @@
package com.vaadin.tests.components.datefield;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import java.io.IOException;

import org.junit.Test;
import org.openqa.selenium.Keys;
import org.openqa.selenium.ElementNotInteractableException;
import org.openqa.selenium.WebElement;

import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.AbstractDateFieldElement;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.DateTimeFieldElement;
import com.vaadin.tests.tb3.MultiBrowserTest;

public class DateTimeFieldReadOnlyTest extends MultiBrowserTest {
@@ -17,27 +22,51 @@ public class DateTimeFieldReadOnlyTest extends MultiBrowserTest {
throws IOException, InterruptedException {
openTestURL();

compareScreen("initial-date");
DateTimeFieldElement df = $(DateTimeFieldElement.class).first();
WebElement dfButton = df
.findElement(By.className("v-datefield-button"));

// ensure initial read-only state works and pop-up cannot be opened
assertTrue(df.hasClassName("v-readonly"));
assertEquals("none", dfButton.getCssValue("display"));
assertTrue(findElements(By.className("v-datefield-calendarpanel"))
.isEmpty());

assertFalse(openPopup(df));
assertTrue(findElements(By.className("v-datefield-calendarpanel"))
.isEmpty());

// ensure read-only state can be removed and the component is still
// functional
toggleReadOnly();
assertFalse(df.hasClassName("v-readonly"));
assertEquals("inline-block", dfButton.getCssValue("display"));

openPopup();
compareScreen("readwrite-popup-date");
assertTrue(openPopup(df));
assertEquals(1,
findElements(By.className("v-datefield-calendarpanel")).size());

closePopup();
// ensure read-only state can be re-applied, pop-up is closed and cannot
// be re-opened
toggleReadOnly();
compareScreen("readonly-date");
}
assertTrue(df.hasClassName("v-readonly"));
assertEquals("none", dfButton.getCssValue("display"));
assertTrue(findElements(By.className("v-datefield-calendarpanel"))
.isEmpty());

private void closePopup() {
findElement(By.className("v-datefield-calendarpanel"))
.sendKeys(Keys.RETURN);
assertFalse(openPopup(df));
assertTrue(findElements(By.className("v-datefield-calendarpanel"))
.isEmpty());
}

private void openPopup() {
// waiting for openPopup() in TB4 beta1:
// http://dev.vaadin.com/ticket/13766
$(AbstractDateFieldElement.class).first()
.findElement(By.tagName("button")).click();
private boolean openPopup(DateTimeFieldElement df) {
// ensure the hidden button cannot be interacted with
try {
df.openPopup();
return true;
} catch (ElementNotInteractableException e) {
return false;
}
}

private void toggleReadOnly() {

Loading…
Cancel
Save