| Index: base/nonce_unittest.cc
|
| diff --git a/base/nonce_unittest.cc b/base/nonce_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2f6894c4fd5ae2db301b60d8920d1b81f43f0ec0
|
| --- /dev/null
|
| +++ b/base/nonce_unittest.cc
|
| @@ -0,0 +1,74 @@
|
| +// Copyright (c) 2016 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 "base/nonce.h"
|
| +
|
| +#include <type_traits>
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace base {
|
| +
|
| +void TestSmallerThanOperator(const Nonce& a, const Nonce& b) {
|
| + EXPECT_TRUE(a < b);
|
| + EXPECT_FALSE(b < a);
|
| +}
|
| +
|
| +TEST(NonceTest, VerifyEqualityOperators) {
|
| + // Deserialize is used for testing purposes.
|
| + // Use Nonce::Generate() to generate nonces in productions code instead.
|
| + Nonce nonce = Nonce::Deserialize(1, 2);
|
| + Nonce same_nonce = Nonce::Deserialize(1, 2);
|
| + Nonce diff_nonce = Nonce::Deserialize(1, 3);
|
| +
|
| + EXPECT_TRUE(nonce == nonce);
|
| + EXPECT_FALSE(nonce != nonce);
|
| +
|
| + EXPECT_TRUE(nonce == same_nonce);
|
| + EXPECT_FALSE(nonce != same_nonce);
|
| +
|
| + EXPECT_FALSE(nonce == diff_nonce);
|
| + EXPECT_FALSE(diff_nonce == nonce);
|
| + EXPECT_TRUE(nonce != diff_nonce);
|
| + EXPECT_TRUE(diff_nonce != nonce);
|
| +}
|
| +
|
| +TEST(NonceTest, VerifyConstructors) {
|
| + Nonce nonce = Nonce::Generate();
|
| + EXPECT_FALSE(nonce.is_empty());
|
| +
|
| + EXPECT_EQ(nonce, Nonce::Deserialize(nonce.high(), nonce.low()));
|
| + EXPECT_EQ(nonce, Nonce(nonce));
|
| +
|
| + Nonce uninitialized;
|
| + EXPECT_TRUE(uninitialized.is_empty());
|
| + EXPECT_TRUE(Nonce().is_empty());
|
| +}
|
| +
|
| +TEST(NonceTest, VerifySmallerThanOperator) {
|
| + // Deserialize is used for testing purposes.
|
| + // Use Nonce::Generate() to generate nonces in productions code instead.
|
| +
|
| + // a.low < b.low and a.high == b.high.
|
| + TestSmallerThanOperator(Nonce::Deserialize(0, 1), Nonce::Deserialize(0, 5));
|
| +
|
| + // a.low == b.low and a.high < b.high.
|
| + TestSmallerThanOperator(Nonce::Deserialize(1, 0), Nonce::Deserialize(5, 0));
|
| +
|
| + // a.low < b.low and a.high < b.high.
|
| + TestSmallerThanOperator(Nonce::Deserialize(1, 1), Nonce::Deserialize(5, 5));
|
| +
|
| + // a.low > b.low and a.high < b.high.
|
| + TestSmallerThanOperator(Nonce::Deserialize(1, 10), Nonce::Deserialize(10, 1));
|
| +}
|
| +
|
| +TEST(NonceTest, VerifyHash) {
|
| + Nonce nonce = Nonce::Generate();
|
| + EXPECT_EQ(base::HashInts64(nonce.high(), nonce.low()), NonceHash{}(nonce));
|
| +}
|
| +
|
| +TEST(NonceTest, VerifyBasicUniqueness) {
|
| + EXPECT_NE(Nonce::Generate(), Nonce::Generate());
|
| +}
|
| +}
|
|
|