| Index: ipc/ipc_message_utils_unittest.cc
|
| diff --git a/ipc/ipc_message_utils_unittest.cc b/ipc/ipc_message_utils_unittest.cc
|
| index 7b77c52d563cc8f4da34a7ea5e48b3bce4202657..8ad690dfb4d82664c2f15e8e3b1676ea64bea422 100644
|
| --- a/ipc/ipc_message_utils_unittest.cc
|
| +++ b/ipc/ipc_message_utils_unittest.cc
|
| @@ -158,5 +158,46 @@ TEST(IPCMessageUtilsTest, MojoChannelHandle) {
|
| EXPECT_EQ(channel_handle.mojo_handle, result_handle.mojo_handle);
|
| }
|
|
|
| +TEST(IPCMessageUtilsTest, OptionalUnset) {
|
| + base::Optional<int> opt;
|
| + base::Pickle pickle;
|
| + IPC::WriteParam(&pickle, opt);
|
| +
|
| + base::PickleSizer sizer;
|
| + IPC::GetParamSize(&sizer, opt);
|
| +
|
| + EXPECT_EQ(sizer.payload_size(), pickle.payload_size());
|
| +
|
| + std::string log;
|
| + IPC::LogParam(opt, &log);
|
| + EXPECT_EQ("(unset)", log);
|
| +
|
| + base::Optional<int> unserialized_opt;
|
| + base::PickleIterator iter(pickle);
|
| + EXPECT_TRUE(IPC::ReadParam(&pickle, &iter, &unserialized_opt));
|
| + EXPECT_FALSE(unserialized_opt);
|
| +}
|
| +
|
| +TEST(IPCMessageUtilsTest, OptionalSet) {
|
| + base::Optional<int> opt(10);
|
| + base::Pickle pickle;
|
| + IPC::WriteParam(&pickle, opt);
|
| +
|
| + base::PickleSizer sizer;
|
| + IPC::GetParamSize(&sizer, opt);
|
| +
|
| + EXPECT_EQ(sizer.payload_size(), pickle.payload_size());
|
| +
|
| + std::string log;
|
| + IPC::LogParam(opt, &log);
|
| + EXPECT_EQ("10", log);
|
| +
|
| + base::Optional<int> unserialized_opt;
|
| + base::PickleIterator iter(pickle);
|
| + EXPECT_TRUE(IPC::ReadParam(&pickle, &iter, &unserialized_opt));
|
| + EXPECT_TRUE(unserialized_opt);
|
| + EXPECT_EQ(opt.value(), unserialized_opt.value());
|
| +}
|
| +
|
| } // namespace
|
| } // namespace IPC
|
|
|