OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/browser/sync/util/enum_set.h" | 5 #include "chrome/browser/sync/util/enum_set.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 namespace browser_sync { | 10 namespace browser_sync { |
11 namespace { | 11 namespace { |
12 | 12 |
13 enum TestEnum { | 13 enum TestEnum { |
14 TEST_0, | 14 TEST_0, |
15 TEST_MIN = TEST_0, | 15 TEST_MIN = TEST_0, |
16 TEST_1, | 16 TEST_1, |
17 TEST_2, | 17 TEST_2, |
18 TEST_3, | 18 TEST_3, |
19 TEST_4, | 19 TEST_4, |
20 TEST_MAX = TEST_4, | 20 TEST_MAX = TEST_4, |
| 21 TEST_5 |
21 }; | 22 }; |
22 | 23 |
23 typedef EnumSet<TestEnum, TEST_MIN, TEST_MAX> TestEnumSet; | 24 typedef EnumSet<TestEnum, TEST_MIN, TEST_MAX> TestEnumSet; |
24 | 25 |
25 class EnumSetTest : public ::testing::Test {}; | 26 class EnumSetTest : public ::testing::Test {}; |
26 | 27 |
27 TEST_F(EnumSetTest, ClassConstants) { | 28 TEST_F(EnumSetTest, ClassConstants) { |
28 TestEnumSet enums; | 29 TestEnumSet enums; |
29 EXPECT_EQ(TEST_MIN, TestEnumSet::kMinValue); | 30 EXPECT_EQ(TEST_MIN, TestEnumSet::kMinValue); |
30 EXPECT_EQ(TEST_MAX, TestEnumSet::kMaxValue); | 31 EXPECT_EQ(TEST_MAX, TestEnumSet::kMaxValue); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 } | 102 } |
102 | 103 |
103 TEST_F(EnumSetTest, RetainAll) { | 104 TEST_F(EnumSetTest, RetainAll) { |
104 TestEnumSet enums(TEST_3, TEST_4); | 105 TestEnumSet enums(TEST_3, TEST_4); |
105 enums.RetainAll(TestEnumSet(TEST_2, TEST_3)); | 106 enums.RetainAll(TestEnumSet(TEST_2, TEST_3)); |
106 EXPECT_TRUE(enums.Equals(TestEnumSet(TEST_3))); | 107 EXPECT_TRUE(enums.Equals(TestEnumSet(TEST_3))); |
107 } | 108 } |
108 | 109 |
109 TEST_F(EnumSetTest, Remove) { | 110 TEST_F(EnumSetTest, Remove) { |
110 TestEnumSet enums(TEST_3, TEST_4); | 111 TestEnumSet enums(TEST_3, TEST_4); |
| 112 enums.Remove(TEST_0); |
111 enums.Remove(TEST_2); | 113 enums.Remove(TEST_2); |
112 EXPECT_TRUE(enums.Equals(TestEnumSet(TEST_3, TEST_4))); | 114 EXPECT_TRUE(enums.Equals(TestEnumSet(TEST_3, TEST_4))); |
113 enums.Remove(TEST_3); | 115 enums.Remove(TEST_3); |
114 EXPECT_TRUE(enums.Equals(TestEnumSet(TEST_4))); | 116 EXPECT_TRUE(enums.Equals(TestEnumSet(TEST_4))); |
115 enums.Remove(TEST_4); | 117 enums.Remove(TEST_4); |
| 118 enums.Remove(TEST_5); |
116 EXPECT_TRUE(enums.Empty()); | 119 EXPECT_TRUE(enums.Empty()); |
117 } | 120 } |
118 | 121 |
119 TEST_F(EnumSetTest, RemoveAll) { | 122 TEST_F(EnumSetTest, RemoveAll) { |
120 TestEnumSet enums(TEST_3, TEST_4); | 123 TestEnumSet enums(TEST_3, TEST_4); |
121 enums.RemoveAll(TestEnumSet(TEST_2, TEST_3)); | 124 enums.RemoveAll(TestEnumSet(TEST_2, TEST_3)); |
122 EXPECT_TRUE(enums.Equals(TestEnumSet(TEST_4))); | 125 EXPECT_TRUE(enums.Equals(TestEnumSet(TEST_4))); |
123 } | 126 } |
124 | 127 |
125 TEST_F(EnumSetTest, Clear) { | 128 TEST_F(EnumSetTest, Clear) { |
126 TestEnumSet enums(TEST_3, TEST_4); | 129 TestEnumSet enums(TEST_3, TEST_4); |
127 enums.Clear(); | 130 enums.Clear(); |
128 EXPECT_TRUE(enums.Empty()); | 131 EXPECT_TRUE(enums.Empty()); |
129 } | 132 } |
130 | 133 |
131 TEST_F(EnumSetTest, Has) { | 134 TEST_F(EnumSetTest, Has) { |
132 const TestEnumSet enums(TEST_3, TEST_4); | 135 const TestEnumSet enums(TEST_3, TEST_4); |
| 136 EXPECT_FALSE(enums.Has(TEST_0)); |
133 EXPECT_FALSE(enums.Has(TEST_1)); | 137 EXPECT_FALSE(enums.Has(TEST_1)); |
134 EXPECT_FALSE(enums.Has(TEST_2)); | 138 EXPECT_FALSE(enums.Has(TEST_2)); |
135 EXPECT_TRUE(enums.Has(TEST_3)); | 139 EXPECT_TRUE(enums.Has(TEST_3)); |
136 EXPECT_TRUE(enums.Has(TEST_4)); | 140 EXPECT_TRUE(enums.Has(TEST_4)); |
| 141 EXPECT_FALSE(enums.Has(TEST_5)); |
137 } | 142 } |
138 | 143 |
139 TEST_F(EnumSetTest, HasAll) { | 144 TEST_F(EnumSetTest, HasAll) { |
140 const TestEnumSet enums1(TEST_3, TEST_4); | 145 const TestEnumSet enums1(TEST_3, TEST_4); |
141 const TestEnumSet enums2(TEST_2, TEST_3); | 146 const TestEnumSet enums2(TEST_2, TEST_3); |
142 const TestEnumSet enums3 = Union(enums1, enums2); | 147 const TestEnumSet enums3 = Union(enums1, enums2); |
143 EXPECT_TRUE(enums1.HasAll(enums1)); | 148 EXPECT_TRUE(enums1.HasAll(enums1)); |
144 EXPECT_FALSE(enums1.HasAll(enums2)); | 149 EXPECT_FALSE(enums1.HasAll(enums2)); |
145 EXPECT_FALSE(enums1.HasAll(enums3)); | 150 EXPECT_FALSE(enums1.HasAll(enums3)); |
146 | 151 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 TEST_F(EnumSetTest, Difference) { | 186 TEST_F(EnumSetTest, Difference) { |
182 const TestEnumSet enums1(TEST_3, TEST_4); | 187 const TestEnumSet enums1(TEST_3, TEST_4); |
183 const TestEnumSet enums2(TEST_2, TEST_3); | 188 const TestEnumSet enums2(TEST_2, TEST_3); |
184 const TestEnumSet enums3 = Difference(enums1, enums2); | 189 const TestEnumSet enums3 = Difference(enums1, enums2); |
185 | 190 |
186 EXPECT_TRUE(enums3.Equals(TestEnumSet(TEST_4))); | 191 EXPECT_TRUE(enums3.Equals(TestEnumSet(TEST_4))); |
187 } | 192 } |
188 | 193 |
189 } // namespace | 194 } // namespace |
190 } // namespace browser_sync | 195 } // namespace browser_sync |
OLD | NEW |