Revert "Fixing timezone issues with date-time/parse-* tests."
authordslomov@chromium.org <dslomov@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 10 Oct 2013 19:43:05 +0000 (19:43 +0000)
committerdslomov@chromium.org <dslomov@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 10 Oct 2013 19:43:05 +0000 (19:43 +0000)
This reverts commit r17148 for breaking tests on Windows.

TBR=cira@google.com,titzer@chromium.org

Review URL: https://codereview.chromium.org/26467005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/i18n.js
test/intl/date-format/parse-MMMdy.js
test/intl/date-format/parse-mdy.js
test/intl/date-format/parse-mdyhms.js
test/intl/date-format/utils.js [moved from test/intl/date-format/timezone-name.js with 66% similarity]
test/intl/testcfg.py

index aac440e..a80fd4d 100644 (file)
@@ -1367,7 +1367,7 @@ function toLDMLString(options) {
   ldmlString += appendToLDMLString(option, {'2-digit': 'ss', 'numeric': 's'});
 
   option = getOption('timeZoneName', 'string', ['short', 'long']);
-  ldmlString += appendToLDMLString(option, {short: 'z', long: 'zzzz'});
+  ldmlString += appendToLDMLString(option, {short: 'v', long: 'vv'});
 
   return ldmlString;
 }
@@ -1440,9 +1440,9 @@ function fromLDMLString(ldmlString) {
   options = appendToDateTimeObject(
       options, 'second', match, {s: 'numeric', ss: '2-digit'});
 
-  match = ldmlString.match(/z|zzzz/g);
+  match = ldmlString.match(/v{1,2}/g);
   options = appendToDateTimeObject(
-      options, 'timeZoneName', match, {z: 'short', zzzz: 'long'});
+      options, 'timeZoneName', match, {v: 'short', vv: 'long'});
 
   return options;
 }
index 73ee586..7136527 100644 (file)
 
 var dtf = new Intl.DateTimeFormat(['en'],
                                   {year: 'numeric', month: 'short',
-                                   day: 'numeric',
-                                   timeZone: 'America/Los_Angeles'});
+                                   day: 'numeric'});
 
 // Make sure we have pattern we expect (may change in the future).
 assertEquals('MMM d, y', dtf.resolved.pattern);
 
-var date = dtf.v8Parse('Feb 4, 1974');
-assertEquals(1974, date.getFullYear());
-assertEquals(1, date.getMonth());
-assertEquals(4, date.getDate());
+assertEquals('Sat May 04 1974 00:00:00 GMT-0007 (PDT)',
+             usePDT(String(dtf.v8Parse('May 4, 1974'))));
 
 // Missing , in the pattern.
-assertEquals(undefined, dtf.v8Parse('Feb 4 1974'));
+assertEquals(undefined, dtf.v8Parse('May 4 1974'));
 
 // Extra "th" after 4 in the pattern.
-assertEquals(undefined, dtf.v8Parse('Feb 4th, 1974'));
+assertEquals(undefined, dtf.v8Parse('May 4th, 1974'));
 
 // Wrong pattern.
-assertEquals(undefined, dtf.v8Parse('2/4/1974'));
+assertEquals(undefined, dtf.v8Parse('5/4/1974'));
index 788a7bb..e767a0b 100644 (file)
 
 // Testing v8Parse method for date only.
 
-function checkDate(date) {
-  assertEquals(1974, date.getFullYear());
-  assertEquals(1, date.getMonth());
-  assertEquals(4, date.getDate());
-}
-
-var dtf = new Intl.DateTimeFormat(['en'], {timeZone: 'America/Los_Angeles'});
+var dtf = new Intl.DateTimeFormat(['en']);
 
 // Make sure we have pattern we expect (may change in the future).
 assertEquals('M/d/y', dtf.resolved.pattern);
 
-checkDate(dtf.v8Parse('2/4/74'));
-checkDate(dtf.v8Parse('02/04/74'));
-checkDate(dtf.v8Parse('2/04/74'));
-checkDate(dtf.v8Parse('02/4/74'));
-checkDate(dtf.v8Parse('2/4/1974'));
-checkDate(dtf.v8Parse('02/4/1974'));
-checkDate(dtf.v8Parse('2/04/1974'));
-checkDate(dtf.v8Parse('02/04/1974'));
+assertEquals('Sat May 04 1974 00:00:00 GMT-0007 (PDT)',
+             usePDT(String(dtf.v8Parse('5/4/74'))));
+assertEquals('Sat May 04 1974 00:00:00 GMT-0007 (PDT)',
+             usePDT(String(dtf.v8Parse('05/04/74'))));
+assertEquals('Sat May 04 1974 00:00:00 GMT-0007 (PDT)',
+             usePDT(String(dtf.v8Parse('5/04/74'))));
+assertEquals('Sat May 04 1974 00:00:00 GMT-0007 (PDT)',
+             usePDT(String(dtf.v8Parse('5/4/1974'))));
+
+// Month is numeric, so it fails on "May".
+assertEquals(undefined, dtf.v8Parse('May 4th 1974'));
 
-// Month is numeric, so it fails on "Feb".
-assertEquals(undefined, dtf.v8Parse('Feb 4th 1974'));
+// Time is ignored from the input, since the pattern doesn't have it.
+assertEquals('Sat May 04 1974 00:00:00 GMT-0007 (PDT)',
+             usePDT(String(dtf.v8Parse('5/4/74 12:30:12'))));
index 73efb62..74f7467 100644 (file)
 var dtf = new Intl.DateTimeFormat(['en'],
                                   {year: 'numeric', month: 'numeric',
                                    day: 'numeric', hour: 'numeric',
-                                   minute: 'numeric', second: 'numeric',
-                                   timeZone: 'UTC'});
+                                   minute: 'numeric', second: 'numeric'});
 
 // Make sure we have pattern we expect (may change in the future).
 assertEquals('M/d/y h:mm:ss a', dtf.resolved.pattern);
 
-var date = dtf.v8Parse('2/4/74 12:30:42 pm');
-assertEquals(1974, date.getUTCFullYear());
-assertEquals(1, date.getUTCMonth());
-assertEquals(4, date.getUTCDate());
-assertEquals(12, date.getUTCHours());
-assertEquals(30, date.getUTCMinutes());
-assertEquals(42, date.getUTCSeconds());
+assertEquals('Sat May 04 1974 12:30:12 GMT-0007 (PDT)',
+             usePDT(String(dtf.v8Parse('5/4/74 12:30:12 pm'))));
 
 // AM/PM were not specified.
-assertEquals(undefined, dtf.v8Parse('2/4/74 12:30:12'));
+assertEquals(undefined, dtf.v8Parse('5/4/74 12:30:12'));
 
 // Time was not specified.
-assertEquals(undefined, dtf.v8Parse('2/4/74'));
+assertEquals(undefined, dtf.v8Parse('5/4/74'));
 
-// Month is numeric, so it fails on "Feb".
-assertEquals(undefined, dtf.v8Parse('Feb 4th 1974'));
+// Month is numeric, so it fails on "May".
+assertEquals(undefined, dtf.v8Parse('May 4th 1974'));
 
 // Wrong date delimiter.
-assertEquals(undefined, dtf.v8Parse('2-4-74 12:30:12 am'));
+assertEquals(undefined, dtf.v8Parse('5-4-74 12:30:12 am'));
similarity index 66%
rename from test/intl/date-format/timezone-name.js
rename to test/intl/date-format/utils.js
index 2ed5c1a..535de15 100644 (file)
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Tests time zone names.
-
-// Winter date (PST).
-var winter = new Date(2013, 1, 12, 14, 42, 53, 0);
-
-// Summer date (PDT).
-var summer = new Date(2013, 7, 12, 14, 42, 53, 0);
-
-// Common flags for both formatters.
-var flags = {
-  year: 'numeric', month: 'long', day: 'numeric',
-  hour : '2-digit', minute : '2-digit', second : '2-digit',
-  timeZone: 'America/Los_Angeles'
-};
-
-flags.timeZoneName = "short";
-var dfs = new Intl.DateTimeFormat('en-US', flags);
-
-assertTrue(dfs.format(winter).indexOf('PST') !== -1);
-assertTrue(dfs.format(summer).indexOf('PDT') !== -1);
-
-flags.timeZoneName = "long";
-var dfl = new Intl.DateTimeFormat('en-US', flags);
-
-assertTrue(dfl.format(winter).indexOf('Pacific Standard Time') !== -1);
-assertTrue(dfl.format(summer).indexOf('Pacific Daylight Time') !== -1);
+// Utility methods for date testing.
+
+/**
+ * Returns date with timezone info forced into PDT.
+ */
+function usePDT(dateString) {
+  var removedTZ = dateString.replace(/(\+|-)\d{4}/, '-0007');
+  return removedTZ.replace(/\(.*?\)/, '(PDT)');
+}
index 9fc087e..09d29d0 100644 (file)
@@ -57,6 +57,7 @@ class IntlTestSuite(testsuite.TestSuite):
     files = []
     files.append(os.path.join(self.root, "assert.js"))
     files.append(os.path.join(self.root, "utils.js"))
+    files.append(os.path.join(self.root, "date-format", "utils.js"))
     files.append(os.path.join(self.root, testcase.path + self.suffix()))
 
     flags += files