Index: mojo/public/cpp/bindings/tests/struct_traits_unittest.cc |
diff --git a/mojo/public/cpp/bindings/tests/struct_traits_unittest.cc b/mojo/public/cpp/bindings/tests/struct_traits_unittest.cc |
index 583dc460be4f268ff9d5e6b0e10b5a50f9353565..15b8d6ca62bbab0905c0ca7a4eda23d7aa633ea8 100644 |
--- a/mojo/public/cpp/bindings/tests/struct_traits_unittest.cc |
+++ b/mojo/public/cpp/bindings/tests/struct_traits_unittest.cc |
@@ -134,9 +134,15 @@ class StructTraitsTest : public testing::Test, |
callback.Run(s); |
} |
- void EchoPassByValueStructWithTraits( |
- PassByValueStructWithTraitsImpl s, |
- const EchoPassByValueStructWithTraitsCallback& callback) override { |
+ void EchoTrivialStructWithTraits( |
+ TrivialStructWithTraitsImpl s, |
+ const EchoTrivialStructWithTraitsCallback& callback) override { |
+ callback.Run(s); |
+ } |
+ |
+ void EchoMoveOnlyStructWithTraits( |
+ MoveOnlyStructWithTraitsImpl s, |
+ const EchoMoveOnlyStructWithTraitsCallback& callback) override { |
callback.Run(std::move(s)); |
} |
@@ -274,24 +280,44 @@ TEST_F(StructTraitsTest, CloneStructWithTraitsContainer) { |
EXPECT_EQ(42u, cloned_container->f_struct.get_uint64()); |
} |
+void ExpectTrivialStructWithTraits(TrivialStructWithTraitsImpl expected, |
+ const base::Closure& closure, |
+ TrivialStructWithTraitsImpl passed) { |
+ EXPECT_EQ(expected.value, passed.value); |
+ closure.Run(); |
+} |
+ |
+TEST_F(StructTraitsTest, EchoTrivialStructWithTraits) { |
+ TrivialStructWithTraitsImpl input; |
+ input.value = 42; |
+ |
+ base::RunLoop loop; |
+ TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
+ |
+ proxy->EchoTrivialStructWithTraits( |
+ input, |
+ base::Bind(&ExpectTrivialStructWithTraits, input, loop.QuitClosure())); |
+ loop.Run(); |
+} |
+ |
void CaptureMessagePipe(ScopedMessagePipeHandle* storage, |
const base::Closure& closure, |
- PassByValueStructWithTraitsImpl passed) { |
+ MoveOnlyStructWithTraitsImpl passed) { |
storage->reset(MessagePipeHandle( |
passed.get_mutable_handle().release().value())); |
closure.Run(); |
} |
-TEST_F(StructTraitsTest, EchoPassByValueStructWithTraits) { |
+TEST_F(StructTraitsTest, EchoMoveOnlyStructWithTraits) { |
MessagePipe mp; |
- PassByValueStructWithTraitsImpl input; |
+ MoveOnlyStructWithTraitsImpl input; |
input.get_mutable_handle().reset(mp.handle0.release()); |
base::RunLoop loop; |
TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
ScopedMessagePipeHandle received; |
- proxy->EchoPassByValueStructWithTraits( |
+ proxy->EchoMoveOnlyStructWithTraits( |
std::move(input), |
base::Bind(&CaptureMessagePipe, &received, loop.QuitClosure())); |
loop.Run(); |