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 3 // found in the LICENSE file. 4 5 // Keep this file in sync with syncable.h. 6 7 #include "chrome/browser/sync/syncable/syncable_enum_conversions.h" 8 9 #include <string> 10 11 #include "testing/gtest/include/gtest/gtest.h" 12 13 namespace syncable { 14 namespace { 15 16 class SyncableEnumConversionsTest : public testing::Test { 17 }; 18 19 template <class T> 20 void TestEnumStringFunction(const char* (*enum_string_fn)(T), 21 int enum_min, int enum_max) { 22 EXPECT_LE(enum_min, enum_max); 23 for (int i = enum_min; i <= enum_max; ++i) { 24 const std::string& str = enum_string_fn(static_cast<T>(i)); 25 EXPECT_FALSE(str.empty()); 26 } 27 } 28 29 TEST_F(SyncableEnumConversionsTest, GetMetahandleFieldString) { 30 TestEnumStringFunction( 31 GetMetahandleFieldString, INT64_FIELDS_BEGIN, META_HANDLE); 32 } 33 34 TEST_F(SyncableEnumConversionsTest, GetBaseVersionString) { 35 TestEnumStringFunction( 36 GetBaseVersionString, META_HANDLE + 1, BASE_VERSION); 37 } 38 39 TEST_F(SyncableEnumConversionsTest, GetInt64FieldString) { 40 TestEnumStringFunction( 41 GetInt64FieldString, BASE_VERSION + 1, INT64_FIELDS_END - 1); 42 } 43 44 TEST_F(SyncableEnumConversionsTest, GetIdFieldString) { 45 TestEnumStringFunction( 46 GetIdFieldString, ID_FIELDS_BEGIN, ID_FIELDS_END - 1); 47 } 48 49 TEST_F(SyncableEnumConversionsTest, GetIndexedBitFieldString) { 50 TestEnumStringFunction( 51 GetIndexedBitFieldString, BIT_FIELDS_BEGIN, INDEXED_BIT_FIELDS_END - 1); 52 } 53 54 TEST_F(SyncableEnumConversionsTest, GetIsDelFieldString) { 55 TestEnumStringFunction( 56 GetIsDelFieldString, INDEXED_BIT_FIELDS_END, IS_DEL); 57 } 58 59 TEST_F(SyncableEnumConversionsTest, GetBitFieldString) { 60 TestEnumStringFunction( 61 GetBitFieldString, IS_DEL + 1, BIT_FIELDS_END - 1); 62 } 63 64 TEST_F(SyncableEnumConversionsTest, GetStringFieldString) { 65 TestEnumStringFunction( 66 GetStringFieldString, STRING_FIELDS_BEGIN, STRING_FIELDS_END - 1); 67 } 68 69 TEST_F(SyncableEnumConversionsTest, GetProtoFieldString) { 70 TestEnumStringFunction( 71 GetProtoFieldString, PROTO_FIELDS_BEGIN, PROTO_FIELDS_END - 1); 72 } 73 74 TEST_F(SyncableEnumConversionsTest, GetBitTempString) { 75 TestEnumStringFunction( 76 GetBitTempString, BIT_TEMPS_BEGIN, BIT_TEMPS_END - 1); 77 } 78 79 } // namespace 80 } // namespace syncable 81