| Index: pkg/intl/test/date_time_format_test_core.dart
|
| diff --git a/pkg/intl/test/date_time_format_test_core.dart b/pkg/intl/test/date_time_format_test_core.dart
|
| index b39372d8749444813abc71ef2a8cb20c60d80a88..757bb6bd80ef276fd34b574259fad5451c6e702b 100644
|
| --- a/pkg/intl/test/date_time_format_test_core.dart
|
| +++ b/pkg/intl/test/date_time_format_test_core.dart
|
| @@ -292,19 +292,19 @@ void runDateTests(Function subsetFunc) {
|
| if (subset.length <= 1) return;
|
| var aDate = new DateTime(2012, 1, 27, 20, 58, 59, 0);
|
| // An explicit format that doesn't conform to any skeleton
|
| - var us = new DateFormat(r'yy //// :D \\\\ dd:ss ^&@ M');
|
| - expect(us.format(aDate), equals(r"12 //// :D \\\\ 27:59 ^&@ 1"));
|
| + var us = new DateFormat(r'yy //// :W \\\\ dd:ss ^&@ M');
|
| + expect(us.format(aDate), equals(r"12 //// :W \\\\ 27:59 ^&@ 1"));
|
| // The result won't change with locale unless we use fields that are words.
|
| - var greek = new DateFormat(r'yy //// :D \\\\ dd:ss ^&@ M', 'el_GR');
|
| - expect(greek.format(aDate), equals(r"12 //// :D \\\\ 27:59 ^&@ 1"));
|
| - var usWithWords = new DateFormat('yy / :D \\ dd:ss ^&@ MMM', 'en_US');
|
| - var greekWithWords = new DateFormat('yy / :D \\ dd:ss ^&@ MMM', 'el_GR');
|
| + var greek = new DateFormat(r'yy //// :W \\\\ dd:ss ^&@ M', 'el_GR');
|
| + expect(greek.format(aDate), equals(r"12 //// :W \\\\ 27:59 ^&@ 1"));
|
| + var usWithWords = new DateFormat('yy / :W \\ dd:ss ^&@ MMM', 'en_US');
|
| + var greekWithWords = new DateFormat('yy / :W \\ dd:ss ^&@ MMM', 'el_GR');
|
| expect(
|
| usWithWords.format(aDate),
|
| - equals(r"12 / :D \ 27:59 ^&@ Jan"));
|
| + equals(r"12 / :W \ 27:59 ^&@ Jan"));
|
| expect(
|
| greekWithWords.format(aDate),
|
| - equals(r"12 / :D \ 27:59 ^&@ Ιαν"));
|
| + equals(r"12 / :W \ 27:59 ^&@ Ιαν"));
|
| var escaped = new DateFormat(r"hh 'o''clock'");
|
| expect(escaped.format(aDate), equals(r"08 o'clock"));
|
| var reParsed = escaped.parse(escaped.format(aDate));
|
| @@ -369,4 +369,36 @@ void runDateTests(Function subsetFunc) {
|
| expect(formatted, quarters[i]);
|
| }
|
| });
|
| +
|
| + /**
|
| + * Generate a map from day numbers in the given [year] (where Jan 1 == 1)
|
| + * to a Date object. If [year] is a leap year, then pass 1 for
|
| + * [leapDay], otherwise pass 0.
|
| + */
|
| + Map<int, DateTime> generateDates(int year, int leapDay) =>
|
| + new Iterable.generate(365 + leapDay, (n) => n + 1)
|
| + .map((day) => new DateTime(year, 1, day)).toList().asMap();
|
| +
|
| + void verifyOrdinals(Map dates) {
|
| + var f = new DateFormat("D");
|
| + var withYear = new DateFormat("yyyy D");
|
| + dates.forEach((number, date) {
|
| + var formatted = f.format(date);
|
| + expect(formatted, (number + 1).toString());
|
| + var formattedWithYear = withYear.format(date);
|
| + var parsed = withYear.parse(formattedWithYear);
|
| + expect(parsed, date);
|
| + });
|
| + }
|
| +
|
| + test('Ordinal Date', () {
|
| + var f = new DateFormat("D");
|
| + var dates = generateDates(2012, 1);
|
| + var nonLeapDates = generateDates(2013, 0);
|
| + verifyOrdinals(dates);
|
| + verifyOrdinals(nonLeapDates);
|
| + // Check one hard-coded just to be on the safe side.
|
| + var aDate = new DateTime(2012, 4, 27, 13, 58, 59, 012);
|
| + expect(f.format(aDate), "118");
|
| + });
|
| }
|
|
|