Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(677)

Unified Diff: base/time/pr_time_unittest.cc

Issue 266193002: Extend PR_ParseTimeString() to accept some ISO 8601 formats to fix timezone parsing in SyslogParser. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: New approach: Extend PR_ParseTimeString() to handle some ISO 8601 formats. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/time/pr_time_unittest.cc
diff --git a/base/time/pr_time_unittest.cc b/base/time/pr_time_unittest.cc
index 9e0c4ed04f040992c5a12e00acad13c7ae229eec..24256e97e9f952618740bcd6bbb5f5ccbe0bb49b 100644
--- a/base/time/pr_time_unittest.cc
+++ b/base/time/pr_time_unittest.cc
@@ -16,6 +16,9 @@ namespace {
// time_t representation of 15th Oct 2007 12:45:00 PDT
PRTime comparison_time_pdt = 1192477500 * Time::kMicrosecondsPerSecond;
+// 2013-07-08T11:28:12.440380+02:00
+PRTime comparison_time_cest = 1373275692440380LL;
wtc 2014/05/08 21:04:19 Nit: use either NSPR's PR_INT64(137327569244038
Thiemo Nagel 2014/05/09 16:19:00 Done.
+
// Specialized test fixture allowing time strings without timezones to be
// tested by comparing them to a known time in the local zone.
class PRTimeTest : public testing::Test {
@@ -74,7 +77,7 @@ TEST_F(PRTimeTest, ParseTimeTest2) {
PRStatus result = PR_ParseTimeString("Mon, 15 Oct 2007 19:45:00 GMT",
PR_FALSE, &parsed_time);
EXPECT_EQ(PR_SUCCESS, result);
- EXPECT_EQ(parsed_time, comparison_time_pdt);
+ EXPECT_EQ(comparison_time_pdt, parsed_time);
}
TEST_F(PRTimeTest, ParseTimeTest3) {
@@ -82,7 +85,7 @@ TEST_F(PRTimeTest, ParseTimeTest3) {
PRStatus result = PR_ParseTimeString("15 Oct 07 12:45:00", PR_FALSE,
&parsed_time);
EXPECT_EQ(PR_SUCCESS, result);
- EXPECT_EQ(parsed_time, comparison_time_local_);
+ EXPECT_EQ(comparison_time_local_, parsed_time);
}
TEST_F(PRTimeTest, ParseTimeTest4) {
@@ -90,7 +93,7 @@ TEST_F(PRTimeTest, ParseTimeTest4) {
PRStatus result = PR_ParseTimeString("15 Oct 07 19:45 GMT", PR_FALSE,
&parsed_time);
EXPECT_EQ(PR_SUCCESS, result);
- EXPECT_EQ(parsed_time, comparison_time_pdt);
+ EXPECT_EQ(comparison_time_pdt, parsed_time);
}
TEST_F(PRTimeTest, ParseTimeTest5) {
@@ -98,7 +101,7 @@ TEST_F(PRTimeTest, ParseTimeTest5) {
PRStatus result = PR_ParseTimeString("Mon Oct 15 12:45 PDT 2007",
PR_FALSE, &parsed_time);
EXPECT_EQ(PR_SUCCESS, result);
- EXPECT_EQ(parsed_time, comparison_time_pdt);
+ EXPECT_EQ(comparison_time_pdt, parsed_time);
}
TEST_F(PRTimeTest, ParseTimeTest6) {
@@ -106,7 +109,7 @@ TEST_F(PRTimeTest, ParseTimeTest6) {
PRStatus result = PR_ParseTimeString("Monday, Oct 15, 2007 12:45 PM",
PR_FALSE, &parsed_time);
EXPECT_EQ(PR_SUCCESS, result);
- EXPECT_EQ(parsed_time, comparison_time_local_);
+ EXPECT_EQ(comparison_time_local_, parsed_time);
}
TEST_F(PRTimeTest, ParseTimeTest7) {
@@ -114,23 +117,111 @@ TEST_F(PRTimeTest, ParseTimeTest7) {
PRStatus result = PR_ParseTimeString("10/15/07 12:45:00 PM", PR_FALSE,
&parsed_time);
EXPECT_EQ(PR_SUCCESS, result);
- EXPECT_EQ(parsed_time, comparison_time_local_);
+ EXPECT_EQ(comparison_time_local_, parsed_time);
}
TEST_F(PRTimeTest, ParseTimeTest8) {
PRTime parsed_time = 0;
- PRStatus result = PR_ParseTimeString("15-OCT-2007 12:45pm", PR_FALSE,
+ PRStatus result = PR_ParseTimeString("10/15/07 12:45:00. PM", PR_FALSE,
&parsed_time);
EXPECT_EQ(PR_SUCCESS, result);
- EXPECT_EQ(parsed_time, comparison_time_local_);
+ EXPECT_EQ(comparison_time_local_, parsed_time);
}
TEST_F(PRTimeTest, ParseTimeTest9) {
PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("10/15/07 12:45:00.0 PM", PR_FALSE,
+ &parsed_time);
+ EXPECT_EQ(PR_SUCCESS, result);
+ EXPECT_EQ(comparison_time_local_, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTest10) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("15-OCT-2007 12:45pm", PR_FALSE,
+ &parsed_time);
+ EXPECT_EQ(PR_SUCCESS, result);
+ EXPECT_EQ(comparison_time_local_, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTest11) {
+ PRTime parsed_time = 0;
PRStatus result = PR_ParseTimeString("16 Oct 2007 4:45-JST (Tuesday)",
PR_FALSE, &parsed_time);
EXPECT_EQ(PR_SUCCESS, result);
- EXPECT_EQ(parsed_time, comparison_time_pdt);
+ EXPECT_EQ(comparison_time_pdt, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTest12) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("2013-07-08T11:28:12.440380+02:00",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_SUCCESS, result);
+ EXPECT_EQ(comparison_time_cest, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTest13) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("2013-07-08T11:28:12.4403795+02:00",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_SUCCESS, result);
+ EXPECT_EQ(comparison_time_cest, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTest14) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("2013-07-08T11:28:12.4403804+02:00",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_SUCCESS, result);
+ EXPECT_EQ(comparison_time_cest, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTest15) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("2013-07-08T11:28:12.4403804+02",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_SUCCESS, result);
+ EXPECT_EQ(comparison_time_cest, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTest16) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("2013-07-08T09:28:12.44038Z",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_SUCCESS, result);
+ EXPECT_EQ(comparison_time_cest, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTest17) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("2013-07-08T09:28:12.440380Z",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_SUCCESS, result);
+ EXPECT_EQ(comparison_time_cest, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTestInvalid1) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("201-07-08T09:28:12.440380Z",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_FAILURE, result);
+ EXPECT_EQ(0, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTestInvalid2) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("2013-007-08T09:28:12.440380Z",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_FAILURE, result);
+ EXPECT_EQ(0, parsed_time);
+}
+
+TEST_F(PRTimeTest, ParseTimeTestInvalid3) {
+ PRTime parsed_time = 0;
+ PRStatus result = PR_ParseTimeString("2013-07-008T09:28:12.440380Z",
+ PR_FALSE, &parsed_time);
+ EXPECT_EQ(PR_FAILURE, result);
+ EXPECT_EQ(0, parsed_time);
}
// This test should not crash when compiled with Visual C++ 2005 (see

Powered by Google App Engine
This is Rietveld 408576698