summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_message_utils_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/ipc_message_utils_unittest.cc')
-rw-r--r--ipc/ipc_message_utils_unittest.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/ipc/ipc_message_utils_unittest.cc b/ipc/ipc_message_utils_unittest.cc
index f3aa31a..0c9a7da 100644
--- a/ipc/ipc_message_utils_unittest.cc
+++ b/ipc/ipc_message_utils_unittest.cc
@@ -90,5 +90,31 @@ TEST(IPCMessageUtilsTest, StackVector) {
EXPECT_EQ(stack_vector[i], output[i]);
}
+// Tests that PickleSizer and Pickle agree on the size of a complex base::Value.
+TEST(IPCMessageUtilsTest, ValueSize) {
+ scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue);
+ value->SetWithoutPathExpansion("foo", new base::FundamentalValue(42));
+ value->SetWithoutPathExpansion("bar", new base::FundamentalValue(3.14));
+ value->SetWithoutPathExpansion("baz", new base::StringValue("hello"));
+ value->SetWithoutPathExpansion("qux", base::Value::CreateNullValue());
+
+ scoped_ptr<base::DictionaryValue> nested_dict(new base::DictionaryValue);
+ nested_dict->SetWithoutPathExpansion("foobar", new base::FundamentalValue(5));
+ value->SetWithoutPathExpansion("nested", std::move(nested_dict));
+
+ scoped_ptr<base::ListValue> list_value(new base::ListValue);
+ list_value->Append(new base::StringValue("im a string"));
+ list_value->Append(new base::StringValue("im another string"));
+ value->SetWithoutPathExpansion("awesome-list", std::move(list_value));
+
+ base::Pickle pickle;
+ IPC::WriteParam(&pickle, *value);
+
+ base::PickleSizer sizer;
+ IPC::GetParamSize(&sizer, *value);
+
+ EXPECT_EQ(sizer.payload_size(), pickle.payload_size());
+}
+
} // namespace
} // namespace IPC