You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by so...@apache.org on 2017/10/06 05:15:37 UTC
wicket git commit: More tests are added some issues are fixed
Repository: wicket
Updated Branches:
refs/heads/WICKET-6105-java.time 3dc016119 -> 06655a6b0
More tests are added some issues are fixed
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/06655a6b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/06655a6b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/06655a6b
Branch: refs/heads/WICKET-6105-java.time
Commit: 06655a6b0b7f5eca53499a8f7f5c9bd4c2c9d83b
Parents: 3dc01611
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Fri Oct 6 12:15:28 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Fri Oct 6 12:15:28 2017 +0700
----------------------------------------------------------------------
.../form/datetime/AbstractDateTimeField.java | 22 ++++---
.../html/form/datetime/DateTimeField.java | 12 +---
.../html/form/datetime/ZonedDateTimeField.java | 10 +--
.../html/form/datetime/DateTimeFieldTest.java | 64 ++++++++++++++++++++
4 files changed, 81 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/06655a6b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/AbstractDateTimeField.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/AbstractDateTimeField.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/AbstractDateTimeField.java
index 5ec27a6..8b6f85d 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/AbstractDateTimeField.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/AbstractDateTimeField.java
@@ -137,18 +137,18 @@ abstract class AbstractDateTimeField<T extends Temporal> extends FormComponentPa
try
{
// Get the converted input values
- LocalDate localDate = dateField.getConvertedInput();
+ LocalDate date = dateField.getConvertedInput();
+ LocalTime time = timeField.getConvertedInput();
- if (localDate == null)
+ if (date == null || time == null)
{
- return;
+ setConvertedInput(null);
+ }
+ else
+ {
+ // Use the input to create proper date-time
+ setConvertedInput(performConvert(date, time));
}
-
- // Use the input to create a date object with proper timezone
- LocalTime localTime = timeField.getConvertedInput();
-
- // The date will be in the server's timezone
- setConvertedInput(performConvert(localDate, localTime));
}
catch (RuntimeException e)
{
@@ -159,7 +159,9 @@ abstract class AbstractDateTimeField<T extends Temporal> extends FormComponentPa
abstract T performConvert(LocalDate date, LocalTime time);
- abstract void prepareObject();
+ void prepareObject() {
+ // no-op by default
+ }
/**
* create a new {@link DateField} instance to be added to this panel.
http://git-wip-us.apache.org/repos/asf/wicket/blob/06655a6b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java
index 8ff825a..bc4801c 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java
@@ -90,17 +90,9 @@ public class DateTimeField extends AbstractDateTimeField<LocalDateTime>
return LocalDateTime.of(date, time);
}
- @Override
- void prepareObject() {
- if (getModelObject() == null)
- {
- dateTime = null;
- }
- }
-
LocalDate getLocalDate()
{
- return dateTime.toLocalDate();
+ return getModelObject() == null ? null : dateTime.toLocalDate();
}
void setLocalDate(LocalDate date)
@@ -112,7 +104,7 @@ public class DateTimeField extends AbstractDateTimeField<LocalDateTime>
LocalTime getLocalTime()
{
- return dateTime.toLocalTime();
+ return getModelObject() == null ? null : dateTime.toLocalTime();
}
void setLocalTime(LocalTime time)
http://git-wip-us.apache.org/repos/asf/wicket/blob/06655a6b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeField.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeField.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeField.java
index a6814f8..eb70e12 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeField.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeField.java
@@ -114,11 +114,7 @@ public class ZonedDateTimeField extends AbstractDateTimeField<ZonedDateTime>
@Override
void prepareObject() {
ZonedDateTime modelObject = getModelObject();
- if (modelObject == null)
- {
- dateTime = null;
- }
- else
+ if (modelObject != null)
{
// convert date to the client's time zone if we have that info
ZoneId zone = getClientTimeZone();
@@ -131,7 +127,7 @@ public class ZonedDateTimeField extends AbstractDateTimeField<ZonedDateTime>
LocalDate getLocalDate()
{
- return dateTime.toLocalDate();
+ return getModelObject() == null ? null : dateTime.toLocalDate();
}
void setLocalDate(LocalDate date)
@@ -143,7 +139,7 @@ public class ZonedDateTimeField extends AbstractDateTimeField<ZonedDateTime>
LocalTime getLocalTime()
{
- return dateTime.toLocalTime();
+ return getModelObject() == null ? null : dateTime.toLocalTime();
}
void setLocalTime(LocalTime time)
http://git-wip-us.apache.org/repos/asf/wicket/blob/06655a6b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeFieldTest.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeFieldTest.java b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeFieldTest.java
index 3b167e4..753e98e 100644
--- a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeFieldTest.java
+++ b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeFieldTest.java
@@ -18,6 +18,7 @@ package org.apache.wicket.extensions.markup.html.form.datetime;
import java.io.Serializable;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Locale;
@@ -104,6 +105,69 @@ public class DateTimeFieldTest extends WicketTestCase {
assertEquals(date, d);
}
+ @Test
+ public void dateTimeNullTest() {
+ TestDateTimePage page = new TestDateTimePage(null);
+ tester.startPage(page);
+ FormTester formTester = tester.newFormTester("form", false);
+ formTester.submit();
+ assertNull(page.field.getModelObject());
+ }
+
+ @Test
+ public void dateTimeNullTest1() {
+ LocalDate date = LocalDate.of(2017, 02, 13);
+ TestDateTimePage page = new TestDateTimePage(null);
+ tester.startPage(page);
+ FormTester formTester = tester.newFormTester("form", false);
+ formTester.setValue("field:date", new StyleDateConverter("F").convertToString(date, Locale.forLanguageTag("en-US")));
+ formTester.submit();
+ assertNull(page.field.getModelObject());
+ }
+
+ @Test
+ public void dateTimeNullTest2() {
+ TestDateTimePage page = new TestDateTimePage(null);
+ tester.startPage(page);
+ FormTester formTester = tester.newFormTester("form", false);
+ formTester.setValue("field:time:hours", "6");
+ formTester.setValue("field:time:minutes", "15");
+ formTester.select("field:time:amOrPmChoice", 0);
+ formTester.submit();
+ assertNull(page.field.getModelObject());
+ }
+
+ @Test
+ public void dateTimeNotNullTest() {
+ LocalDate date = LocalDate.of(2017, 02, 13);
+ TestDateTimePage page = new TestDateTimePage(null);
+ tester.startPage(page);
+ FormTester formTester = tester.newFormTester("form", false);
+ formTester.setValue("field:date", new StyleDateConverter("S").convertToString(date, Locale.forLanguageTag("en-US")));
+ formTester.setValue("field:time:hours", "6");
+ formTester.setValue("field:time:minutes", "15");
+ formTester.select("field:time:amOrPmChoice", 0);
+ formTester.submit();
+ assertNotNull(page.field.getModelObject());
+ assertEquals(LocalDateTime.of(date, LocalTime.of(6, 15)), page.field.getModelObject());
+ }
+
+ public static class TestDateTimePage extends TestPage<LocalDateTime>
+ {
+ private static final long serialVersionUID = 1L;
+
+ TestDateTimePage(LocalDateTime val)
+ {
+ super(val);
+ }
+
+ @Override
+ FormComponent<LocalDateTime> newComponent()
+ {
+ return new DateTimeField("field", model);
+ }
+ }
+
public static class TestDatePage extends TestPage<LocalDate>
{
private static final long serialVersionUID = 1L;