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

Unified Diff: mojo/public/cpp/bindings/tests/binding_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 side-by-side diff with in-line comments
Download patch
Index: mojo/public/cpp/bindings/tests/binding_unittest.cc
diff --git a/mojo/public/cpp/bindings/tests/binding_unittest.cc b/mojo/public/cpp/bindings/tests/binding_unittest.cc
index 71f12ca2945cb6edb2219201d5089fc62517b6c2..7f7d75b7db52c78169991e4cf025c4cbb710fff8 100644
--- a/mojo/public/cpp/bindings/tests/binding_unittest.cc
+++ b/mojo/public/cpp/bindings/tests/binding_unittest.cc
@@ -58,6 +58,21 @@ class ServiceImpl : public sample::Service {
DISALLOW_COPY_AND_ASSIGN(ServiceImpl);
};
+template <typename... Args>
+void DoSetFlagAndRunClosure(bool* flag,
+ const base::Closure& closure,
+ Args... args) {
+ *flag = true;
+ closure.Run();
+}
+
+template <typename... Args>
+base::Callback<void(Args...)> SetFlagAndRunClosure(
+ bool* flag,
+ const base::Closure& callback = base::Closure()) {
+ return base::Bind(&DoSetFlagAndRunClosure<Args...>, flag, callback);
+}
+
// BindingTest -----------------------------------------------------------------
using BindingTest = BindingTestBase;
@@ -67,10 +82,8 @@ TEST_F(BindingTest, Close) {
sample::ServicePtr ptr;
auto request = GetProxy(&ptr);
base::RunLoop run_loop;
- ptr.set_connection_error_handler([&called, &run_loop]() {
- called = true;
- run_loop.Quit();
- });
+ ptr.set_connection_error_handler(
+ SetFlagAndRunClosure(&called, run_loop.QuitClosure()));
ServiceImpl impl;
Binding<sample::Service> binding(&impl, std::move(request));
@@ -88,20 +101,14 @@ TEST_F(BindingTest, DestroyClosesMessagePipe) {
auto request = GetProxy(&ptr);
base::RunLoop run_loop;
ptr.set_connection_error_handler(
- [&encountered_error, &run_loop]() {
- encountered_error = true;
- run_loop.Quit();
- });
+ SetFlagAndRunClosure(&encountered_error, run_loop.QuitClosure()));
bool called = false;
base::RunLoop run_loop2;
- auto called_cb = [&called, &run_loop2](int32_t result) {
- called = true;
- run_loop2.Quit();
- };
{
Binding<sample::Service> binding(&impl, std::move(request));
ptr->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
- called_cb);
+ SetFlagAndRunClosure<int32_t>(&called,
+ run_loop2.QuitClosure()));
run_loop2.Run();
EXPECT_TRUE(called);
EXPECT_FALSE(encountered_error);
@@ -114,7 +121,8 @@ TEST_F(BindingTest, DestroyClosesMessagePipe) {
// And calls should fail.
called = false;
ptr->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
- called_cb);
+ SetFlagAndRunClosure<int32_t>(&called,
+ run_loop2.QuitClosure()));
loop().RunUntilIdle();
EXPECT_FALSE(called);
}
@@ -128,10 +136,8 @@ TEST_F(BindingTest, ConnectionError) {
sample::ServicePtr ptr;
Binding<sample::Service> binding(&impl, GetProxy(&ptr));
base::RunLoop run_loop;
- binding.set_connection_error_handler([&called, &run_loop]() {
- called = true;
- run_loop.Quit();
- });
+ binding.set_connection_error_handler(
+ SetFlagAndRunClosure(&called, run_loop.QuitClosure()));
ptr.reset();
EXPECT_FALSE(called);
run_loop.Run();
@@ -149,7 +155,7 @@ TEST_F(BindingTest, CloseDoesntCallConnectionErrorHandler) {
sample::ServicePtr ptr;
Binding<sample::Service> binding(&impl, GetProxy(&ptr));
bool called = false;
- binding.set_connection_error_handler([&called]() { called = true; });
+ binding.set_connection_error_handler(SetFlagAndRunClosure(&called));
binding.Close();
loop().RunUntilIdle();
EXPECT_FALSE(called);
@@ -169,7 +175,9 @@ class ServiceImplWithBinding : public ServiceImpl {
: ServiceImpl(was_deleted),
binding_(this, std::move(request)),
closure_(closure) {
- binding_.set_connection_error_handler([this]() { delete this; });
+ binding_.set_connection_error_handler(
+ base::Bind(&ServiceImplWithBinding::OnConnectionError,
+ base::Unretained(this)));
}
private:
@@ -177,6 +185,8 @@ class ServiceImplWithBinding : public ServiceImpl {
closure_.Run();
}
+ void OnConnectionError() { delete this; }
+
Binding<sample::Service> binding_;
base::Closure closure_;
@@ -205,12 +215,9 @@ TEST_F(BindingTest, Unbind) {
bool called = false;
base::RunLoop run_loop;
- auto called_cb = [&called, &run_loop](int32_t result) {
- called = true;
- run_loop.Quit();
- };
ptr->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
- called_cb);
+ SetFlagAndRunClosure<int32_t>(&called,
+ run_loop.QuitClosure()));
run_loop.Run();
EXPECT_TRUE(called);
@@ -219,7 +226,8 @@ TEST_F(BindingTest, Unbind) {
EXPECT_FALSE(binding.is_bound());
// All calls should fail when not bound...
ptr->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
- called_cb);
+ SetFlagAndRunClosure<int32_t>(&called,
+ run_loop.QuitClosure()));
loop().RunUntilIdle();
EXPECT_FALSE(called);
@@ -228,12 +236,9 @@ TEST_F(BindingTest, Unbind) {
EXPECT_TRUE(binding.is_bound());
// ...and should succeed again when the rebound.
base::RunLoop run_loop2;
- auto called_cb2 = [&called, &run_loop2](int32_t result) {
- called = true;
- run_loop2.Quit();
- };
ptr->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
- called_cb2);
+ SetFlagAndRunClosure<int32_t>(&called,
+ run_loop2.QuitClosure()));
run_loop2.Run();
EXPECT_TRUE(called);
}
@@ -263,17 +268,14 @@ TEST_F(BindingTest, SetInterfacePtrVersion) {
TEST_F(BindingTest, PauseResume) {
bool called = false;
base::RunLoop run_loop;
- auto called_cb = [&called, &run_loop](int32_t result) {
- called = true;
- run_loop.Quit();
- };
sample::ServicePtr ptr;
auto request = GetProxy(&ptr);
ServiceImpl impl;
Binding<sample::Service> binding(&impl, std::move(request));
binding.PauseIncomingMethodCallProcessing();
ptr->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
- called_cb);
+ SetFlagAndRunClosure<int32_t>(&called,
+ run_loop.QuitClosure()));
EXPECT_FALSE(called);
loop().RunUntilIdle();
// Frobinate() should not be called as the binding is paused.
@@ -293,10 +295,8 @@ TEST_F(BindingTest, ErrorHandleNotRunWhilePaused) {
auto request = GetProxy(&ptr);
ServiceImpl impl;
Binding<sample::Service> binding(&impl, std::move(request));
- binding.set_connection_error_handler([&called, &run_loop]() {
- called = true;
- run_loop.Quit();
- });
+ binding.set_connection_error_handler(
+ SetFlagAndRunClosure(&called, run_loop.QuitClosure()));
binding.PauseIncomingMethodCallProcessing();
ptr.reset();
@@ -324,20 +324,14 @@ TEST_F(StrongBindingTest, DestroyClosesMessagePipe) {
sample::ServicePtr ptr;
auto request = GetProxy(&ptr);
ptr.set_connection_error_handler(
- [&encountered_error, &run_loop]() {
- encountered_error = true;
- run_loop.Quit();
- });
+ SetFlagAndRunClosure(&encountered_error, run_loop.QuitClosure()));
bool called = false;
base::RunLoop run_loop2;
- auto called_cb = [&called, &run_loop2](int32_t result) {
- called = true;
- run_loop2.Quit();
- };
{
StrongBinding<sample::Service> binding(&impl, std::move(request));
ptr->Frobinate(nullptr, sample::Service::BazOptions::REGULAR, nullptr,
- called_cb);
+ SetFlagAndRunClosure<int32_t>(&called,
+ run_loop2.QuitClosure()));
run_loop2.Run();
EXPECT_TRUE(called);
EXPECT_FALSE(encountered_error);
@@ -393,18 +387,13 @@ TEST_F(StrongBindingTest, ExplicitDeleteImpl) {
auto request = GetProxy(&ptr);
base::RunLoop run_loop;
ptr.set_connection_error_handler(
- [&ptr_error_handler_called, &run_loop]() {
- ptr_error_handler_called = true;
- run_loop.Quit();
- });
+ SetFlagAndRunClosure(&ptr_error_handler_called, run_loop.QuitClosure()));
bool was_deleted = false;
ServiceImplWithStrongBinding* impl =
new ServiceImplWithStrongBinding(&was_deleted, std::move(request));
bool binding_error_handler_called = false;
impl->binding().set_connection_error_handler(
- [&binding_error_handler_called]() {
- binding_error_handler_called = true;
- });
+ SetFlagAndRunClosure(&binding_error_handler_called));
loop().RunUntilIdle();
EXPECT_FALSE(ptr_error_handler_called);
« no previous file with comments | « mojo/public/cpp/bindings/tests/binding_callback_unittest.cc ('k') | mojo/public/cpp/bindings/tests/bindings_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698