OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/sequence_token.h" | 5 #include "base/sequence_token.h" |
6 | 6 |
| 7 #include "base/strings/string_number_conversions.h" |
7 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
8 | 9 |
9 namespace base { | 10 namespace base { |
10 | 11 |
11 TEST(SequenceTokenTest, IsValid) { | 12 TEST(SequenceTokenTest, IsValid) { |
12 EXPECT_FALSE(SequenceToken().IsValid()); | 13 EXPECT_FALSE(SequenceToken().IsValid()); |
13 EXPECT_TRUE(SequenceToken::Create().IsValid()); | 14 EXPECT_TRUE(SequenceToken::Create().IsValid()); |
14 } | 15 } |
15 | 16 |
16 TEST(SequenceTokenTest, OperatorEquals) { | 17 TEST(SequenceTokenTest, OperatorEquals) { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 { | 56 { |
56 ScopedSetSequenceTokenForCurrentThread | 57 ScopedSetSequenceTokenForCurrentThread |
57 scoped_set_sequence_token_for_current_thread(token); | 58 scoped_set_sequence_token_for_current_thread(token); |
58 EXPECT_TRUE(SequenceToken::GetForCurrentThread().IsValid()); | 59 EXPECT_TRUE(SequenceToken::GetForCurrentThread().IsValid()); |
59 EXPECT_EQ(token, SequenceToken::GetForCurrentThread()); | 60 EXPECT_EQ(token, SequenceToken::GetForCurrentThread()); |
60 } | 61 } |
61 | 62 |
62 EXPECT_FALSE(SequenceToken::GetForCurrentThread().IsValid()); | 63 EXPECT_FALSE(SequenceToken::GetForCurrentThread().IsValid()); |
63 } | 64 } |
64 | 65 |
| 66 TEST(SequenceTokenTest, ToString) { |
| 67 const SequenceToken token1 = SequenceToken::Create(); |
| 68 const SequenceToken token2 = SequenceToken::Create(); |
| 69 |
| 70 const std::string token1_str = token1.ToString(); |
| 71 const std::string token2_str = token2.ToString(); |
| 72 |
| 73 // Confirm that the strings are numerical representations. |
| 74 int token1_int = -1; |
| 75 int token2_int = -1; |
| 76 EXPECT_TRUE(StringToInt(token1_str, &token1_int)); |
| 77 EXPECT_TRUE(StringToInt(token2_str, &token2_int)); |
| 78 |
| 79 // Confirm that they are unique. |
| 80 EXPECT_NE(token1_str, token2_str); |
| 81 EXPECT_NE(token1_int, token2_int); |
| 82 } |
| 83 |
65 // Expect a default-constructed TaskToken to be invalid and not equal to | 84 // Expect a default-constructed TaskToken to be invalid and not equal to |
66 // another invalid TaskToken. | 85 // another invalid TaskToken. |
67 TEST(TaskTokenTest, InvalidDefaultConstructed) { | 86 TEST(TaskTokenTest, InvalidDefaultConstructed) { |
68 EXPECT_FALSE(TaskToken().IsValid()); | 87 EXPECT_FALSE(TaskToken().IsValid()); |
69 EXPECT_NE(TaskToken(), TaskToken()); | 88 EXPECT_NE(TaskToken(), TaskToken()); |
70 } | 89 } |
71 | 90 |
72 // Expect a TaskToken returned by TaskToken::GetForCurrentThread() outside the | 91 // Expect a TaskToken returned by TaskToken::GetForCurrentThread() outside the |
73 // scope of a ScopedSetSequenceTokenForCurrentThread to be invalid. | 92 // scope of a ScopedSetSequenceTokenForCurrentThread to be invalid. |
74 TEST(TaskTokenTest, InvalidOutsideScope) { | 93 TEST(TaskTokenTest, InvalidOutsideScope) { |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 scoped_set_sequence_token_for_current_thread(SequenceToken::Create()); | 135 scoped_set_sequence_token_for_current_thread(SequenceToken::Create()); |
117 token_b = TaskToken::GetForCurrentThread(); | 136 token_b = TaskToken::GetForCurrentThread(); |
118 } | 137 } |
119 | 138 |
120 EXPECT_TRUE(token_a.IsValid()); | 139 EXPECT_TRUE(token_a.IsValid()); |
121 EXPECT_TRUE(token_b.IsValid()); | 140 EXPECT_TRUE(token_b.IsValid()); |
122 EXPECT_NE(token_a, token_b); | 141 EXPECT_NE(token_a, token_b); |
123 } | 142 } |
124 | 143 |
125 } // namespace base | 144 } // namespace base |
OLD | NEW |