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.
8 #include "sync/protocol/test.pb.h"
9 #include "testing/gtest/include/gtest/gtest.h"
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
;
24 std::string serialized
;
25 ASSERT_TRUE(b
.SerializeToString(&serialized
));
26 ASSERT_TRUE(a
.ParseFromString(serialized
));
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());