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

Unified Diff: mojo/public/cpp/bindings/tests/handle_passing_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/handle_passing_unittest.cc
diff --git a/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc b/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc
index f2dccfb3aa31913d19129f2320bdd0360c2d5c5c..29894bbbc865a98a3acb40435e5ffb31f3ff44e9 100644
--- a/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc
+++ b/mojo/public/cpp/bindings/tests/handle_passing_unittest.cc
@@ -20,19 +20,18 @@ namespace {
const char kText1[] = "hello";
const char kText2[] = "world";
-class StringRecorder {
- public:
- StringRecorder(std::string* buf, const base::Closure& closure)
- : buf_(buf), closure_(closure) {}
- void Run(const String& a) const {
- *buf_ = a.To<std::string>();
- closure_.Run();
- }
+void RecordString(std::string* storage,
+ const base::Closure& closure,
+ String str) {
+ *storage = str.To<std::string>();
yzshen1 2016/06/18 00:01:18 nit: str.PassStorage()
Ken Rockot(use gerrit already) 2016/06/18 03:24:26 Done
+ closure.Run();
+}
- private:
- std::string* buf_;
- base::Closure closure_;
-};
+base::Callback<void(mojo::String)> MakeStringRecorder(
+ std::string* storage,
+ const base::Closure& closure) {
+ return base::Bind(&RecordString, storage, closure);
+}
class ImportedInterfaceImpl : public imported::ImportedInterface {
public:
@@ -166,40 +165,40 @@ class HandlePassingTest : public testing::Test {
base::MessageLoop loop_;
};
-struct DoStuffCallback {
- DoStuffCallback(bool* got_response,
- std::string* got_text_reply,
- const base::Closure& closure)
- : got_response(got_response),
- got_text_reply(got_text_reply),
- closure(closure) {}
-
- void Run(sample::ResponsePtr response, const String& text_reply) const {
- *got_text_reply = text_reply;
-
- if (response->pipe.is_valid()) {
- std::string text2;
- EXPECT_TRUE(ReadTextMessage(response->pipe.get(), &text2));
+void DoStuff(bool* got_response,
+ std::string* got_text_reply,
+ const base::Closure& closure,
+ sample::ResponsePtr response,
+ String text_reply) {
+ *got_text_reply = text_reply;
- // Ensure that simply accessing response.pipe does not close it.
- EXPECT_TRUE(response->pipe.is_valid());
+ if (response->pipe.is_valid()) {
+ std::string text2;
+ EXPECT_TRUE(ReadTextMessage(response->pipe.get(), &text2));
- EXPECT_EQ(std::string(kText2), text2);
+ // Ensure that simply accessing response.pipe does not close it.
+ EXPECT_TRUE(response->pipe.is_valid());
- // Do some more tests of handle passing:
- ScopedMessagePipeHandle p = std::move(response->pipe);
- EXPECT_TRUE(p.is_valid());
- EXPECT_FALSE(response->pipe.is_valid());
- }
+ EXPECT_EQ(std::string(kText2), text2);
- *got_response = true;
- closure.Run();
+ // Do some more tests of handle passing:
+ ScopedMessagePipeHandle p = std::move(response->pipe);
+ EXPECT_TRUE(p.is_valid());
+ EXPECT_FALSE(response->pipe.is_valid());
}
- bool* got_response;
- std::string* got_text_reply;
- base::Closure closure;
-};
+ *got_response = true;
+ closure.Run();
+}
+
+void DoStuff2(bool* got_response,
+ std::string* got_text_reply,
+ const base::Closure& closure,
+ String text_reply) {
+ *got_response = true;
+ *got_text_reply = text_reply;
+ closure.Run();
+}
TEST_F(HandlePassingTest, Basic) {
sample::FactoryPtr factory;
@@ -223,17 +222,18 @@ TEST_F(HandlePassingTest, Basic) {
bool got_response = false;
std::string got_text_reply;
base::RunLoop run_loop2;
- DoStuffCallback cb(&got_response, &got_text_reply, run_loop2.QuitClosure());
- factory->DoStuff(std::move(request), std::move(pipe0.handle0), cb);
+ factory->DoStuff(std::move(request), std::move(pipe0.handle0),
+ base::Bind(&DoStuff, &got_response, &got_text_reply,
+ run_loop2.QuitClosure()));
- EXPECT_FALSE(*cb.got_response);
+ EXPECT_FALSE(got_response);
int count_before = ImportedInterfaceImpl::do_something_count();
run_loop.Run();
run_loop2.Run();
- EXPECT_TRUE(*cb.got_response);
- EXPECT_EQ(kText1, *cb.got_text_reply);
+ EXPECT_TRUE(got_response);
+ EXPECT_EQ(kText1, got_text_reply);
EXPECT_EQ(1, ImportedInterfaceImpl::do_something_count() - count_before);
}
@@ -246,35 +246,17 @@ TEST_F(HandlePassingTest, PassInvalid) {
bool got_response = false;
std::string got_text_reply;
base::RunLoop run_loop;
- DoStuffCallback cb(&got_response, &got_text_reply, run_loop.QuitClosure());
- factory->DoStuff(std::move(request), ScopedMessagePipeHandle(), cb);
+ factory->DoStuff(std::move(request), ScopedMessagePipeHandle(),
+ base::Bind(&DoStuff, &got_response, &got_text_reply,
+ run_loop.QuitClosure()));
- EXPECT_FALSE(*cb.got_response);
+ EXPECT_FALSE(got_response);
run_loop.Run();
- EXPECT_TRUE(*cb.got_response);
+ EXPECT_TRUE(got_response);
}
-struct DoStuff2Callback {
- DoStuff2Callback(bool* got_response,
- std::string* got_text_reply,
- const base::Closure& closure)
- : got_response(got_response),
- got_text_reply(got_text_reply),
- closure(closure) {}
-
- void Run(const String& text_reply) const {
- *got_response = true;
- *got_text_reply = text_reply;
- closure.Run();
- }
-
- bool* got_response;
- std::string* got_text_reply;
- base::Closure closure;
-};
-
// Verifies DataPipeConsumer can be passed and read from.
TEST_F(HandlePassingTest, DataPipe) {
sample::FactoryPtr factory;
@@ -302,15 +284,16 @@ TEST_F(HandlePassingTest, DataPipe) {
bool got_response = false;
std::string got_text_reply;
base::RunLoop run_loop;
- DoStuff2Callback cb(&got_response, &got_text_reply, run_loop.QuitClosure());
- factory->DoStuff2(std::move(consumer_handle), cb);
+ factory->DoStuff2(std::move(consumer_handle),
+ base::Bind(&DoStuff2, &got_response, &got_text_reply,
+ run_loop.QuitClosure()));
- EXPECT_FALSE(*cb.got_response);
+ EXPECT_FALSE(got_response);
run_loop.Run();
- EXPECT_TRUE(*cb.got_response);
- EXPECT_EQ(expected_text_reply, *cb.got_text_reply);
+ EXPECT_TRUE(got_response);
+ EXPECT_EQ(expected_text_reply, got_text_reply);
}
TEST_F(HandlePassingTest, PipesAreClosed) {
@@ -371,10 +354,10 @@ TEST_F(HandlePassingTest, CreateNamedObject) {
base::RunLoop run_loop, run_loop2;
std::string name1;
- object1->GetName(StringRecorder(&name1, run_loop.QuitClosure()));
+ object1->GetName(MakeStringRecorder(&name1, run_loop.QuitClosure()));
std::string name2;
- object2->GetName(StringRecorder(&name2, run_loop2.QuitClosure()));
+ object2->GetName(MakeStringRecorder(&name2, run_loop2.QuitClosure()));
run_loop.Run();
run_loop2.Run();

Powered by Google App Engine
This is Rietveld 408576698