Author: jdonnerstag
Date: Wed Dec 29 09:03:51 2010
New Revision: 1053572
URL: http://svn.apache.org/viewvc?rev=1053572&view=rev
Log:
some additional tests to figure out why it doesn't work on hudson
Modified:
wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java
Modified:
wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java?rev=1053572&r1=1053571&r2=1053572&view=diff
==============================================================================
---
wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java
(original)
+++
wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java
Wed Dec 29 09:03:51 2010
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.extensions.yui.calendar;
+import java.text.DateFormat;
+import java.text.ParseException;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
@@ -23,9 +25,11 @@ import java.util.TimeZone;
import org.apache.wicket.Page;
import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.extensions.yui.calendar.DateTimeField.AM_PM;
import org.apache.wicket.protocol.http.request.WebClientInfo;
import org.apache.wicket.util.tester.DiffUtil;
import org.apache.wicket.util.tester.FormTester;
+import org.joda.time.DateTimeFieldType;
import org.joda.time.DateTimeZone;
import org.joda.time.MutableDateTime;
import org.slf4j.Logger;
@@ -125,6 +129,143 @@ public class DatePickerTest extends Wick
}
/**
+ *
+ * @throws ParseException
+ */
+ public void testDates1() throws ParseException
+ {
+ TimeZone tzClient = TimeZone.getTimeZone("America/Los_Angeles");
+ TimeZone tzServer = TimeZone.getTimeZone("Europe/Berlin");
+
+ TimeZone.setDefault(tzServer);
+ Locale.setDefault(Locale.GERMAN);
+
+ Date orig = convertDate("06.11.2010", null, null, null, false,
tzClient);
+
+ MutableDateTime dt = new
MutableDateTime(DateTimeZone.forTimeZone(tzClient));
+ dt.setDateTime(2010, 11, 06, 0, 0, 0, 0);
+ Date date = new Date(dt.getMillis());
+
+ log.error("actual: " + orig.getTime() + "; expected: " +
date.getTime());
+ log.error("actual: " + orig + "; expected: " + date);
+ assertEquals(date.getTime(), orig.getTime());
+ }
+
+ /**
+ *
+ * @throws ParseException
+ */
+ public void testDates2() throws ParseException
+ {
+ TimeZone tzClient = TimeZone.getTimeZone("America/Los_Angeles");
+ TimeZone tzServer = TimeZone.getTimeZone("Europe/Berlin");
+
+ TimeZone.setDefault(tzServer);
+ Locale.setDefault(Locale.GERMAN);
+
+ Date orig = convertDate("06.11.2010", 0, 0, AM_PM.AM, false,
tzClient);
+
+ MutableDateTime dt = new
MutableDateTime(DateTimeZone.forTimeZone(tzClient));
+ dt.setDateTime(2010, 11, 06, 0, 0, 0, 0);
+ Date date = new Date(dt.getMillis());
+
+ log.error("actual: " + orig.getTime() + "; expected: " +
date.getTime());
+ log.error("actual: " + orig + "; expected: " + date);
+ assertEquals(date.getTime(), orig.getTime());
+ }
+
+ /**
+ *
+ * @throws ParseException
+ */
+ public void testDates3() throws ParseException
+ {
+ TimeZone tzClient = TimeZone.getTimeZone("America/Los_Angeles");
+ TimeZone tzServer = TimeZone.getTimeZone("Europe/Berlin");
+
+ TimeZone.setDefault(tzServer);
+ Locale.setDefault(Locale.GERMAN);
+
+ Date orig = convertDate("06.11.2010", 12, 0, null, false,
tzClient);
+
+ MutableDateTime dt = new
MutableDateTime(DateTimeZone.forTimeZone(tzClient));
+ dt.setDateTime(2010, 11, 06, 12, 0, 0, 0);
+ Date date = new Date(dt.getMillis());
+
+ log.error("actual: " + orig.getTime() + "; expected: " +
date.getTime());
+ log.error("actual: " + orig + "; expected: " + date);
+ assertEquals(date.getTime(), orig.getTime());
+ }
+
+ /**
+ * Simulate what DateTimeField does
+ *
+ * @param dateStr
+ * @param hours
+ * @param minutes
+ * @param amOrPm
+ * @param use12HourFormat
+ * @param tzClient
+ * @return Date
+ * @throws ParseException
+ */
+ public Date convertDate(final String dateStr, final Integer hours,
final Integer minutes,
+ final AM_PM amOrPm, final boolean use12HourFormat, final
TimeZone tzClient)
+ throws ParseException
+ {
+ Date dateFieldInput = (dateStr != null ?
DateFormat.getDateInstance().parse(dateStr) : null);
+
+ // Default to today, if date entry was invisible
+ final MutableDateTime date;
+ if (dateFieldInput != null)
+ {
+ date = new MutableDateTime(dateFieldInput);
+ }
+ else
+ {
+ // Current date
+ date = new MutableDateTime();
+ }
+
+ // always set secs to 0
+ date.setSecondOfMinute(0);
+
+ // The AM/PM field
+ if (use12HourFormat)
+ {
+ date.set(DateTimeFieldType.halfdayOfDay(), amOrPm ==
AM_PM.PM ? 1 : 0);
+ }
+
+ // The hours
+ if (hours == null)
+ {
+ date.setHourOfDay(0);
+ }
+ else
+ {
+ date.set(DateTimeFieldType.hourOfDay(), hours %
(use12HourFormat ? 12 : 24));
+ }
+
+ // The minutes
+ if (minutes == null)
+ {
+ date.setMinuteOfHour(0);
+ }
+ else
+ {
+ date.setMinuteOfHour(minutes);
+ }
+
+ // Use the client timezone to properly calculate the millisecs
+ if (tzClient != null)
+ {
+
date.setZoneRetainFields(DateTimeZone.forTimeZone(tzClient));
+ }
+
+ return new Date(date.getMillis());
+ }
+
+ /**
* Use <code>-Dwicket.replace.expected.results=true</code> to
automatically replace the expected
* output file.
*