| 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 |