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 |