Author: [EMAIL PROTECTED]
Date: Mon Nov 24 14:39:21 2008
New Revision: 4186

Added:
    trunk/user/test/com/google/gwt/i18n/client/DateTimeFormat_en_Test.java    
(contents, props changed)
Modified:
    trunk/user/test/com/google/gwt/i18n/I18NSuite.java

Log:
Added more tests for date/time formatting in the en locale.

patch by: shanjian
review by: ajr


Modified: trunk/user/test/com/google/gwt/i18n/I18NSuite.java
==============================================================================
--- trunk/user/test/com/google/gwt/i18n/I18NSuite.java  (original)
+++ trunk/user/test/com/google/gwt/i18n/I18NSuite.java  Mon Nov 24 14:39:21  
2008
@@ -18,6 +18,7 @@
  import com.google.gwt.i18n.client.AnnotationsTest;
  import com.google.gwt.i18n.client.ArabicPluralsTest;
  import com.google.gwt.i18n.client.DateTimeFormat_de_Test;
+import com.google.gwt.i18n.client.DateTimeFormat_en_Test;
  import com.google.gwt.i18n.client.DateTimeParse_en_Test;
  import com.google.gwt.i18n.client.DateTimeParse_zh_CN_Test;
  import com.google.gwt.i18n.client.I18N2Test;
@@ -50,6 +51,7 @@
      suite.addTestSuite(AnnotationsTest.class);
      suite.addTestSuite(ConstantMapTest.class);
      suite.addTestSuite(DateTimeFormat_de_Test.class);
+    suite.addTestSuite(DateTimeFormat_en_Test.class);
      suite.addTestSuite(DateTimeParse_en_Test.class);
      suite.addTestSuite(DateTimeParse_zh_CN_Test.class);
      suite.addTestSuite(I18NTest.class);

Added:  
trunk/user/test/com/google/gwt/i18n/client/DateTimeFormat_en_Test.java
==============================================================================
--- (empty file)
+++ trunk/user/test/com/google/gwt/i18n/client/DateTimeFormat_en_Test.java      
 
Mon Nov 24 14:39:21 2008
@@ -0,0 +1,418 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may  
not
+ * use this file except in compliance with the License. You may obtain a  
copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations  
under
+ * the License.
+ */
+package com.google.gwt.i18n.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.i18n.client.constants.TimeZoneConstants;
+import com.google.gwt.junit.client.GWTTestCase;
+
+import java.util.Date;
+
+/**
+ * Tests formatting functionality in [EMAIL PROTECTED] DateTimeFormat} for the 
German
+ * language.
+ */
+public class DateTimeFormat_en_Test extends GWTTestCase {
+
+  public String getModuleName() {
+    return "com.google.gwt.i18n.I18NTest";
+  }
+
+  public void test_EEEEMMMddyy() {
+    Date date = new Date(2006 - 1900, 6, 27, 13, 10, 10);
+    assertEquals("Thursday,July 27, 2006", DateTimeFormat.getFormat(
+        "EEEE,MMMM dd, yyyy").format(date));
+  }
+
+  public void test_EEEMMMddyy() {
+    Date date = new Date(2006 - 1900, 6, 27, 13, 10, 10);
+    assertEquals("Thu, Jul 27, 06",
+        DateTimeFormat.getFormat("EEE, MMM d, yy").format(date));
+  }
+
+  public void test_HHmmss() {
+    Date date = new Date(2006 - 1900, 6, 27, 13, 10, 10);
+    assertEquals("13:10:10",  
DateTimeFormat.getFormat("HH:mm:ss").format(date));
+  }
+
+  public void test_hhmmssa() {
+    Date date = new Date(2006 - 1900, 6, 27, 13, 10, 10);
+    assertEquals("1:10:10 PM", DateTimeFormat.getFormat("h:mm:ss  
a").format(
+        date));
+  }
+
+  public void test_predefinedFormat() {
+    Date date = new Date(2006 - 1900, 7, 4, 13, 49, 24);
+
+    TimeZoneConstants timeZoneData = GWT.create(TimeZoneConstants.class);
+    String str = timeZoneData.americaLosAngeles();
+    TimeZone usPacific =  
TimeZone.createTimeZone(TimeZoneInfo.buildTimeZoneData(str));
+
+    String fullDateFormat =  
DateTimeFormat.getFullDateFormat().format(date);
+    assertEquals("Friday, August 4, 2006", fullDateFormat);
+
+    String longDateFormat =  
DateTimeFormat.getLongDateFormat().format(date);
+    assertEquals("August 4, 2006", longDateFormat);
+
+    String medDateFormat =  
DateTimeFormat.getMediumDateFormat().format(date);
+    assertEquals("Aug 4, 2006", medDateFormat);
+
+    String shortDateFormat =  
DateTimeFormat.getShortDateFormat().format(date);
+    assertEquals("8/4/06", shortDateFormat);
+
+    // When dealing with time zone, better use UTC time.
+    // And when UTC time is used, time zone must be given in "format".
+    date.setTime(Date.UTC(2006 - 1900, 7, 4, 20, 49, 24));
+    String fullTimeFormat = DateTimeFormat.getFullTimeFormat().format(date,
+        usPacific);
+    assertEquals("1:49:24 PM America/Los_Angeles", fullTimeFormat);
+
+    String longTimeFormat = DateTimeFormat.getLongTimeFormat().format(date,
+        usPacific);
+    assertEquals("1:49:24 PM PDT", longTimeFormat);
+
+    String medTimeFormat =  
DateTimeFormat.getMediumTimeFormat().format(date,
+        usPacific);
+    assertEquals("1:49:24 PM", medTimeFormat);
+
+    String shortTimeFormat =  
DateTimeFormat.getShortTimeFormat().format(date,
+        usPacific);
+    assertEquals("1:49 PM", shortTimeFormat);
+
+    String medFormat =  
DateTimeFormat.getMediumDateTimeFormat().format(date,
+        usPacific);
+    assertEquals("Aug 4, 2006 1:49:24 PM", medFormat);
+
+    String shortFormat =  
DateTimeFormat.getShortDateTimeFormat().format(date,
+        usPacific);
+    assertEquals("8/4/06 1:49 PM", shortFormat);
+  }
+
+  public void test_QQQQyy() {
+    Date date;
+
+    date = new Date(2006 - 1900, 0, 27, 13, 10, 10);
+    assertEquals("1st quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 1, 27, 13, 10, 10);
+    assertEquals("1st quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 2, 27, 13, 10, 10);
+    assertEquals("1st quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 3, 27, 13, 10, 10);
+    assertEquals("2nd quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 4, 27, 13, 10, 10);
+    assertEquals("2nd quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 5, 27, 13, 10, 10);
+    assertEquals("2nd quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 6, 27, 13, 10, 10);
+    assertEquals("3rd quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 7, 27, 13, 10, 10);
+    assertEquals("3rd quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 8, 27, 13, 10, 10);
+    assertEquals("3rd quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 9, 27, 13, 10, 10);
+    assertEquals("4th quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 10, 27, 13, 10, 10);
+    assertEquals("4th quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+
+    date = new Date(2006 - 1900, 11, 27, 13, 10, 10);
+    assertEquals("4th quarter 06", DateTimeFormat.getFormat("QQQQ  
yy").format(
+        date));
+  }
+
+  public void test_QQyyyy() {
+    Date date = new Date(2006 - 1900, 0, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q1 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 1, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q1 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 2, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q1 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 3, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q2 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 4, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q2 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 5, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q2 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 6, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q3 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 7, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q3 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 8, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q3 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 9, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q4 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 10, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q4 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+    date = new Date(2006 - 1900, 11, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("Q4 2006", DateTimeFormat.getFormat("QQ  
yyyy").format(date));
+  }
+
+  public void test_quote() {
+    Date date = new Date(2006 - 1900, 6, 27);
+    date.setHours(13);
+    date.setMinutes(10);
+    date.setSeconds(10);
+    assertEquals("13 o'clock",
+        DateTimeFormat.getFormat("HH 'o''clock'").format(date));
+    assertEquals("13 oclock",  
DateTimeFormat.getFormat("HH 'oclock'").format(
+        date));
+    assertEquals("13 '", DateTimeFormat.getFormat("HH ''").format(date));
+  }
+
+  public void test_yyyyyMMMMM() {
+    Date date = new Date(2006 - 1900, 6, 27, 13, 10, 10);
+    assertEquals("2006.J.27 AD 01:10 PM", DateTimeFormat.getFormat(
+        "yyyyy.MMMMM.dd GGG hh:mm aaa").format(date));
+  }
+
+  public void test_timezonev() {
+    TimeZoneConstants timeZoneData = GWT.create(TimeZoneConstants.class);
+    String str = timeZoneData.americaLosAngeles();
+    TimeZone usPacific = TimeZone.createTimeZone(str);
+
+    Date date = new Date();
+    date.setTime(Date.UTC(2006 - 1900, 6, 27, 13, 10, 10));
+
+    assertEquals("07/27/2006 06:10:10 America/Los_Angeles",
+        DateTimeFormat.getFormat("MM/dd/yyyy HH:mm:ss v").format(date,
+            usPacific));
+
+    assertEquals("07/27/2006 06:10:10 America/Los_Angeles",
+        DateTimeFormat.getFormat("MM/dd/yyyy HH:mm:ss vv").format(date,
+            usPacific));
+
+    assertEquals("07/27/2006 06:10:10 America/Los_Angeles",
+        DateTimeFormat.getFormat("MM/dd/yyyy HH:mm:ss vvv").format(date,
+            usPacific));
+
+    assertEquals("07/27/2006 06:10:10 America/Los_Angeles",
+        DateTimeFormat.getFormat("MM/dd/yyyy HH:mm:ss vvvv").format(date,
+            usPacific));
+  }
+
+  public void test_simepleTimezonev() {
+    TimeZone simpleTimeZone = TimeZone.createTimeZone(480);
+
+    Date date = new Date();
+    date.setTime(Date.UTC(2006 - 1900, 6, 27, 14, 10, 10));
+
+    assertEquals("07/27/2006 06:10:10 Etc/GMT+8", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss v").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 Etc/GMT+8", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss vv").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 Etc/GMT+8", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss vvv").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 Etc/GMT+8", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss vvvv").format(date, simpleTimeZone));
+  }
+
+  public void test_timezoneZ() {
+    TimeZoneConstants timeZoneData = GWT.create(TimeZoneConstants.class);
+    String str = timeZoneData.americaLosAngeles();
+    TimeZone usPacific = TimeZone.createTimeZone(str);
+
+    Date date = new Date();
+    date.setTime(Date.UTC(2006 - 1900, 6, 27, 13, 10, 10));
+
+    assertEquals("07/27/2006 06:10:10 -0700", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss Z").format(date, usPacific));
+
+    assertEquals("07/27/2006 06:10:10 -0700", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZ").format(date, usPacific));
+
+    assertEquals("07/27/2006 06:10:10 -0700", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZZ").format(date, usPacific));
+
+    assertEquals("07/27/2006 06:10:10 GMT-07:00", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZZZ").format(date, usPacific));
+
+    date.setTime(Date.UTC(2006 - 1900, 1, 27, 13, 10, 10));
+    assertEquals("02/27/2006 05:10:10 -0800", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss Z").format(date, usPacific));
+
+    assertEquals("02/27/2006 05:10:10 -0800", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZ").format(date, usPacific));
+
+    assertEquals("02/27/2006 05:10:10 -0800", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZZ").format(date, usPacific));
+
+    assertEquals("02/27/2006 05:10:10 GMT-08:00", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZZZ").format(date, usPacific));
+  }
+
+  public void test_simpleTimezoneZ() {
+    TimeZone simpleTimeZone = TimeZone.createTimeZone(420);
+    Date date = new Date();
+    date.setTime(Date.UTC(2006 - 1900, 6, 27, 13, 10, 10));
+
+    assertEquals("07/27/2006 06:10:10 -0700", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss Z").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 -0700", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZ").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 -0700", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZZ").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 GMT-07:00", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss ZZZZ").format(date, simpleTimeZone));
+  }
+
+  public void test_timezonez() {
+    TimeZoneConstants timeZoneData = GWT.create(TimeZoneConstants.class);
+    String str = timeZoneData.americaLosAngeles();
+    TimeZone usPacific = TimeZone.createTimeZone(str);
+
+    Date date = new Date();
+    date.setTime(Date.UTC(2006 - 1900, 6, 27, 13, 10, 10));
+
+    assertEquals("07/27/2006 06:10:10 PDT", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, usPacific));
+
+    assertEquals("07/27/2006 06:10:10 PDT", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss zz").format(date, usPacific));
+
+    assertEquals("07/27/2006 06:10:10 PDT", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss zzz").format(date, usPacific));
+
+    assertEquals("07/27/2006 06:10:10 Pacific Daylight Time",
+        DateTimeFormat.getFormat("MM/dd/yyyy HH:mm:ss zzzz").format(date,
+            usPacific));
+
+    date.setTime(Date.UTC(2006 - 1900, 1, 27, 13, 10, 10));
+    assertEquals("02/27/2006 05:10:10 PST", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, usPacific));
+
+    assertEquals("02/27/2006 05:10:10 PST", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss zz").format(date, usPacific));
+
+    assertEquals("02/27/2006 05:10:10 PST", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss zzz").format(date, usPacific));
+
+    assertEquals("02/27/2006 05:10:10 Pacific Standard Time",
+        DateTimeFormat.getFormat("MM/dd/yyyy HH:mm:ss zzzz").format(date,
+            usPacific));
+  }
+
+  public void test_simpleTimezonez() {
+    TimeZone simpleTimeZone = TimeZone.createTimeZone(420);
+    Date date = new Date();
+    date.setTime(Date.UTC(2006 - 1900, 6, 27, 13, 10, 10));
+
+    assertEquals("07/27/2006 06:10:10 UTC-7", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 UTC-7", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss zz").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 UTC-7", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss zzz").format(date, simpleTimeZone));
+
+    assertEquals("07/27/2006 06:10:10 UTC-7", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss zzzz").format(date, simpleTimeZone));
+  }
+
+  public void test_daylightTimeTransition() {
+    // US PST transitioned to PDT on 2006/4/2 2:00am, jump to 2006/4/2  
3:00am.
+    // That's UTC time 2006/4/2 10:00am
+
+    TimeZoneConstants timeZoneData = GWT.create(TimeZoneConstants.class);
+    String str = timeZoneData.americaLosAngeles();
+    TimeZone usPacific = TimeZone.createTimeZone(str);
+
+    Date date = new Date();
+    date.setTime(Date.UTC(2006 - 1900, 3, 2, 9, 59, 0));
+    assertEquals("04/02/2006 01:59:00 PST", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, usPacific));
+    date.setTime(Date.UTC(2006 - 1900, 3, 2, 10, 01, 0));
+    assertEquals("04/02/2006 03:01:00 PDT", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, usPacific));
+    date.setTime(Date.UTC(2006 - 1900, 3, 2, 10, 0, 0));
+    assertEquals("04/02/2006 03:00:00 PDT", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, usPacific));
+
+    // US PDT transition to PST on 2006/10/29 2:00am, jump back to PDT
+    // 2006/4/2 1:00am
+    date.setTime(Date.UTC(2006 - 1900, 10 - 1, 29, 8, 59, 0));
+    assertEquals("10/29/2006 01:59:00 PDT", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, usPacific));
+    date.setTime(Date.UTC(2006 - 1900, 10 - 1, 29, 9, 01, 0));
+    assertEquals("10/29/2006 01:01:00 PST", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, usPacific));
+    date.setTime(Date.UTC(2006 - 1900, 10 - 1, 29, 9, 0, 0));
+    assertEquals("10/29/2006 01:00:00 PST", DateTimeFormat.getFormat(
+        "MM/dd/yyyy HH:mm:ss z").format(date, usPacific));
+  }
+}

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to