summaryrefslogtreecommitdiffstats
path: root/sync/protocol/proto_enum_conversions_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sync/protocol/proto_enum_conversions_unittest.cc')
-rw-r--r--sync/protocol/proto_enum_conversions_unittest.cc62
1 files changed, 62 insertions, 0 deletions
diff --git a/sync/protocol/proto_enum_conversions_unittest.cc b/sync/protocol/proto_enum_conversions_unittest.cc
new file mode 100644
index 0000000..2445a30
--- /dev/null
+++ b/sync/protocol/proto_enum_conversions_unittest.cc
@@ -0,0 +1,62 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Keep this file in sync with the .proto files in this directory.
+
+#include "sync/protocol/proto_enum_conversions.h"
+
+#include <string>
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace browser_sync {
+namespace {
+
+class ProtoEnumConversionsTest : public testing::Test {
+};
+
+template <class T>
+void TestEnumStringFunction(const char* (*enum_string_fn)(T),
+ int enum_min, int enum_max) {
+ for (int i = enum_min; i <= enum_max; ++i) {
+ const std::string& str = enum_string_fn(static_cast<T>(i));
+ EXPECT_FALSE(str.empty());
+ }
+}
+
+TEST_F(ProtoEnumConversionsTest, GetBrowserTypeString) {
+ TestEnumStringFunction(
+ GetBrowserTypeString,
+ sync_pb::SessionWindow::BrowserType_MIN,
+ sync_pb::SessionWindow::BrowserType_MAX);
+}
+
+TEST_F(ProtoEnumConversionsTest, GetPageTransitionString) {
+ // We have a gap, so we need to do two ranges.
+ TestEnumStringFunction(
+ GetPageTransitionString,
+ sync_pb::TabNavigation::PageTransition_MIN,
+ sync_pb::TabNavigation::KEYWORD_GENERATED);
+ TestEnumStringFunction(
+ GetPageTransitionString,
+ sync_pb::TabNavigation::CHAIN_START,
+ sync_pb::TabNavigation::PageTransition_MAX);
+}
+
+TEST_F(ProtoEnumConversionsTest, GetPageTransitionQualifierString) {
+ TestEnumStringFunction(
+ GetPageTransitionQualifierString,
+ sync_pb::TabNavigation::PageTransitionQualifier_MIN,
+ sync_pb::TabNavigation::PageTransitionQualifier_MAX);
+}
+
+TEST_F(ProtoEnumConversionsTest, GetUpdatesSourceString) {
+ TestEnumStringFunction(
+ GetUpdatesSourceString,
+ sync_pb::GetUpdatesCallerInfo::GetUpdatesSource_MIN,
+ sync_pb::GetUpdatesCallerInfo::GetUpdatesSource_MAX);
+}
+
+} // namespace
+} // namespace browser_sync