| 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..18a19712ad51613aa96eadb507078f74112e9a76 100644
|
| --- a/remoting/host/register_support_host_request_unittest.cc
|
| +++ b/remoting/host/register_support_host_request_unittest.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/bind.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/message_loop.h"
|
| +#include "base/observer_list.h"
|
| #include "base/string_number_conversions.h"
|
| #include "remoting/base/constants.h"
|
| #include "remoting/host/host_key_pair.h"
|
| @@ -37,6 +38,13 @@ const char kSupportId[] = "AB4RF3";
|
| const char kSupportIdLifetime[] = "300";
|
| const char kStanzaId[] = "123";
|
|
|
| +ACTION_P(AddListener, list) {
|
| + list->AddObserver(arg0);
|
| +}
|
| +ACTION_P(RemoveListener, list) {
|
| + list->RemoveObserver(arg0);
|
| +}
|
| +
|
| class MockCallback {
|
| public:
|
| MOCK_METHOD3(OnResponse, void(bool result, const std::string& support_id,
|
| @@ -51,37 +59,40 @@ class RegisterSupportHostRequestTest : public testing::Test {
|
| virtual void SetUp() {
|
| config_ = new InMemoryHostConfig();
|
| config_->SetString(kPrivateKeyConfigPath, kTestHostKeyPair);
|
| +
|
| + EXPECT_CALL(signal_strategy_, AddListener(NotNull()))
|
| + .WillRepeatedly(AddListener(&signal_strategy_listeners_));
|
| + EXPECT_CALL(signal_strategy_, RemoveListener(NotNull()))
|
| + .WillRepeatedly(RemoveListener(&signal_strategy_listeners_));
|
| + EXPECT_CALL(signal_strategy_, GetLocalJid())
|
| + .WillRepeatedly(Return(kTestJid));
|
| }
|
|
|
| - MockSignalStrategy signal_strategy_;
|
| MessageLoop message_loop_;
|
| + MockSignalStrategy signal_strategy_;
|
| + ObserverList<SignalStrategy::Listener, true> signal_strategy_listeners_;
|
| scoped_refptr<InMemoryHostConfig> config_;
|
| MockCallback callback_;
|
| };
|
|
|
| +
|
| TEST_F(RegisterSupportHostRequestTest, Send) {
|
| // |iq_request| is freed by RegisterSupportHostRequest.
|
| int64 start_time = static_cast<int64>(base::Time::Now().ToDoubleT());
|
|
|
| - SignalStrategy::Listener* listener;
|
| - EXPECT_CALL(signal_strategy_, AddListener(NotNull()))
|
| - .WillOnce(SaveArg<0>(&listener));
|
| -
|
| 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())
|
| .WillOnce(Return(kStanzaId));
|
| - EXPECT_CALL(signal_strategy_, GetLocalJid())
|
| - .WillRepeatedly(Return(kTestJid));
|
| 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 +147,17 @@ TEST_F(RegisterSupportHostRequestTest, Send) {
|
| support_id_lifetime->AddText(kSupportIdLifetime);
|
| result->AddElement(support_id_lifetime);
|
|
|
| - EXPECT_TRUE(listener->OnSignalStrategyIncomingStanza(response.get()));
|
| - message_loop_.RunAllPending();
|
| + int consumed = 0;
|
| + ObserverListBase<SignalStrategy::Listener>::Iterator it(
|
| + signal_strategy_listeners_);
|
| + SignalStrategy::Listener* listener;
|
| + while ((listener = it.GetNext()) != NULL) {
|
| + if (listener->OnSignalStrategyIncomingStanza(response.get()))
|
| + consumed++;
|
| + }
|
| + EXPECT_EQ(1, consumed);
|
|
|
| - EXPECT_CALL(signal_strategy_, RemoveListener(listener));
|
| + message_loop_.RunAllPending();
|
| }
|
|
|
| } // namespace remoting
|
|
|