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/interface_ptr_unittest.cc

Issue 1527183003: Change mojo enums to be scoped enums in the generated C++ bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mojo-binding-equals
Patch Set: rebase Created 4 years, 11 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <stdint.h> 5 #include <stdint.h>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 IntegerAccessorImpl() : integer_(0) {} 191 IntegerAccessorImpl() : integer_(0) {}
192 ~IntegerAccessorImpl() override {} 192 ~IntegerAccessorImpl() override {}
193 193
194 int64_t integer() const { return integer_; } 194 int64_t integer() const { return integer_; }
195 195
196 void set_closure(const base::Closure& closure) { closure_ = closure; } 196 void set_closure(const base::Closure& closure) { closure_ = closure; }
197 197
198 private: 198 private:
199 // sample::IntegerAccessor implementation. 199 // sample::IntegerAccessor implementation.
200 void GetInteger(const GetIntegerCallback& callback) override { 200 void GetInteger(const GetIntegerCallback& callback) override {
201 callback.Run(integer_, sample::ENUM_VALUE); 201 callback.Run(integer_, sample::Enum::VALUE);
202 } 202 }
203 void SetInteger(int64_t data, sample::Enum type) override { 203 void SetInteger(int64_t data, sample::Enum type) override {
204 integer_ = data; 204 integer_ = data;
205 if (!closure_.is_null()) { 205 if (!closure_.is_null()) {
206 closure_.Run(); 206 closure_.Run();
207 closure_.Reset(); 207 closure_.Reset();
208 } 208 }
209 } 209 }
210 210
211 int64_t integer_; 211 int64_t integer_;
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 EXPECT_EQ(0, SelfDestructingMathCalculatorUI::num_instances()); 414 EXPECT_EQ(0, SelfDestructingMathCalculatorUI::num_instances());
415 } 415 }
416 416
417 TEST_F(InterfacePtrTest, ReentrantWaitForIncomingMethodCall) { 417 TEST_F(InterfacePtrTest, ReentrantWaitForIncomingMethodCall) {
418 sample::ServicePtr proxy; 418 sample::ServicePtr proxy;
419 ReentrantServiceImpl impl(GetProxy(&proxy)); 419 ReentrantServiceImpl impl(GetProxy(&proxy));
420 420
421 base::RunLoop run_loop, run_loop2; 421 base::RunLoop run_loop, run_loop2;
422 auto called_cb = [&run_loop](int32_t result) { run_loop.Quit(); }; 422 auto called_cb = [&run_loop](int32_t result) { run_loop.Quit(); };
423 auto called_cb2 = [&run_loop2](int32_t result) { run_loop2.Quit(); }; 423 auto called_cb2 = [&run_loop2](int32_t result) { run_loop2.Quit(); };
424 proxy->Frobinate(nullptr, sample::Service::BAZ_OPTIONS_REGULAR, nullptr, 424 proxy->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
425 called_cb); 425 called_cb);
426 proxy->Frobinate(nullptr, sample::Service::BAZ_OPTIONS_REGULAR, nullptr, 426 proxy->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
427 called_cb2); 427 called_cb2);
428 428
429 run_loop.Run(); 429 run_loop.Run();
430 run_loop2.Run(); 430 run_loop2.Run();
431 431
432 EXPECT_EQ(2, impl.max_call_depth()); 432 EXPECT_EQ(2, impl.max_call_depth());
433 } 433 }
434 434
435 TEST_F(InterfacePtrTest, QueryVersion) { 435 TEST_F(InterfacePtrTest, QueryVersion) {
436 IntegerAccessorImpl impl; 436 IntegerAccessorImpl impl;
(...skipping 18 matching lines...) Expand all
455 IntegerAccessorImpl impl; 455 IntegerAccessorImpl impl;
456 sample::IntegerAccessorPtr ptr; 456 sample::IntegerAccessorPtr ptr;
457 Binding<sample::IntegerAccessor> binding(&impl, GetProxy(&ptr)); 457 Binding<sample::IntegerAccessor> binding(&impl, GetProxy(&ptr));
458 458
459 EXPECT_EQ(0u, ptr.version()); 459 EXPECT_EQ(0u, ptr.version());
460 460
461 ptr.RequireVersion(1u); 461 ptr.RequireVersion(1u);
462 EXPECT_EQ(1u, ptr.version()); 462 EXPECT_EQ(1u, ptr.version());
463 base::RunLoop run_loop; 463 base::RunLoop run_loop;
464 impl.set_closure(run_loop.QuitClosure()); 464 impl.set_closure(run_loop.QuitClosure());
465 ptr->SetInteger(123, sample::ENUM_VALUE); 465 ptr->SetInteger(123, sample::Enum::VALUE);
466 run_loop.Run(); 466 run_loop.Run();
467 EXPECT_FALSE(ptr.encountered_error()); 467 EXPECT_FALSE(ptr.encountered_error());
468 EXPECT_EQ(123, impl.integer()); 468 EXPECT_EQ(123, impl.integer());
469 469
470 ptr.RequireVersion(3u); 470 ptr.RequireVersion(3u);
471 EXPECT_EQ(3u, ptr.version()); 471 EXPECT_EQ(3u, ptr.version());
472 base::RunLoop run_loop2; 472 base::RunLoop run_loop2;
473 impl.set_closure(run_loop2.QuitClosure()); 473 impl.set_closure(run_loop2.QuitClosure());
474 ptr->SetInteger(456, sample::ENUM_VALUE); 474 ptr->SetInteger(456, sample::Enum::VALUE);
475 run_loop2.Run(); 475 run_loop2.Run();
476 EXPECT_FALSE(ptr.encountered_error()); 476 EXPECT_FALSE(ptr.encountered_error());
477 EXPECT_EQ(456, impl.integer()); 477 EXPECT_EQ(456, impl.integer());
478 478
479 // Require a version that is not supported by the impl side. 479 // Require a version that is not supported by the impl side.
480 ptr.RequireVersion(4u); 480 ptr.RequireVersion(4u);
481 // This value is set to the input of RequireVersion() synchronously. 481 // This value is set to the input of RequireVersion() synchronously.
482 EXPECT_EQ(4u, ptr.version()); 482 EXPECT_EQ(4u, ptr.version());
483 base::RunLoop run_loop3; 483 base::RunLoop run_loop3;
484 ptr.set_connection_error_handler(run_loop3.QuitClosure()); 484 ptr.set_connection_error_handler(run_loop3.QuitClosure());
485 ptr->SetInteger(789, sample::ENUM_VALUE); 485 ptr->SetInteger(789, sample::Enum::VALUE);
486 run_loop3.Run(); 486 run_loop3.Run();
487 EXPECT_TRUE(ptr.encountered_error()); 487 EXPECT_TRUE(ptr.encountered_error());
488 // The call to SetInteger() after RequireVersion(4u) is ignored. 488 // The call to SetInteger() after RequireVersion(4u) is ignored.
489 EXPECT_EQ(456, impl.integer()); 489 EXPECT_EQ(456, impl.integer());
490 } 490 }
491 491
492 class StrongMathCalculatorImpl : public math::Calculator { 492 class StrongMathCalculatorImpl : public math::Calculator {
493 public: 493 public:
494 StrongMathCalculatorImpl(ScopedMessagePipeHandle handle, 494 StrongMathCalculatorImpl(ScopedMessagePipeHandle handle,
495 bool* error_received, 495 bool* error_received,
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 // While B & C have fallen out of scope, the pipes will remain until they are 710 // While B & C have fallen out of scope, the pipes will remain until they are
711 // flushed. 711 // flushed.
712 EXPECT_FALSE(a_impl.d_called()); 712 EXPECT_FALSE(a_impl.d_called());
713 run_loop.Run(); 713 run_loop.Run();
714 EXPECT_TRUE(a_impl.d_called()); 714 EXPECT_TRUE(a_impl.d_called());
715 } 715 }
716 716
717 } // namespace 717 } // namespace
718 } // namespace test 718 } // namespace test
719 } // namespace mojo 719 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/tests/binding_unittest.cc ('k') | mojo/public/cpp/bindings/tests/request_response_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698