• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 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 #include <string>
6 #include <vector>
7 
8 #include "chrome/browser/sync/protocol/test.pb.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 
11 namespace {
12 
TEST(SyncProtobufTest,TestUnknownFields)13 TEST(SyncProtobufTest, TestUnknownFields) {
14   // This tests ensures that we retain unknown fields in protocol buffers by
15   // serialising UnknownFieldsTestB, which is a superset of UnknownFieldsTestA,
16   // and checking we get back to the same message after parsing/serialising via
17   // UnknownFieldsTestA.
18   sync_pb::UnknownFieldsTestA a;
19   sync_pb::UnknownFieldsTestB b;
20   sync_pb::UnknownFieldsTestB b2;
21 
22   b.set_foo(true);
23   b.set_bar(true);
24   std::string serialized;
25   ASSERT_TRUE(b.SerializeToString(&serialized));
26   ASSERT_TRUE(a.ParseFromString(serialized));
27   ASSERT_TRUE(a.foo());
28   std::string serialized2;
29   ASSERT_TRUE(a.SerializeToString(&serialized2));
30   ASSERT_TRUE(b2.ParseFromString(serialized2));
31   ASSERT_TRUE(b2.foo());
32   ASSERT_TRUE(b2.bar());
33 }
34 
35 }  // namespace
36