Commit 042bfaf6 authored by Feng Xiao's avatar Feng Xiao

Merge remote-tracking branch 'origin/master' into beta-1

parents 11e36b1c b00595a3
...@@ -1602,8 +1602,10 @@ bool ProtoStreamObjectWriter::IsMap(const google::protobuf::Field& field) { ...@@ -1602,8 +1602,10 @@ bool ProtoStreamObjectWriter::IsMap(const google::protobuf::Field& field) {
const google::protobuf::Type* field_type = const google::protobuf::Type* field_type =
typeinfo_->GetTypeByTypeUrl(field.type_url()); typeinfo_->GetTypeByTypeUrl(field.type_url());
// TODO(xiaofeng): Unify option names.
return GetBoolOptionOrDefault(field_type->options(), return GetBoolOptionOrDefault(field_type->options(),
"google.protobuf.MessageOptions.map_entry", false); "google.protobuf.MessageOptions.map_entry", false) ||
GetBoolOptionOrDefault(field_type->options(), "map_entry", false);
} }
void ProtoStreamObjectWriter::WriteTag(const google::protobuf::Field& field) { void ProtoStreamObjectWriter::WriteTag(const google::protobuf::Field& field) {
......
...@@ -47,6 +47,7 @@ namespace { ...@@ -47,6 +47,7 @@ namespace {
using proto3::FOO; using proto3::FOO;
using proto3::BAR; using proto3::BAR;
using proto3::TestMessage; using proto3::TestMessage;
using proto3::TestMap;
static const char kTypeUrlPrefix[] = "type.googleapis.com"; static const char kTypeUrlPrefix[] = "type.googleapis.com";
...@@ -147,6 +148,16 @@ TEST_F(JsonUtilTest, ParseMessage) { ...@@ -147,6 +148,16 @@ TEST_F(JsonUtilTest, ParseMessage) {
EXPECT_EQ(96, m.repeated_message_value(1).value()); EXPECT_EQ(96, m.repeated_message_value(1).value());
} }
TEST_F(JsonUtilTest, ParseMap) {
TestMap message;
(*message.mutable_string_map())["hello"] = 1234;
JsonOptions options;
EXPECT_EQ("{\"stringMap\":{\"hello\":1234}}", ToJson(message, options));
TestMap other;
ASSERT_TRUE(FromJson(ToJson(message, options), &other));
EXPECT_EQ(message.DebugString(), other.DebugString());
}
typedef pair<char*, int> Segment; typedef pair<char*, int> Segment;
// A ZeroCopyOutputStream that writes to multiple buffers. // A ZeroCopyOutputStream that writes to multiple buffers.
class SegmentedZeroCopyOutputStream : public io::ZeroCopyOutputStream { class SegmentedZeroCopyOutputStream : public io::ZeroCopyOutputStream {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment