xref: /aosp_15_r20/external/cronet/crypto/nss_util_unittest.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2011 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "crypto/nss_util.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker #include <prtime.h>
8*6777b538SAndroid Build Coastguard Worker 
9*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h"
10*6777b538SAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h"
11*6777b538SAndroid Build Coastguard Worker 
12*6777b538SAndroid Build Coastguard Worker namespace crypto {
13*6777b538SAndroid Build Coastguard Worker 
TEST(NSSUtilTest,PRTimeConversion)14*6777b538SAndroid Build Coastguard Worker TEST(NSSUtilTest, PRTimeConversion) {
15*6777b538SAndroid Build Coastguard Worker   EXPECT_EQ(base::Time::UnixEpoch(), PRTimeToBaseTime(0));
16*6777b538SAndroid Build Coastguard Worker   EXPECT_EQ(0, BaseTimeToPRTime(base::Time::UnixEpoch()));
17*6777b538SAndroid Build Coastguard Worker 
18*6777b538SAndroid Build Coastguard Worker   static constexpr PRExplodedTime kPrxtime = {
19*6777b538SAndroid Build Coastguard Worker       .tm_usec = 342000,
20*6777b538SAndroid Build Coastguard Worker       .tm_sec = 19,
21*6777b538SAndroid Build Coastguard Worker       .tm_min = 52,
22*6777b538SAndroid Build Coastguard Worker       .tm_hour = 2,
23*6777b538SAndroid Build Coastguard Worker       .tm_mday = 10,
24*6777b538SAndroid Build Coastguard Worker       .tm_month = 11,  // 0-based
25*6777b538SAndroid Build Coastguard Worker       .tm_year = 2011,
26*6777b538SAndroid Build Coastguard Worker       .tm_params = {.tp_gmt_offset = 0, .tp_dst_offset = 0}};
27*6777b538SAndroid Build Coastguard Worker   PRTime pr_time = PR_ImplodeTime(&kPrxtime);
28*6777b538SAndroid Build Coastguard Worker 
29*6777b538SAndroid Build Coastguard Worker   static constexpr base::Time::Exploded kExploded = {.year = 2011,
30*6777b538SAndroid Build Coastguard Worker                                                      .month = 12,  // 1-based
31*6777b538SAndroid Build Coastguard Worker                                                      .day_of_month = 10,
32*6777b538SAndroid Build Coastguard Worker                                                      .hour = 2,
33*6777b538SAndroid Build Coastguard Worker                                                      .minute = 52,
34*6777b538SAndroid Build Coastguard Worker                                                      .second = 19,
35*6777b538SAndroid Build Coastguard Worker                                                      .millisecond = 342};
36*6777b538SAndroid Build Coastguard Worker   base::Time base_time;
37*6777b538SAndroid Build Coastguard Worker   EXPECT_TRUE(base::Time::FromUTCExploded(kExploded, &base_time));
38*6777b538SAndroid Build Coastguard Worker 
39*6777b538SAndroid Build Coastguard Worker   EXPECT_EQ(base_time, PRTimeToBaseTime(pr_time));
40*6777b538SAndroid Build Coastguard Worker   EXPECT_EQ(pr_time, BaseTimeToPRTime(base_time));
41*6777b538SAndroid Build Coastguard Worker }
42*6777b538SAndroid Build Coastguard Worker 
43*6777b538SAndroid Build Coastguard Worker }  // namespace crypto
44