mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-27 11:06:50 +01:00
* GH #569: Cherry pick and correct code from devel-experimental. * GH #569: Add missing timezone codes. * enh(Foundation): DateTimeParser: stricter checks of timezones, more tests for invalid inputs. (#569) * enh(Foundation): Small fixes of issues detected by CodeQL --------- Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
This commit is contained in:
@@ -24,6 +24,7 @@ using Poco::DateTimeParser;
|
||||
using Poco::Timestamp;
|
||||
using Poco::SyntaxException;
|
||||
|
||||
using namespace std::string_literals;
|
||||
|
||||
DateTimeParserTest::DateTimeParserTest(const std::string& name): CppUnit::TestCase(name)
|
||||
{
|
||||
@@ -46,6 +47,17 @@ void DateTimeParserTest::testISO8601()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12.30:00Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-00-08T12:30:00Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00T12:30:00Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00T33:30:00Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00T12:80:00Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00T12:30:90Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-0012:30:90Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00X12:30:90Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "200501-00T12:30:90Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-0100T12:30:90Z", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005_01+00T12:30:90Z", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00+01:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -55,6 +67,9 @@ void DateTimeParserTest::testISO8601()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-8T12:30:00+01:00", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00+41:00", tzd);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00+01:70", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00-01:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -64,6 +79,7 @@ void DateTimeParserTest::testISO8601()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == -3600);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-0812:30:00-01:00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -73,6 +89,7 @@ void DateTimeParserTest::testISO8601()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:0", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -82,6 +99,7 @@ void DateTimeParserTest::testISO8601()
|
||||
assertTrue (dt.minute() == 0);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-8", tzd);
|
||||
}
|
||||
|
||||
|
||||
@@ -98,6 +116,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 0);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-1-08T12:30:00Z", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00+01:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -109,6 +128,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 0);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08Z12:30:00+01:00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00-01:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -120,6 +140,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 0);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == -3600);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00-01.00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -131,6 +152,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 0);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12;30:00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -142,6 +164,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 0);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01+08", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.1Z", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -153,6 +176,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 100);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.1J", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.123+01:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -164,6 +188,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 123);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.123*01:00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.12345-01:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -175,6 +200,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 123);
|
||||
assertTrue (dt.microsecond() == 450);
|
||||
assertTrue (tzd == -3600);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01+08T12:30:00.12345-01:00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2010-09-23T16:17:01.2817002+02:00", tzd);
|
||||
assertTrue (dt.year() == 2010);
|
||||
@@ -186,6 +212,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 281);
|
||||
assertTrue (dt.microsecond() == 700);
|
||||
assertTrue (tzd == 7200);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "201009-23T16:17:01.2817002+02:00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -197,6 +224,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 0);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:0", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.123456", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -208,6 +236,7 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 123);
|
||||
assertTrue (dt.microsecond() == 456);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "005-01-08T12:30:00.123456", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -219,6 +248,10 @@ void DateTimeParserTest::testISO8601Frac()
|
||||
assertTrue (dt.millisecond() == 0);
|
||||
assertTrue (dt.microsecond() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-0", tzd);
|
||||
|
||||
testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "jnghjgnbcfjb", tzd);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -233,6 +266,7 @@ void DateTimeParserTest::testRFC822()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::RFC822_FORMAT, "at, 8 Jan 05 12:30:00 GMT", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 +0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -242,6 +276,7 @@ void DateTimeParserTest::testRFC822()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::RFC822_FORMAT, "Sat, x Jan 05 12:30:00 +0100", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 -0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -251,6 +286,7 @@ void DateTimeParserTest::testRFC822()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == -3600);
|
||||
testBad(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 *0100", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Tue, 18 Jan 05 12:30:00 CET", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -260,6 +296,7 @@ void DateTimeParserTest::testRFC822()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::RFC822_FORMAT, "Tue, 18 Jan 05 12:30:00 abc", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Wed, 12 Sep 73 02:01:12 CEST", tzd);
|
||||
assertTrue (dt.year() == 1973);
|
||||
@@ -269,6 +306,7 @@ void DateTimeParserTest::testRFC822()
|
||||
assertTrue (dt.minute() == 1);
|
||||
assertTrue (dt.second() == 12);
|
||||
assertTrue (tzd == 7200);
|
||||
testBad(DateTimeFormat::RFC822_FORMAT, "Wed, 12 Sep 73 02:01:2 CST", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "12 Sep 73 02:01:12 CEST", tzd);
|
||||
assertTrue (dt.year() == 1973);
|
||||
@@ -278,6 +316,8 @@ void DateTimeParserTest::testRFC822()
|
||||
assertTrue (dt.minute() == 1);
|
||||
assertTrue (dt.second() == 12);
|
||||
assertTrue (tzd == 7200);
|
||||
|
||||
testBad(DateTimeFormat::RFC822_FORMAT, "12 Sep 73 02.01:12 EST", tzd);
|
||||
}
|
||||
|
||||
|
||||
@@ -292,6 +332,7 @@ void DateTimeParserTest::testRFC1123()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 GPX", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 +0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -301,6 +342,7 @@ void DateTimeParserTest::testRFC1123()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 xy:30:00 +0100", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 -0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -310,6 +352,7 @@ void DateTimeParserTest::testRFC1123()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == -3600);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 205 12:30:00 -0100", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 EDT", tzd);
|
||||
assertTrue (dt.year() == 1969);
|
||||
@@ -319,15 +362,41 @@ void DateTimeParserTest::testRFC1123()
|
||||
assertTrue (dt.minute() == 17);
|
||||
assertTrue (dt.second() == 30);
|
||||
assertTrue (tzd == -14400);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "Hue, 18 Jan 2005 12:30:00 EDT", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 GMT+01:00", tzd);
|
||||
assertTrue (dt.year() == 1969);
|
||||
assertTrue (dt.month() == 7);
|
||||
assertTrue (dt.day() == 20);
|
||||
assertTrue (dt.hour() == 16);
|
||||
assertTrue (dt.minute() == 17);
|
||||
assertTrue (dt.second() == 30);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 GMT+01:00", tzd);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 GMT+01?00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Tue, 18 Jan 2005 12:30:00 CDT", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
assertTrue (dt.month() == 1);
|
||||
assertTrue (dt.day() == 18);
|
||||
assertTrue (dt.hour() == 12);
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == -18000);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "Hue, 18 Jan 2005 12:30:00 CDT", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Wed, 12 Sep 1973 02:01:12 CST", tzd);
|
||||
assertTrue (dt.year() == 1973);
|
||||
assertTrue (dt.month() == 9);
|
||||
assertTrue (dt.day() == 12);
|
||||
assertTrue (dt.hour() == 2);
|
||||
assertTrue (dt.minute() == 1);
|
||||
assertTrue (dt.second() == 12);
|
||||
assertTrue (tzd == -21600);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "Wed, 12 Sp 1973 02:01:12 CST", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "12 Sep 1973 02:01:12 EST", tzd);
|
||||
assertTrue (dt.year() == 1973);
|
||||
assertTrue (dt.month() == 9);
|
||||
assertTrue (dt.day() == 12);
|
||||
assertTrue (dt.hour() == 2);
|
||||
assertTrue (dt.minute() == 1);
|
||||
assertTrue (dt.second() == 12);
|
||||
assertTrue (tzd == -18000);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "12 Sep 193 02:01:12 EST", tzd);
|
||||
testBad(DateTimeFormat::RFC1123_FORMAT, "12 Sep 1973 02:01:12 ABC", tzd);
|
||||
}
|
||||
|
||||
|
||||
@@ -342,6 +411,7 @@ void DateTimeParserTest::testHTTP()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jn 2005 12:30:00 GMT", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 +0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -351,6 +421,7 @@ void DateTimeParserTest::testHTTP()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 j0100", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 -0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -360,6 +431,7 @@ void DateTimeParserTest::testHTTP()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == -3600);
|
||||
testBad(DateTimeFormat::HTTP_FORMAT, "Sat 08 Jan 2005 12:30:00 -0100", tzd);
|
||||
}
|
||||
|
||||
|
||||
@@ -374,6 +446,7 @@ void DateTimeParserTest::testRFC850()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan 05 12:30:00 GMT", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan-05 12:30:00 +0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -383,6 +456,7 @@ void DateTimeParserTest::testRFC850()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::RFC850_FORMAT, "Saturday, 8+Jan-05 12:30:00 +0100", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan-05 12:30:00 -0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -392,6 +466,7 @@ void DateTimeParserTest::testRFC850()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == -3600);
|
||||
testBad(DateTimeFormat::RFC850_FORMAT, "Saturday 8-Jan-05 12:30:00 -0100", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Wed, 12-Sep-73 02:01:12 CEST", tzd);
|
||||
assertTrue (dt.year() == 1973);
|
||||
@@ -401,6 +476,7 @@ void DateTimeParserTest::testRFC850()
|
||||
assertTrue (dt.minute() == 1);
|
||||
assertTrue (dt.second() == 12);
|
||||
assertTrue (tzd == 7200);
|
||||
testBad(DateTimeFormat::RFC850_FORMAT, "Wed, 12-pep-73 02:01:12 CST", tzd);
|
||||
}
|
||||
|
||||
|
||||
@@ -415,6 +491,7 @@ void DateTimeParserTest::testRFC1036()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 0512:30:00 GMT", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 +0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -424,6 +501,7 @@ void DateTimeParserTest::testRFC1036()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 3600);
|
||||
testBad(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 051 12:30:00 +0100", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 -0100", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -433,6 +511,7 @@ void DateTimeParserTest::testRFC1036()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == -3600);
|
||||
testBad(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 -0100x", tzd);
|
||||
}
|
||||
|
||||
|
||||
@@ -447,6 +526,7 @@ void DateTimeParserTest::testASCTIME()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::ASCTIME_FORMAT, "Bat Jan 8 12:30:00 2005", tzd);
|
||||
}
|
||||
|
||||
|
||||
@@ -461,6 +541,7 @@ void DateTimeParserTest::testSORTABLE()
|
||||
assertTrue (dt.minute() == 30);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::SORTABLE_FORMAT, "2005-01-08 12:30;00", tzd);
|
||||
|
||||
dt = DateTimeParser::parse(DateTimeFormat::SORTABLE_FORMAT, "2005-01-08", tzd);
|
||||
assertTrue (dt.year() == 2005);
|
||||
@@ -470,6 +551,7 @@ void DateTimeParserTest::testSORTABLE()
|
||||
assertTrue (dt.minute() == 0);
|
||||
assertTrue (dt.second() == 0);
|
||||
assertTrue (tzd == 0);
|
||||
testBad(DateTimeFormat::SORTABLE_FORMAT, "2005+01-08", tzd);
|
||||
}
|
||||
|
||||
|
||||
@@ -758,6 +840,18 @@ void DateTimeParserTest::testParseDayOfWeek()
|
||||
}
|
||||
|
||||
|
||||
void DateTimeParserTest::testBad(const std::string& fmt, const std::string& dateStr, int tzd)
|
||||
{
|
||||
try
|
||||
{
|
||||
DateTime dt;
|
||||
DateTimeParser::parse(fmt, dateStr, dt, tzd);
|
||||
fail ("must fail: "s + fmt + ", " + dateStr);
|
||||
}
|
||||
catch(const Poco::Exception&) { }
|
||||
}
|
||||
|
||||
|
||||
void DateTimeParserTest::setUp()
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user