Index: dbus/end_to_end_async_unittest.cc |
diff --git a/dbus/end_to_end_async_unittest.cc b/dbus/end_to_end_async_unittest.cc |
index fb8030bf4cb86d0d4f5202cf562e24faaafdfa0b..15f410eadc0c0c5295877f4ea6df3ff221c42c8b 100644 |
--- a/dbus/end_to_end_async_unittest.cc |
+++ b/dbus/end_to_end_async_unittest.cc |
@@ -9,6 +9,7 @@ |
#include "base/bind.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/message_loop/message_loop.h" |
+#include "base/run_loop.h" |
#include "base/stl_util.h" |
#include "base/test/test_timeouts.h" |
#include "base/threading/thread.h" |
@@ -77,7 +78,8 @@ class EndToEndAsyncTest : public testing::Test { |
base::Bind(&EndToEndAsyncTest::OnConnected, |
base::Unretained(this))); |
// Wait until the object proxy is connected to the signal. |
- message_loop_.Run(); |
+ run_loop_.reset(new base::RunLoop()); |
+ run_loop_->Run(); |
// Connect to the "Test2" signal of "org.chromium.TestInterface" from |
// the remote object. There was a bug where we were emitting error |
@@ -92,7 +94,8 @@ class EndToEndAsyncTest : public testing::Test { |
base::Bind(&EndToEndAsyncTest::OnConnected, |
base::Unretained(this))); |
// Wait until the object proxy is connected to the signal. |
- message_loop_.Run(); |
+ run_loop_.reset(new base::RunLoop()); |
+ run_loop_->Run(); |
// Create a second object proxy for the root object. |
root_object_proxy_ = bus_->GetObjectProxy("org.chromium.TestService", |
@@ -109,7 +112,8 @@ class EndToEndAsyncTest : public testing::Test { |
base::Bind(&EndToEndAsyncTest::OnConnected, |
base::Unretained(this))); |
// Wait until the root object proxy is connected to the signal. |
- message_loop_.Run(); |
+ run_loop_.reset(new base::RunLoop()); |
+ run_loop_->Run(); |
} |
virtual void TearDown() { |
@@ -172,7 +176,8 @@ class EndToEndAsyncTest : public testing::Test { |
// Wait for the give number of responses. |
void WaitForResponses(size_t num_responses) { |
while (response_strings_.size() < num_responses) { |
- message_loop_.Run(); |
+ run_loop_.reset(new base::RunLoop); |
+ run_loop_->Run(); |
} |
} |
@@ -188,13 +193,14 @@ class EndToEndAsyncTest : public testing::Test { |
} else { |
response_strings_.push_back(std::string()); |
} |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
}; |
// Wait for the given number of errors. |
void WaitForErrors(size_t num_errors) { |
while (error_names_.size() < num_errors) { |
- message_loop_.Run(); |
+ run_loop_.reset(new base::RunLoop); |
+ run_loop_->Run(); |
} |
} |
@@ -208,7 +214,7 @@ class EndToEndAsyncTest : public testing::Test { |
} else { |
error_names_.push_back(std::string()); |
} |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
} |
// Called when the "Test" signal is received, in the main thread. |
@@ -216,7 +222,7 @@ class EndToEndAsyncTest : public testing::Test { |
void OnTestSignal(Signal* signal) { |
MessageReader reader(signal); |
ASSERT_TRUE(reader.PopString(&test_signal_string_)); |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
} |
// Called when the "Test" signal is received, in the main thread, by |
@@ -225,13 +231,13 @@ class EndToEndAsyncTest : public testing::Test { |
void OnRootTestSignal(Signal* signal) { |
MessageReader reader(signal); |
ASSERT_TRUE(reader.PopString(&root_test_signal_string_)); |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
} |
// Called when the "Test2" signal is received, in the main thread. |
void OnTest2Signal(Signal* signal) { |
MessageReader reader(signal); |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
} |
// Called when connected to the signal. |
@@ -239,22 +245,24 @@ class EndToEndAsyncTest : public testing::Test { |
const std::string& signal_name, |
bool success) { |
ASSERT_TRUE(success); |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
} |
// Called when the connection with dbus-daemon is disconnected. |
void OnDisconnected() { |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
++on_disconnected_call_count_; |
} |
// Wait for the hey signal to be received. |
void WaitForTestSignal() { |
// OnTestSignal() will quit the message loop. |
- message_loop_.Run(); |
+ run_loop_.reset(new base::RunLoop); |
+ run_loop_->Run(); |
} |
base::MessageLoop message_loop_; |
+ scoped_ptr<base::RunLoop> run_loop_; |
std::vector<std::string> response_strings_; |
std::vector<std::string> error_names_; |
scoped_ptr<base::Thread> dbus_thread_; |
@@ -537,10 +545,11 @@ TEST_F(EndToEndAsyncTest, EmptyResponseCallback) { |
timeout_ms, |
ObjectProxy::EmptyResponseCallback()); |
// Post a delayed task to quit the message loop. |
+ run_loop_.reset(new base::RunLoop); |
message_loop_.PostDelayedTask(FROM_HERE, |
- base::MessageLoop::QuitClosure(), |
+ run_loop_->QuitClosure(), |
TestTimeouts::tiny_timeout()); |
- message_loop_.Run(); |
+ run_loop_->Run(); |
// We cannot tell if the empty callback is called, but at least we can |
// check if the test does not crash. |
} |
@@ -584,7 +593,8 @@ TEST_F(EndToEndAsyncTest, DisconnectedSignal) { |
base::Bind(&Bus::ClosePrivateConnection, |
base::Unretained(bus_.get()))); |
// OnDisconnected callback quits message loop. |
- message_loop_.Run(); |
+ run_loop_.reset(new base::RunLoop); |
+ run_loop_->Run(); |
EXPECT_EQ(1, on_disconnected_call_count_); |
} |
@@ -608,7 +618,8 @@ class SignalMultipleHandlerTest : public EndToEndAsyncTest { |
base::Bind(&SignalMultipleHandlerTest::OnAdditionalConnected, |
base::Unretained(this))); |
// Wait until the object proxy is connected to the signal. |
- message_loop_.Run(); |
+ run_loop_.reset(new base::RunLoop); |
+ run_loop_->Run(); |
} |
protected: |
@@ -617,7 +628,7 @@ class SignalMultipleHandlerTest : public EndToEndAsyncTest { |
void OnAdditionalTestSignal(Signal* signal) { |
MessageReader reader(signal); |
ASSERT_TRUE(reader.PopString(&additional_test_signal_string_)); |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
} |
// Called when connected to the signal. |
@@ -625,7 +636,7 @@ class SignalMultipleHandlerTest : public EndToEndAsyncTest { |
const std::string& signal_name, |
bool success) { |
ASSERT_TRUE(success); |
- message_loop_.Quit(); |
+ run_loop_->Quit(); |
} |
// Text message from "Test" signal delivered to additional handler. |