Index: packages/intl/test/date_time_loose_parsing_test.dart |
diff --git a/packages/intl/test/date_time_loose_parsing_test.dart b/packages/intl/test/date_time_loose_parsing_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6b374709ce35d8a918d1343a52da451b15210dff |
--- /dev/null |
+++ b/packages/intl/test/date_time_loose_parsing_test.dart |
@@ -0,0 +1,56 @@ |
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+/// Tests for the loose option when parsing dates and times, which accept |
+/// mixed-case input and are able to skip missing delimiters. This is only |
+/// tested in basic US locale, it's hard to define for others. |
+library date_time_loose_test; |
+ |
+import 'package:intl/intl.dart'; |
+import 'package:unittest/unittest.dart'; |
+ |
+main() { |
+ var format; |
+ |
+ var date = new DateTime(2014, 9, 3); |
+ |
+ check(String s) { |
+ expect(() => format.parse(s), throwsFormatException); |
+ expect(format.parseLoose(s), date); |
+ } |
+ |
+ test("Loose parsing yMMMd", () { |
+ // Note: We can't handle e.g. Sept, we don't have those abbreviations |
+ // in our data. |
+ // Also doesn't handle "sep3,2014", or "sep 3.2014" |
+ format = new DateFormat.yMMMd("en_US"); |
+ check("Sep 3 2014"); |
+ check("sep 3 2014"); |
+ check("sep 3 2014"); |
+ check("sep 3 2014"); |
+ check("sep 3 2014"); |
+ check("sep3 2014"); |
+ check("september 3, 2014"); |
+ check("sEPTembER 3, 2014"); |
+ check("seP 3, 2014"); |
+ }); |
+ |
+ test("Loose parsing yMMMd that parses strict", () { |
+ expect(format.parseLoose("Sep 3, 2014"), date); |
+ }); |
+ |
+ test("Loose parsing yMd", () { |
+ format = new DateFormat.yMd("en_US"); |
+ check("09 3 2014"); |
+ check("09 00003 2014"); |
+ check("09/ 03/2014"); |
+ expect(() => format.parseLoose("09 / 03 / 2014"), |
+ throwsA(new isInstanceOf<FormatException>())); |
+ }); |
+ |
+ test("Loose parsing yMd that parses strict", () { |
+ expect(format.parseLoose("09/03/2014"), date); |
+ expect(format.parseLoose("09/3/2014"), date); |
+ }); |
+} |