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

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: Address wtc's comments. 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..99880aebb5e4a26be3fb37eb25c33ba464dd0991 100644
--- a/base/time/pr_time_unittest.cc
+++ b/base/time/pr_time_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <stdint.h>
#include <time.h>
#include "base/compiler_specific.h"
@@ -16,6 +17,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 = INT64_C(1373275692440380);
+
// 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 +78,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 +86,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 +94,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 +102,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 +110,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 +118,103 @@ 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.4403804+02",
+ 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-08T09:28:12.44038Z",
+ 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-08T09:28:12.440380Z",
+ 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-08 09: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