Index: crypto/nss_util_unittest.cc |
diff --git a/crypto/nss_util_unittest.cc b/crypto/nss_util_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..28591916d3f65f0762a9d1e941f56f4219263fa9 |
--- /dev/null |
+++ b/crypto/nss_util_unittest.cc |
@@ -0,0 +1,43 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "crypto/nss_util.h" |
+ |
+#include <prtime.h> |
+ |
+#include "base/time/time.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace crypto { |
+ |
+TEST(NSSUtilTest, PRTimeConversion) { |
+ EXPECT_EQ(base::Time::UnixEpoch(), PRTimeToBaseTime(0)); |
+ EXPECT_EQ(0, BaseTimeToPRTime(base::Time::UnixEpoch())); |
+ |
+ PRExplodedTime prxtime; |
+ prxtime.tm_params.tp_gmt_offset = 0; |
+ prxtime.tm_params.tp_dst_offset = 0; |
+ base::Time::Exploded exploded; |
+ exploded.year = prxtime.tm_year = 2011; |
+ exploded.month = 12; |
+ prxtime.tm_month = 11; |
+ // PRExplodedTime::tm_wday is a smaller type than Exploded::day_of_week, so |
+ // assigning the two in this order instead of the reverse avoids potential |
+ // warnings about type downcasting. |
+ exploded.day_of_week = prxtime.tm_wday = 0; // Should be unused. |
+ exploded.day_of_month = prxtime.tm_mday = 10; |
+ exploded.hour = prxtime.tm_hour = 2; |
+ exploded.minute = prxtime.tm_min = 52; |
+ exploded.second = prxtime.tm_sec = 19; |
+ exploded.millisecond = 342; |
+ prxtime.tm_usec = 342000; |
+ |
+ PRTime pr_time = PR_ImplodeTime(&prxtime); |
+ base::Time base_time = base::Time::FromUTCExploded(exploded); |
+ |
+ EXPECT_EQ(base_time, PRTimeToBaseTime(pr_time)); |
+ EXPECT_EQ(pr_time, BaseTimeToPRTime(base_time)); |
+} |
+ |
+} // namespace crypto |