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

Side by Side Diff: base/nonce_token_unittest.cc

Issue 2333443002: Add base::UnguessableToken (Closed)
Patch Set: NonceTokenHash CHECK --> DCHECK Created 4 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2016 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.
4
5 #include "base/nonce_token.h"
6
7 #include <type_traits>
8
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace base {
12
13 void TestSmallerThanOperator(const NonceToken& a, const NonceToken& b) {
14 EXPECT_TRUE(a < b);
15 EXPECT_FALSE(b < a);
16 }
17
18 TEST(NonceTest, VerifyEqualityOperators) {
19 // Deserialize is used for testing purposes.
20 // Use NonceToken::Create() in production code instead.
21 NonceToken nonce = NonceToken::Deserialize(1, 2);
22 NonceToken same_nonce = NonceToken::Deserialize(1, 2);
23 NonceToken diff_nonce = NonceToken::Deserialize(1, 3);
24
25 EXPECT_TRUE(nonce == nonce);
26 EXPECT_FALSE(nonce != nonce);
27
28 EXPECT_TRUE(nonce == same_nonce);
29 EXPECT_FALSE(nonce != same_nonce);
30
31 EXPECT_FALSE(nonce == diff_nonce);
32 EXPECT_FALSE(diff_nonce == nonce);
33 EXPECT_TRUE(nonce != diff_nonce);
34 EXPECT_TRUE(diff_nonce != nonce);
35 }
36
37 TEST(NonceTest, VerifyConstructors) {
38 NonceToken nonce = NonceToken::Create();
39 EXPECT_FALSE(nonce.is_empty());
40 EXPECT_TRUE(nonce);
41
42 NonceToken copied_nonce(nonce);
43 EXPECT_TRUE(copied_nonce);
44 EXPECT_EQ(nonce, copied_nonce);
45
46 NonceToken uninitialized;
47 EXPECT_TRUE(uninitialized.is_empty());
48 EXPECT_FALSE(uninitialized);
49
50 EXPECT_TRUE(NonceToken().is_empty());
51 EXPECT_FALSE(NonceToken());
52 }
53
54 TEST(NonceTest, VerifySerialization) {
55 NonceToken nonce = NonceToken::Create();
56
57 uint64_t high = 0;
58 uint64_t low = 0;
59 nonce.Serialize(&high, &low);
60
61 EXPECT_FALSE(NonceToken::IsZeroData(high, low));
62
63 NonceToken Deserialized = NonceToken::Deserialize(high, low);
64 EXPECT_EQ(nonce, Deserialized);
65 }
66
67 TEST(NonceTest, VerifySmallerThanOperator) {
68 // Deserialize is used for testing purposes.
69 // Use NonceToken::Create() in production code instead.
70
71 // a.low < b.low and a.high == b.high.
72 TestSmallerThanOperator(NonceToken::Deserialize(0, 1),
73 NonceToken::Deserialize(0, 5));
74
75 // a.low == b.low and a.high < b.high.
76 TestSmallerThanOperator(NonceToken::Deserialize(1, 0),
77 NonceToken::Deserialize(5, 0));
78
79 // a.low < b.low and a.high < b.high.
80 TestSmallerThanOperator(NonceToken::Deserialize(1, 1),
81 NonceToken::Deserialize(5, 5));
82
83 // a.low > b.low and a.high < b.high.
84 TestSmallerThanOperator(NonceToken::Deserialize(1, 10),
85 NonceToken::Deserialize(10, 1));
86 }
87
88 TEST(NonceTest, VerifyHash) {
89 NonceToken nonce = NonceToken::Create();
90
91 uint64_t high, low;
92 nonce.Serialize(&high, &low);
93
94 EXPECT_EQ(base::HashInts64(high, low), NonceTokenHash{}(nonce));
95 }
96
97 TEST(NonceTest, VerifyBasicUniqueness) {
98 EXPECT_NE(NonceToken::Create(), NonceToken::Create());
99
100 uint64_t high, low;
101 NonceToken::Create().Serialize(&high, &low);
102 EXPECT_NE(high, low);
103 }
104 }
OLDNEW
« base/nonce_token.cc ('K') | « base/nonce_token.cc ('k') | ipc/ipc_message_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698