Index: remoting/host/register_support_host_request_unittest.cc |
diff --git a/remoting/host/register_support_host_request_unittest.cc b/remoting/host/register_support_host_request_unittest.cc |
index dc3258d492f2bc699204d20a380c39a74a47e331..a681d47dbe2fd3c15ad8fb78d5201c7087a5484c 100644 |
--- a/remoting/host/register_support_host_request_unittest.cc |
+++ b/remoting/host/register_support_host_request_unittest.cc |
@@ -4,6 +4,8 @@ |
#include "remoting/host/register_support_host_request.h" |
+#include <list> |
+ |
#include "base/bind.h" |
#include "base/memory/ref_counted.h" |
#include "base/message_loop.h" |
@@ -59,19 +61,23 @@ class RegisterSupportHostRequestTest : public testing::Test { |
MockCallback callback_; |
}; |
+ACTION_P(SaveListener, list) { |
+ list->push_back(arg0); |
+} |
+ |
TEST_F(RegisterSupportHostRequestTest, Send) { |
// |iq_request| is freed by RegisterSupportHostRequest. |
int64 start_time = static_cast<int64>(base::Time::Now().ToDoubleT()); |
- SignalStrategy::Listener* listener; |
+ std::list<SignalStrategy::Listener*> listeners; |
EXPECT_CALL(signal_strategy_, AddListener(NotNull())) |
- .WillOnce(SaveArg<0>(&listener)); |
+ .WillRepeatedly(SaveListener(&listeners)); |
scoped_ptr<RegisterSupportHostRequest> request( |
new RegisterSupportHostRequest()); |
ASSERT_TRUE(request->Init( |
- config_, base::Bind(&MockCallback::OnResponse, |
- base::Unretained(&callback_)))); |
+ &signal_strategy_, config_, base::Bind(&MockCallback::OnResponse, |
+ base::Unretained(&callback_)))); |
XmlElement* sent_iq = NULL; |
EXPECT_CALL(signal_strategy_, GetNextId()) |
@@ -81,7 +87,7 @@ TEST_F(RegisterSupportHostRequestTest, Send) { |
EXPECT_CALL(signal_strategy_, SendStanza(NotNull())) |
.WillOnce(DoAll(SaveArg<0>(&sent_iq), Return(true))); |
- request->OnSignallingConnected(&signal_strategy_); |
+ request->OnSignalStrategyStateChange(SignalStrategy::CONNECTED); |
message_loop_.RunAllPending(); |
// Verify format of the query. |
@@ -136,10 +142,16 @@ TEST_F(RegisterSupportHostRequestTest, Send) { |
support_id_lifetime->AddText(kSupportIdLifetime); |
result->AddElement(support_id_lifetime); |
- EXPECT_TRUE(listener->OnSignalStrategyIncomingStanza(response.get())); |
+ std::list<SignalStrategy::Listener*>::iterator it; |
+ bool consumed = false; |
+ for (it = listeners.begin(); it != listeners.end(); it++) { |
+ consumed = consumed | (*it)->OnSignalStrategyIncomingStanza(response.get()); |
+ } |
+ EXPECT_TRUE(consumed); |
message_loop_.RunAllPending(); |
- EXPECT_CALL(signal_strategy_, RemoveListener(listener)); |
+ EXPECT_CALL(signal_strategy_, RemoveListener(_)) |
+ .Times(listeners.size()); |
Wez
2012/01/03 16:25:04
Ick. Confusing; at what point is |listeners.size(
Sergey Ulanov
2012/01/03 21:51:02
Done.
|
} |
} // namespace remoting |