Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Side by Side Diff: mojo/public/cpp/bindings/tests/pickle_unittest.cc

Issue 2062333002: mojo::Callback -> base::Callback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <string> 5 #include <string>
6 #include <utility>
6 7
7 #include "base/bind.h" 8 #include "base/bind.h"
8 #include "base/callback.h" 9 #include "base/callback.h"
9 #include "base/logging.h" 10 #include "base/logging.h"
10 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
11 #include "base/run_loop.h" 12 #include "base/run_loop.h"
12 #include "mojo/public/cpp/bindings/binding_set.h" 13 #include "mojo/public/cpp/bindings/binding_set.h"
13 #include "mojo/public/cpp/bindings/interface_request.h" 14 #include "mojo/public/cpp/bindings/interface_request.h"
14 #include "mojo/public/cpp/bindings/tests/pickled_types_blink.h" 15 #include "mojo/public/cpp/bindings/tests/pickled_types_blink.h"
15 #include "mojo/public/cpp/bindings/tests/pickled_types_chromium.h" 16 #include "mojo/public/cpp/bindings/tests/pickled_types_chromium.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 template <typename T> 68 template <typename T>
68 base::Callback<void(T)> EnumFail(const std::string& reason) { 69 base::Callback<void(T)> EnumFail(const std::string& reason) {
69 return base::Bind(&DoEnumFail<T>, reason); 70 return base::Bind(&DoEnumFail<T>, reason);
70 } 71 }
71 72
72 template <typename T> 73 template <typename T>
73 void ExpectError(InterfacePtr<T>* proxy, const base::Closure& callback) { 74 void ExpectError(InterfacePtr<T>* proxy, const base::Closure& callback) {
74 proxy->set_connection_error_handler(callback); 75 proxy->set_connection_error_handler(callback);
75 } 76 }
76 77
78 template <typename Func, typename Arg>
79 void RunSimpleLambda(Func func, Arg arg) { func(std::move(arg)); }
80
81 template <typename Arg, typename Func>
82 base::Callback<void(Arg)> BindSimpleLambda(Func func) {
83 return base::Bind(&RunSimpleLambda<Func, Arg>, func);
84 }
85
77 // This implements the generated Chromium variant of PicklePasser. 86 // This implements the generated Chromium variant of PicklePasser.
78 class ChromiumPicklePasserImpl : public PicklePasser { 87 class ChromiumPicklePasserImpl : public PicklePasser {
79 public: 88 public:
80 ChromiumPicklePasserImpl() {} 89 ChromiumPicklePasserImpl() {}
81 90
82 // mojo::test::PicklePasser: 91 // mojo::test::PicklePasser:
83 void PassPickledStruct(const PickledStructChromium& pickle, 92 void PassPickledStruct(const PickledStructChromium& pickle,
84 const PassPickledStructCallback& callback) override { 93 const PassPickledStructCallback& callback) override {
85 callback.Run(pickle); 94 callback.Run(pickle);
86 } 95 }
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 pickles[1].set_foo(3); 306 pickles[1].set_foo(3);
298 pickles[1].set_bar(4); 307 pickles[1].set_bar(4);
299 pickles[1].set_baz(100); 308 pickles[1].set_baz(100);
300 { 309 {
301 base::RunLoop run_loop; 310 base::RunLoop run_loop;
302 // Verify that the array of pickled structs can be serialized and 311 // Verify that the array of pickled structs can be serialized and
303 // deserialized intact. This ensures that the ParamTraits are actually used 312 // deserialized intact. This ensures that the ParamTraits are actually used
304 // rather than doing a byte-for-byte copy of the element data, beacuse the 313 // rather than doing a byte-for-byte copy of the element data, beacuse the
305 // |baz| field should never be serialized. 314 // |baz| field should never be serialized.
306 proxy->PassPickles(std::move(pickles), 315 proxy->PassPickles(std::move(pickles),
307 [&](Array<PickledStructChromium> passed) { 316 BindSimpleLambda<Array<PickledStructChromium>>(
308 ASSERT_FALSE(passed.is_null()); 317 [&](Array<PickledStructChromium> passed) {
309 ASSERT_EQ(2u, passed.size()); 318 ASSERT_FALSE(passed.is_null());
310 EXPECT_EQ(1, passed[0].foo()); 319 ASSERT_EQ(2u, passed.size());
311 EXPECT_EQ(2, passed[0].bar()); 320 EXPECT_EQ(1, passed[0].foo());
312 EXPECT_EQ(0, passed[0].baz()); 321 EXPECT_EQ(2, passed[0].bar());
313 EXPECT_EQ(3, passed[1].foo()); 322 EXPECT_EQ(0, passed[0].baz());
314 EXPECT_EQ(4, passed[1].bar()); 323 EXPECT_EQ(3, passed[1].foo());
315 EXPECT_EQ(0, passed[1].baz()); 324 EXPECT_EQ(4, passed[1].bar());
316 run_loop.Quit(); 325 EXPECT_EQ(0, passed[1].baz());
317 }); 326 run_loop.Quit();
327 }));
318 run_loop.Run(); 328 run_loop.Run();
319 } 329 }
320 } 330 }
321 331
322 TEST_F(PickleTest, PickleArrayArray) { 332 TEST_F(PickleTest, PickleArrayArray) {
323 auto proxy = ConnectToChromiumService(); 333 auto proxy = ConnectToChromiumService();
324 auto pickle_arrays = Array<Array<PickledStructChromium>>::New(2); 334 auto pickle_arrays = Array<Array<PickledStructChromium>>::New(2);
325 for (size_t i = 0; i < 2; ++i) 335 for (size_t i = 0; i < 2; ++i)
326 pickle_arrays[i] = Array<PickledStructChromium>::New(2); 336 pickle_arrays[i] = Array<PickledStructChromium>::New(2);
327 337
328 pickle_arrays[0][0].set_foo(1); 338 pickle_arrays[0][0].set_foo(1);
329 pickle_arrays[0][0].set_bar(2); 339 pickle_arrays[0][0].set_bar(2);
330 pickle_arrays[0][0].set_baz(100); 340 pickle_arrays[0][0].set_baz(100);
331 pickle_arrays[0][1].set_foo(3); 341 pickle_arrays[0][1].set_foo(3);
332 pickle_arrays[0][1].set_bar(4); 342 pickle_arrays[0][1].set_bar(4);
333 pickle_arrays[0][1].set_baz(100); 343 pickle_arrays[0][1].set_baz(100);
334 pickle_arrays[1][0].set_foo(5); 344 pickle_arrays[1][0].set_foo(5);
335 pickle_arrays[1][0].set_bar(6); 345 pickle_arrays[1][0].set_bar(6);
336 pickle_arrays[1][0].set_baz(100); 346 pickle_arrays[1][0].set_baz(100);
337 pickle_arrays[1][1].set_foo(7); 347 pickle_arrays[1][1].set_foo(7);
338 pickle_arrays[1][1].set_bar(8); 348 pickle_arrays[1][1].set_bar(8);
339 pickle_arrays[1][1].set_baz(100); 349 pickle_arrays[1][1].set_baz(100);
340 { 350 {
341 base::RunLoop run_loop; 351 base::RunLoop run_loop;
342 // Verify that the array-of-arrays serializes and deserializes properly. 352 // Verify that the array-of-arrays serializes and deserializes properly.
343 proxy->PassPickleArrays(std::move(pickle_arrays), 353 proxy->PassPickleArrays(
344 [&](Array<Array<PickledStructChromium>> passed) { 354 std::move(pickle_arrays),
345 ASSERT_FALSE(passed.is_null()); 355 BindSimpleLambda<Array<Array<PickledStructChromium>>>(
346 ASSERT_EQ(2u, passed.size()); 356 [&](Array<Array<PickledStructChromium>> passed) {
347 ASSERT_EQ(2u, passed[0].size()); 357 ASSERT_FALSE(passed.is_null());
348 ASSERT_EQ(2u, passed[1].size()); 358 ASSERT_EQ(2u, passed.size());
349 EXPECT_EQ(1, passed[0][0].foo()); 359 ASSERT_EQ(2u, passed[0].size());
350 EXPECT_EQ(2, passed[0][0].bar()); 360 ASSERT_EQ(2u, passed[1].size());
351 EXPECT_EQ(0, passed[0][0].baz()); 361 EXPECT_EQ(1, passed[0][0].foo());
352 EXPECT_EQ(3, passed[0][1].foo()); 362 EXPECT_EQ(2, passed[0][0].bar());
353 EXPECT_EQ(4, passed[0][1].bar()); 363 EXPECT_EQ(0, passed[0][0].baz());
354 EXPECT_EQ(0, passed[0][1].baz()); 364 EXPECT_EQ(3, passed[0][1].foo());
355 EXPECT_EQ(5, passed[1][0].foo()); 365 EXPECT_EQ(4, passed[0][1].bar());
356 EXPECT_EQ(6, passed[1][0].bar()); 366 EXPECT_EQ(0, passed[0][1].baz());
357 EXPECT_EQ(0, passed[1][0].baz()); 367 EXPECT_EQ(5, passed[1][0].foo());
358 EXPECT_EQ(7, passed[1][1].foo()); 368 EXPECT_EQ(6, passed[1][0].bar());
359 EXPECT_EQ(8, passed[1][1].bar()); 369 EXPECT_EQ(0, passed[1][0].baz());
360 EXPECT_EQ(0, passed[1][1].baz()); 370 EXPECT_EQ(7, passed[1][1].foo());
361 run_loop.Quit(); 371 EXPECT_EQ(8, passed[1][1].bar());
362 }); 372 EXPECT_EQ(0, passed[1][1].baz());
373 run_loop.Quit();
374 }));
363 run_loop.Run(); 375 run_loop.Run();
364 } 376 }
365 } 377 }
366 378
367 TEST_F(PickleTest, PickleContainer) { 379 TEST_F(PickleTest, PickleContainer) {
368 auto proxy = ConnectToChromiumService(); 380 auto proxy = ConnectToChromiumService();
369 PickleContainerPtr pickle_container = PickleContainer::New(); 381 PickleContainerPtr pickle_container = PickleContainer::New();
370 pickle_container->f_struct.set_foo(42); 382 pickle_container->f_struct.set_foo(42);
371 pickle_container->f_struct.set_bar(43); 383 pickle_container->f_struct.set_bar(43);
372 pickle_container->f_struct.set_baz(44); 384 pickle_container->f_struct.set_baz(44);
373 pickle_container->f_enum = PickledEnumChromium::VALUE_1; 385 pickle_container->f_enum = PickledEnumChromium::VALUE_1;
374 EXPECT_TRUE(pickle_container.Equals(pickle_container)); 386 EXPECT_TRUE(pickle_container.Equals(pickle_container));
375 EXPECT_FALSE(pickle_container.Equals(PickleContainer::New())); 387 EXPECT_FALSE(pickle_container.Equals(PickleContainer::New()));
376 { 388 {
377 base::RunLoop run_loop; 389 base::RunLoop run_loop;
378 proxy->PassPickleContainer(std::move(pickle_container), 390 proxy->PassPickleContainer(std::move(pickle_container),
379 [&](PickleContainerPtr passed) { 391 BindSimpleLambda<PickleContainerPtr>(
380 ASSERT_FALSE(passed.is_null()); 392 [&](PickleContainerPtr passed) {
381 EXPECT_EQ(42, passed->f_struct.foo()); 393 ASSERT_FALSE(passed.is_null());
382 EXPECT_EQ(43, passed->f_struct.bar()); 394 EXPECT_EQ(42, passed->f_struct.foo());
383 EXPECT_EQ(0, passed->f_struct.baz()); 395 EXPECT_EQ(43, passed->f_struct.bar());
384 EXPECT_EQ(PickledEnumChromium::VALUE_1, 396 EXPECT_EQ(0, passed->f_struct.baz());
385 passed->f_enum); 397 EXPECT_EQ(PickledEnumChromium::VALUE_1,
386 run_loop.Quit(); 398 passed->f_enum);
387 }); 399 run_loop.Quit();
400 }));
388 run_loop.Run(); 401 run_loop.Run();
389 } 402 }
390 } 403 }
391 404
392 } // namespace test 405 } // namespace test
393 } // namespace mojo 406 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698