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

Unified Diff: mojo/public/cpp/bindings/tests/bind_task_runner_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/bind_task_runner_unittest.cc
diff --git a/mojo/public/cpp/bindings/tests/bind_task_runner_unittest.cc b/mojo/public/cpp/bindings/tests/bind_task_runner_unittest.cc
index 489f42b4c90ac5c298d8aa5b389891cba4575c4c..7cb782db3562380912f4162102b167aec10392ab 100644
--- a/mojo/public/cpp/bindings/tests/bind_task_runner_unittest.cc
+++ b/mojo/public/cpp/bindings/tests/bind_task_runner_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/bind.h"
#include "base/message_loop/message_loop.h"
#include "base/single_thread_task_runner.h"
#include "base/synchronization/lock.h"
@@ -124,6 +125,7 @@ class IntegerSenderImpl : public IntegerSender {
~IntegerSenderImpl() override {}
using EchoHandler = Callback<void(int32_t, const EchoCallback&)>;
+
void set_echo_handler(const EchoHandler& handler) { echo_handler_ = handler; }
void Echo(int32_t value, const EchoCallback& callback) override {
@@ -216,7 +218,8 @@ class AssociatedBindTaskRunnerTest : public testing::Test {
sender_binding_task_runner_));
connection_impl_->set_get_sender_notification(
- [this]() { connection_binding_task_runner_->Quit(); });
+ base::Bind(&AssociatedBindTaskRunnerTest::QuitTaskRunner,
+ base::Unretained(this)));
connection_ptr_->GetSender(GetProxy(&sender_ptr_,
connection_ptr_.associated_group(),
@@ -224,6 +227,10 @@ class AssociatedBindTaskRunnerTest : public testing::Test {
connection_binding_task_runner_->Run();
}
+ void QuitTaskRunner() {
+ connection_binding_task_runner_->Quit();
+ }
+
base::MessageLoop loop_;
scoped_refptr<TestTaskRunner> connection_binding_task_runner_;
scoped_refptr<TestTaskRunner> connection_ptr_task_runner_;
@@ -235,22 +242,56 @@ class AssociatedBindTaskRunnerTest : public testing::Test {
IntegerSenderAssociatedPtr sender_ptr_;
};
+void DoSetFlagAndQuitTaskRunner(bool* flag,
+ scoped_refptr<TestTaskRunner> task_runner) {
+ *flag = true;
+ if (task_runner)
+ task_runner->Quit();
+}
+
+void DoExpectValueSetFlagAndQuitTaskRunner(
+ int32_t expected_value,
+ bool* flag,
+ scoped_refptr<TestTaskRunner> task_runner,
+ int32_t value) {
+ EXPECT_EQ(expected_value, value);
+ DoSetFlagAndQuitTaskRunner(flag, task_runner);
+}
+
+void DoExpectValueSetFlagForwardValueAndQuitTaskRunner(
+ int32_t expected_value,
+ bool* flag,
+ scoped_refptr<TestTaskRunner> task_runner,
+ int32_t value,
+ const IntegerSender::EchoCallback& callback) {
+ EXPECT_EQ(expected_value, value);
+ *flag = true;
+ callback.Run(value);
+ task_runner->Quit();
+}
+
+base::Closure SetFlagAndQuitTaskRunner(
+ bool* flag,
+ scoped_refptr<TestTaskRunner> task_runner) {
+ return base::Bind(&DoSetFlagAndQuitTaskRunner, flag, task_runner);
+}
+
+base::Callback<void(int32_t)> ExpectValueSetFlagAndQuitTaskRunner(
+ int32_t expected_value,
+ bool* flag,
+ scoped_refptr<TestTaskRunner> task_runner) {
+ return base::Bind(&DoExpectValueSetFlagAndQuitTaskRunner, expected_value,
+ flag, task_runner);
+}
+
TEST_F(BindTaskRunnerTest, MethodCall) {
bool echo_called = false;
impl_->set_echo_handler(
- [&, this](int32_t value, const IntegerSender::EchoCallback& callback) {
- EXPECT_EQ(1024, value);
- echo_called = true;
- callback.Run(value);
- binding_task_runner_->Quit();
- });
-
+ base::Bind(&DoExpectValueSetFlagForwardValueAndQuitTaskRunner,
+ 1024, &echo_called, binding_task_runner_));
bool echo_replied = false;
- ptr_->Echo(1024, [&, this](int32_t value) {
- EXPECT_EQ(1024, value);
- echo_replied = true;
- ptr_task_runner_->Quit();
- });
+ ptr_->Echo(1024, ExpectValueSetFlagAndQuitTaskRunner(1024, &echo_replied,
+ ptr_task_runner_));
binding_task_runner_->Run();
EXPECT_TRUE(echo_called);
ptr_task_runner_->Run();
@@ -259,11 +300,8 @@ TEST_F(BindTaskRunnerTest, MethodCall) {
TEST_F(BindTaskRunnerTest, BindingConnectionError) {
bool connection_error_called = false;
- impl_->binding()->set_connection_error_handler([&, this]() {
- connection_error_called = true;
- binding_task_runner_->Quit();
- });
-
+ impl_->binding()->set_connection_error_handler(
+ SetFlagAndQuitTaskRunner(&connection_error_called, binding_task_runner_));
ptr_.reset();
binding_task_runner_->Run();
EXPECT_TRUE(connection_error_called);
@@ -271,30 +309,30 @@ TEST_F(BindTaskRunnerTest, BindingConnectionError) {
TEST_F(BindTaskRunnerTest, PtrConnectionError) {
bool connection_error_called = false;
- ptr_.set_connection_error_handler([&, this]() {
- connection_error_called = true;
- ptr_task_runner_->Quit();
- });
-
+ ptr_.set_connection_error_handler(
+ SetFlagAndQuitTaskRunner(&connection_error_called, ptr_task_runner_));
impl_->binding()->Close();
ptr_task_runner_->Run();
EXPECT_TRUE(connection_error_called);
}
+void ExpectValueSetFlagAndForward(int32_t expected_value,
+ bool* flag,
+ int32_t value,
+ const IntegerSender::EchoCallback& callback) {
+ EXPECT_EQ(expected_value, value);
+ *flag = true;
+ callback.Run(value);
+}
+
TEST_F(AssociatedBindTaskRunnerTest, MethodCall) {
bool echo_called = false;
connection_impl_->sender_impl()->set_echo_handler(
- [&](int32_t value, const IntegerSender::EchoCallback& callback) {
- EXPECT_EQ(1024, value);
- echo_called = true;
- callback.Run(value);
- });
+ base::Bind(&ExpectValueSetFlagAndForward, 1024, &echo_called));
bool echo_replied = false;
- sender_ptr_->Echo(1024, [&](int32_t value) {
- EXPECT_EQ(1024, value);
- echo_replied = true;
- });
+ sender_ptr_->Echo(
+ 1024, ExpectValueSetFlagAndQuitTaskRunner(1024, &echo_replied, nullptr));
// The Echo request first arrives at the master endpoint's task runner, and
// then is forwarded to the associated endpoint's task runner.
@@ -312,22 +350,15 @@ TEST_F(AssociatedBindTaskRunnerTest, MethodCall) {
TEST_F(AssociatedBindTaskRunnerTest, BindingConnectionError) {
bool sender_impl_error = false;
connection_impl_->sender_impl()->binding()->set_connection_error_handler(
- [&, this]() {
- sender_impl_error = true;
- sender_binding_task_runner_->Quit();
- });
-
+ SetFlagAndQuitTaskRunner(&sender_impl_error,
+ sender_binding_task_runner_));
bool connection_impl_error = false;
- connection_impl_->binding()->set_connection_error_handler([&, this]() {
- connection_impl_error = true;
- connection_binding_task_runner_->Quit();
- });
-
+ connection_impl_->binding()->set_connection_error_handler(
+ SetFlagAndQuitTaskRunner(&connection_impl_error,
+ connection_binding_task_runner_));
bool sender_ptr_error = false;
- sender_ptr_.set_connection_error_handler([&, this]() {
- sender_ptr_error = true;
- sender_ptr_task_runner_->Quit();
- });
+ sender_ptr_.set_connection_error_handler(
+ SetFlagAndQuitTaskRunner(&sender_ptr_error, sender_ptr_task_runner_));
connection_ptr_.reset();
sender_ptr_task_runner_->Run();
EXPECT_TRUE(sender_ptr_error);
@@ -340,22 +371,15 @@ TEST_F(AssociatedBindTaskRunnerTest, BindingConnectionError) {
TEST_F(AssociatedBindTaskRunnerTest, PtrConnectionError) {
bool sender_impl_error = false;
connection_impl_->sender_impl()->binding()->set_connection_error_handler(
- [&, this]() {
- sender_impl_error = true;
- sender_binding_task_runner_->Quit();
- });
-
+ SetFlagAndQuitTaskRunner(&sender_impl_error,
+ sender_binding_task_runner_));
bool connection_ptr_error = false;
- connection_ptr_.set_connection_error_handler([&, this]() {
- connection_ptr_error = true;
- connection_ptr_task_runner_->Quit();
- });
-
+ connection_ptr_.set_connection_error_handler(
+ SetFlagAndQuitTaskRunner(&connection_ptr_error,
+ connection_ptr_task_runner_));
bool sender_ptr_error = false;
- sender_ptr_.set_connection_error_handler([&, this]() {
- sender_ptr_error = true;
- sender_ptr_task_runner_->Quit();
- });
+ sender_ptr_.set_connection_error_handler(
+ SetFlagAndQuitTaskRunner(&sender_ptr_error, sender_ptr_task_runner_));
connection_impl_->binding()->Close();
sender_binding_task_runner_->Run();
EXPECT_TRUE(sender_impl_error);

Powered by Google App Engine
This is Rietveld 408576698