1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "crypto/nss_util.h"
9 #include "base/time/time.h"
10 #include "testing/gtest/include/gtest/gtest.h"
14 TEST(NSSUtilTest
, PRTimeConversion
) {
15 EXPECT_EQ(base::Time::UnixEpoch(), PRTimeToBaseTime(0));
16 EXPECT_EQ(0, BaseTimeToPRTime(base::Time::UnixEpoch()));
18 PRExplodedTime prxtime
;
19 prxtime
.tm_params
.tp_gmt_offset
= 0;
20 prxtime
.tm_params
.tp_dst_offset
= 0;
21 base::Time::Exploded exploded
;
22 prxtime
.tm_year
= exploded
.year
= 2011;
24 prxtime
.tm_month
= 11;
25 prxtime
.tm_wday
= exploded
.day_of_week
= 0; // Should be unusued.
26 prxtime
.tm_mday
= exploded
.day_of_month
= 10;
27 prxtime
.tm_hour
= exploded
.hour
= 2;
28 prxtime
.tm_min
= exploded
.minute
= 52;
29 prxtime
.tm_sec
= exploded
.second
= 19;
30 exploded
.millisecond
= 342;
31 prxtime
.tm_usec
= 342000;
33 PRTime pr_time
= PR_ImplodeTime(&prxtime
);
34 base::Time base_time
= base::Time::FromUTCExploded(exploded
);
36 EXPECT_EQ(base_time
, PRTimeToBaseTime(pr_time
));
37 EXPECT_EQ(pr_time
, BaseTimeToPRTime(base_time
));