blob: 6b374709ce35d8a918d1343a52da451b15210dff [file] [log] [blame]
// 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);
});
}