| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/callback.h" | 6 #include "base/callback.h" |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 10 #include "mojo/public/cpp/bindings/binding_set.h" | 10 #include "mojo/public/cpp/bindings/binding_set.h" |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 const EchoTrivialStructWithTraitsCallback& callback) override { | 139 const EchoTrivialStructWithTraitsCallback& callback) override { |
| 140 callback.Run(s); | 140 callback.Run(s); |
| 141 } | 141 } |
| 142 | 142 |
| 143 void EchoMoveOnlyStructWithTraits( | 143 void EchoMoveOnlyStructWithTraits( |
| 144 MoveOnlyStructWithTraitsImpl s, | 144 MoveOnlyStructWithTraitsImpl s, |
| 145 const EchoMoveOnlyStructWithTraitsCallback& callback) override { | 145 const EchoMoveOnlyStructWithTraitsCallback& callback) override { |
| 146 callback.Run(std::move(s)); | 146 callback.Run(std::move(s)); |
| 147 } | 147 } |
| 148 | 148 |
| 149 void EchoNullableMoveOnlyStructWithTraits( |
| 150 base::Optional<MoveOnlyStructWithTraitsImpl> s, |
| 151 const EchoNullableMoveOnlyStructWithTraitsCallback& callback) override { |
| 152 callback.Run(std::move(s)); |
| 153 } |
| 154 |
| 149 void EchoEnumWithTraits(EnumWithTraitsImpl e, | 155 void EchoEnumWithTraits(EnumWithTraitsImpl e, |
| 150 const EchoEnumWithTraitsCallback& callback) override { | 156 const EchoEnumWithTraitsCallback& callback) override { |
| 151 callback.Run(e); | 157 callback.Run(e); |
| 152 } | 158 } |
| 153 | 159 |
| 154 void EchoStructWithTraitsForUniquePtrTest( | 160 void EchoStructWithTraitsForUniquePtr( |
| 155 std::unique_ptr<int> e, | 161 std::unique_ptr<int> e, |
| 156 const EchoStructWithTraitsForUniquePtrTestCallback& callback) override { | 162 const EchoStructWithTraitsForUniquePtrCallback& callback) override { |
| 157 callback.Run(std::move(e)); | 163 callback.Run(std::move(e)); |
| 158 } | 164 } |
| 159 | 165 |
| 166 void EchoNullableStructWithTraitsForUniquePtr( |
| 167 std::unique_ptr<int> e, |
| 168 const EchoNullableStructWithTraitsForUniquePtrCallback& callback) |
| 169 override { |
| 170 callback.Run(std::move(e)); |
| 171 } |
| 172 |
| 160 base::MessageLoop loop_; | 173 base::MessageLoop loop_; |
| 161 | 174 |
| 162 ChromiumRectServiceImpl chromium_service_; | 175 ChromiumRectServiceImpl chromium_service_; |
| 163 BindingSet<RectService> chromium_bindings_; | 176 BindingSet<RectService> chromium_bindings_; |
| 164 | 177 |
| 165 BlinkRectServiceImpl blink_service_; | 178 BlinkRectServiceImpl blink_service_; |
| 166 BindingSet<blink::RectService> blink_bindings_; | 179 BindingSet<blink::RectService> blink_bindings_; |
| 167 | 180 |
| 168 BindingSet<TraitsTestService> traits_test_bindings_; | 181 BindingSet<TraitsTestService> traits_test_bindings_; |
| 169 }; | 182 }; |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 | 349 |
| 337 char buffer[10] = {0}; | 350 char buffer[10] = {0}; |
| 338 uint32_t buffer_size = static_cast<uint32_t>(sizeof(buffer)); | 351 uint32_t buffer_size = static_cast<uint32_t>(sizeof(buffer)); |
| 339 EXPECT_EQ(MOJO_RESULT_OK, | 352 EXPECT_EQ(MOJO_RESULT_OK, |
| 340 ReadMessageRaw(received.get(), buffer, &buffer_size, nullptr, | 353 ReadMessageRaw(received.get(), buffer, &buffer_size, nullptr, |
| 341 nullptr, MOJO_READ_MESSAGE_FLAG_NONE)); | 354 nullptr, MOJO_READ_MESSAGE_FLAG_NONE)); |
| 342 EXPECT_EQ(kHelloSize, buffer_size); | 355 EXPECT_EQ(kHelloSize, buffer_size); |
| 343 EXPECT_STREQ(kHello, buffer); | 356 EXPECT_STREQ(kHello, buffer); |
| 344 } | 357 } |
| 345 | 358 |
| 359 void CaptureNullableMoveOnlyStructWithTraitsImpl( |
| 360 base::Optional<MoveOnlyStructWithTraitsImpl>* storage, |
| 361 const base::Closure& closure, |
| 362 base::Optional<MoveOnlyStructWithTraitsImpl> passed) { |
| 363 *storage = std::move(passed); |
| 364 closure.Run(); |
| 365 } |
| 366 |
| 367 TEST_F(StructTraitsTest, EchoNullableMoveOnlyStructWithTraits) { |
| 368 base::RunLoop loop; |
| 369 TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| 370 |
| 371 base::Optional<MoveOnlyStructWithTraitsImpl> received; |
| 372 proxy->EchoNullableMoveOnlyStructWithTraits( |
| 373 base::nullopt, base::Bind(&CaptureNullableMoveOnlyStructWithTraitsImpl, |
| 374 &received, loop.QuitClosure())); |
| 375 loop.Run(); |
| 376 |
| 377 EXPECT_FALSE(received); |
| 378 } |
| 379 |
| 346 void ExpectEnumWithTraits(EnumWithTraitsImpl expected_value, | 380 void ExpectEnumWithTraits(EnumWithTraitsImpl expected_value, |
| 347 const base::Closure& closure, | 381 const base::Closure& closure, |
| 348 EnumWithTraitsImpl value) { | 382 EnumWithTraitsImpl value) { |
| 349 EXPECT_EQ(expected_value, value); | 383 EXPECT_EQ(expected_value, value); |
| 350 closure.Run(); | 384 closure.Run(); |
| 351 } | 385 } |
| 352 | 386 |
| 353 TEST_F(StructTraitsTest, EchoEnumWithTraits) { | 387 TEST_F(StructTraitsTest, EchoEnumWithTraits) { |
| 354 base::RunLoop loop; | 388 base::RunLoop loop; |
| 355 TraitsTestServicePtr proxy = GetTraitsTestProxy(); | 389 TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 384 EXPECT_EQ(input.get_bool(), output.get_bool()); | 418 EXPECT_EQ(input.get_bool(), output.get_bool()); |
| 385 EXPECT_EQ(input.get_uint32(), output.get_uint32()); | 419 EXPECT_EQ(input.get_uint32(), output.get_uint32()); |
| 386 EXPECT_EQ(input.get_uint64(), output.get_uint64()); | 420 EXPECT_EQ(input.get_uint64(), output.get_uint64()); |
| 387 EXPECT_EQ(input.get_string(), output.get_string()); | 421 EXPECT_EQ(input.get_string(), output.get_string()); |
| 388 EXPECT_EQ(input.get_string_array(), output.get_string_array()); | 422 EXPECT_EQ(input.get_string_array(), output.get_string_array()); |
| 389 EXPECT_EQ(input.get_struct(), output.get_struct()); | 423 EXPECT_EQ(input.get_struct(), output.get_struct()); |
| 390 EXPECT_EQ(input.get_struct_array(), output.get_struct_array()); | 424 EXPECT_EQ(input.get_struct_array(), output.get_struct_array()); |
| 391 EXPECT_EQ(input.get_struct_map(), output.get_struct_map()); | 425 EXPECT_EQ(input.get_struct_map(), output.get_struct_map()); |
| 392 } | 426 } |
| 393 | 427 |
| 394 void ExpectUniquePtr(int expected, | 428 void ExpectUniquePtr(std::unique_ptr<int> expected, |
| 395 const base::Closure& closure, | 429 const base::Closure& closure, |
| 396 std::unique_ptr<int> value) { | 430 std::unique_ptr<int> value) { |
| 397 EXPECT_EQ(expected, *value); | 431 ASSERT_EQ(!expected, !value); |
| 432 if (expected) |
| 433 EXPECT_EQ(*expected, *value); |
| 398 closure.Run(); | 434 closure.Run(); |
| 399 } | 435 } |
| 400 | 436 |
| 401 TEST_F(StructTraitsTest, TypemapUniquePtr) { | 437 TEST_F(StructTraitsTest, TypemapUniquePtr) { |
| 402 base::RunLoop loop; | |
| 403 TraitsTestServicePtr proxy = GetTraitsTestProxy(); | 438 TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| 404 | 439 |
| 405 proxy->EchoStructWithTraitsForUniquePtrTest( | 440 { |
| 406 base::MakeUnique<int>(12345), | 441 base::RunLoop loop; |
| 407 base::Bind(&ExpectUniquePtr, 12345, loop.QuitClosure())); | 442 proxy->EchoStructWithTraitsForUniquePtr( |
| 408 loop.Run(); | 443 base::MakeUnique<int>(12345), |
| 444 base::Bind(&ExpectUniquePtr, base::Passed(base::MakeUnique<int>(12345)), |
| 445 loop.QuitClosure())); |
| 446 loop.Run(); |
| 447 } |
| 448 { |
| 449 base::RunLoop loop; |
| 450 proxy->EchoNullableStructWithTraitsForUniquePtr( |
| 451 nullptr, base::Bind(&ExpectUniquePtr, nullptr, loop.QuitClosure())); |
| 452 loop.Run(); |
| 453 } |
| 409 } | 454 } |
| 410 | 455 |
| 411 } // namespace test | 456 } // namespace test |
| 412 } // namespace mojo | 457 } // namespace mojo |
| OLD | NEW |