From ce2e8bd7c6c7dfb3fa5a026ce75db6efcfb356d2 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 24 Oct 2017 11:34:52 +0200 Subject: [PATCH] allow tests to use timeformat with and without seconds for html5DateTimeBox, added placeholders for older browsers --- .../gwt/ui/shared/DateTimeBoxFallbackStrategie.java | 3 ++- .../com/sap/sailing/selenium/pages/PageObject.java | 2 +- .../pages/adminconsole/event/EventCreateDialogPO.java | 4 ++-- .../leaderboard/SetStartTimeDialogPO.java | 2 +- .../adminconsole/regatta/RegattaCreateDialogPO.java | 4 ++-- .../selenium/pages/gwt/BetterDateTimeBoxPO.java | 11 +++++++++-- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java index 3c16e2c3dbd..4c95fe7b0b7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java @@ -36,14 +36,15 @@ public class DateTimeBoxFallbackStrategie extends Composite implements DateTimeB initWidget(uiBinder.createAndBindUi(this)); // parser for low level, RFC compatible format dateFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); - datebox.setFormat(new DefaultFormat(dateFormat)); + datebox.getElement().setAttribute("placeholder", dateFormat.getPattern()); datebox.ensureDebugId("datebox"); UIObject.ensureDebugId(timebox, "timebox"); if (format != Format.YEAR_TO_DAY) { timeFormat = DateTimeFormat.getFormat(format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss"); + timebox.setAttribute("placeholder", timeFormat.getPattern()); if (format == Format.YEAR_TO_SECOND) { timebox.setAttribute("step", "1"); } else { diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java index a4ee5fc5e41..50828202f50 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java @@ -74,7 +74,7 @@ public class PageObject { /** *

The default timeout of 15 seconds for the lookup of other elements.

*/ - protected static final int DEFAULT_LOOKUP_TIMEOUT = 15; + protected static final int DEFAULT_LOOKUP_TIMEOUT = 60; /** *

The web driver to use.

diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/event/EventCreateDialogPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/event/EventCreateDialogPO.java index af22c31ff14..09e8f75952c 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/event/EventCreateDialogPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/event/EventCreateDialogPO.java @@ -50,8 +50,8 @@ public class EventCreateDialogPO extends DataEntryDialogPO { TextBoxPO.create(driver, nameTextBox).appendText(name); TextAreaPO.create(driver, descriptionTextArea).appendText(description); TextBoxPO.create(driver, venueTextBox).appendText(venue); - BetterDateTimeBoxPO.create(driver, startDateTimeBox).setDate(start); - BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(end); + BetterDateTimeBoxPO.create(driver, startDateTimeBox).setDate(start, false); + BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(end, false); CheckBoxPO.create(driver, isPublicCheckBox).setSelected(isPublic); } diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/SetStartTimeDialogPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/SetStartTimeDialogPO.java index 7150af20da3..32dff2f1b28 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/SetStartTimeDialogPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/SetStartTimeDialogPO.java @@ -28,7 +28,7 @@ public class SetStartTimeDialogPO extends DataEntryDialogPO { } public void setStartTimeValue(Date startTime) { - BetterDateTimeBoxPO.create(driver, startTimeTimeBox, true).setDate(startTime); + BetterDateTimeBoxPO.create(driver, startTimeTimeBox, true).setDate(startTime,true); } public void pressSetStartTime() { diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaCreateDialogPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaCreateDialogPO.java index faae30a507a..b85528c92f5 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaCreateDialogPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaCreateDialogPO.java @@ -56,8 +56,8 @@ public class RegattaCreateDialogPO extends DataEntryDialogPO { public void setValues(String name, String boatClass, Date startDate, Date endDate) { this.setRegattaName(name); this.setBoatClass(boatClass); - BetterDateTimeBoxPO.create(driver, startDateTimeBox).setDate(startDate); - BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(endDate); + BetterDateTimeBoxPO.create(driver, startDateTimeBox).setDate(startDate, false); + BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(endDate, false); } // TODO: Scoring System, Event and Course Area diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java index 5e9bb6af6c5..9cbbb6071b9 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java @@ -19,6 +19,7 @@ public class BetterDateTimeBoxPO extends PageArea { private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); private static final DateFormat timeFormat = new SimpleDateFormat("hh:mm"); + private static final DateFormat timeFormatSeconds = new SimpleDateFormat("hh:mm:ss"); @FindBy(how = BySeleniumId.class, using = "datebox") private WebElement datebox; @@ -39,17 +40,23 @@ public class BetterDateTimeBoxPO extends PageArea { * * @param date * the {@link Date} object to set + * @param withSeconds true, if the used TimeBox requires also seconds and not only hours and minutes * * @see DateFormat#format(Date) * @see #setText(String) */ - public void setDate(Date date) { + public void setDate(Date date, boolean withSeconds) { String datein = dateFormat.format(date); datebox.clear(); datebox.sendKeys(datein); // ensure popups are closed! datebox.sendKeys("\t"); - String timein = timeFormat.format(date); + final String timein; + if(withSeconds){ + timein = timeFormatSeconds.format(date); + }else{ + timein = timeFormat.format(date); + } timebox.clear(); timebox.sendKeys(timein); // ensure popups are closed!