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.
         * 


Reply via email to