[Sync] Clean up ModelType code.
Various cleanup of ModelType usage and implementation. When enumerating
the types in a hard coded manner, we should always strive to order the
code to reflect model_type.h's order. ModelTypeSet's methods are
slightly more inline-able. Updated ModelType histogram and static
asserts.
BUG=
Review-Url: https://codereview.chromium.org/2701003002
Cr-Commit-Position: refs/heads/master@{#453616}
diff --git a/components/sync/base/enum_set_unittest.cc b/components/sync/base/enum_set_unittest.cc
index e6293f9..8f32c7f 100644
--- a/components/sync/base/enum_set_unittest.cc
+++ b/components/sync/base/enum_set_unittest.cc
@@ -77,6 +77,11 @@
EXPECT_FALSE(enums.Has(TEST_4));
}
+TEST_F(EnumSetTest, DuplicatesInConstructor) {
+ EXPECT_EQ(TestEnumSet(TEST_3, TEST_1, TEST_0, TEST_3, TEST_1, TEST_3),
+ TestEnumSet(TEST_0, TEST_1, TEST_3));
+}
+
TEST_F(EnumSetTest, All) {
const TestEnumSet enums(TestEnumSet::All());
EXPECT_FALSE(enums.Empty());
@@ -88,6 +93,13 @@
EXPECT_TRUE(enums.Has(TEST_4));
}
+TEST_F(EnumSetTest, FromRange) {
+ EXPECT_EQ(TestEnumSet(TEST_1, TEST_2, TEST_3),
+ TestEnumSet::FromRange(TEST_1, TEST_3));
+ EXPECT_EQ(TestEnumSet::All(), TestEnumSet::FromRange(TEST_0, TEST_4));
+ EXPECT_EQ(TestEnumSet(TEST_1), TestEnumSet::FromRange(TEST_1, TEST_1));
+}
+
TEST_F(EnumSetTest, Put) {
TestEnumSet enums(TEST_3);
enums.Put(TEST_2);
@@ -102,6 +114,12 @@
EXPECT_EQ(TestEnumSet(TEST_2, TEST_3, TEST_4), enums);
}
+TEST_F(EnumSetTest, PutRange) {
+ TestEnumSet enums;
+ enums.PutRange(TEST_1, TEST_3);
+ EXPECT_EQ(TestEnumSet(TEST_1, TEST_2, TEST_3), enums);
+}
+
TEST_F(EnumSetTest, RetainAll) {
TestEnumSet enums(TEST_3, TEST_4);
enums.RetainAll(TestEnumSet(TEST_2, TEST_3));