1 // Copyright (c) 2012 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.
5 // Keep this file in sync with the .proto files in this directory.
7 #include "sync/protocol/proto_enum_conversions.h"
11 #include "testing/gtest/include/gtest/gtest.h"
16 class ProtoEnumConversionsTest
: public testing::Test
{
20 void TestEnumStringFunction(const char* (*enum_string_fn
)(T
),
21 int enum_min
, int enum_max
) {
22 for (int i
= enum_min
; i
<= enum_max
; ++i
) {
23 const std::string
& str
= enum_string_fn(static_cast<T
>(i
));
24 EXPECT_FALSE(str
.empty());
28 TEST_F(ProtoEnumConversionsTest
, GetAppListItemTypeString
) {
29 TestEnumStringFunction(
30 GetAppListItemTypeString
,
31 sync_pb::AppListSpecifics::AppListItemType_MIN
,
32 sync_pb::AppListSpecifics::AppListItemType_MAX
);
35 TEST_F(ProtoEnumConversionsTest
, GetBrowserTypeString
) {
36 TestEnumStringFunction(
38 sync_pb::SessionWindow::BrowserType_MIN
,
39 sync_pb::SessionWindow::BrowserType_MAX
);
42 TEST_F(ProtoEnumConversionsTest
, GetPageTransitionString
) {
43 TestEnumStringFunction(
44 GetPageTransitionString
,
45 sync_pb::SyncEnums::PageTransition_MIN
,
46 sync_pb::SyncEnums::PageTransition_MAX
);
49 TEST_F(ProtoEnumConversionsTest
, GetPageTransitionQualifierString
) {
50 TestEnumStringFunction(
51 GetPageTransitionRedirectTypeString
,
52 sync_pb::SyncEnums::PageTransitionRedirectType_MIN
,
53 sync_pb::SyncEnums::PageTransitionRedirectType_MAX
);
56 TEST_F(ProtoEnumConversionsTest
, GetUpdatesSourceString
) {
57 TestEnumStringFunction(
58 GetUpdatesSourceString
,
59 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource_MIN
,
60 sync_pb::GetUpdatesCallerInfo::PERIODIC
);
61 TestEnumStringFunction(
62 GetUpdatesSourceString
,
63 sync_pb::GetUpdatesCallerInfo::RETRY
,
64 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource_MAX
);
67 TEST_F(ProtoEnumConversionsTest
, GetResponseTypeString
) {
68 TestEnumStringFunction(
69 GetResponseTypeString
,
70 sync_pb::CommitResponse::ResponseType_MIN
,
71 sync_pb::CommitResponse::ResponseType_MAX
);
74 TEST_F(ProtoEnumConversionsTest
, GetErrorTypeString
) {
75 // We have a gap, so we need to do two ranges.
76 TestEnumStringFunction(
78 sync_pb::SyncEnums::ErrorType_MIN
,
79 sync_pb::SyncEnums::MIGRATION_DONE
);
80 TestEnumStringFunction(
82 sync_pb::SyncEnums::UNKNOWN
,
83 sync_pb::SyncEnums::ErrorType_MAX
);
87 TEST_F(ProtoEnumConversionsTest
, GetActionString
) {
88 TestEnumStringFunction(
90 sync_pb::SyncEnums::Action_MIN
,
91 sync_pb::SyncEnums::Action_MAX
);