| Index: remoting/host/heartbeat_sender_unittest.cc
|
| diff --git a/remoting/host/heartbeat_sender_unittest.cc b/remoting/host/heartbeat_sender_unittest.cc
|
| index b1de98b47a2bf6750e57ce1ea9f342feae79ddb5..27514c52bf2ee37433cb77b7d948f07cf0fc597b 100644
|
| --- a/remoting/host/heartbeat_sender_unittest.cc
|
| +++ b/remoting/host/heartbeat_sender_unittest.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "remoting/host/heartbeat_sender.h"
|
|
|
| +#include <set>
|
| +
|
| #include "base/memory/ref_counted.h"
|
| #include "base/message_loop.h"
|
| #include "base/message_loop_proxy.h"
|
| @@ -39,30 +41,49 @@ const int64 kTestTime = 123123123;
|
| const char kStanzaId[] = "123";
|
| } // namespace
|
|
|
| +ACTION_P(AddListener, list) {
|
| + list->insert(arg0);
|
| +}
|
| +ACTION_P(RemoveListener, list) {
|
| + EXPECT_TRUE(list->find(arg0) != list->end());
|
| + list->erase(arg0);
|
| +}
|
| +
|
| class HeartbeatSenderTest : public testing::Test {
|
| protected:
|
| - virtual void SetUp() {
|
| + virtual void SetUp() OVERRIDE {
|
| config_ = new InMemoryHostConfig();
|
| config_->SetString(kHostIdConfigPath, kHostId);
|
| config_->SetString(kPrivateKeyConfigPath, kTestHostKeyPair);
|
| +
|
| + EXPECT_CALL(signal_strategy_, GetState())
|
| + .WillOnce(Return(SignalStrategy::DISCONNECTED));
|
| + 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));
|
| +
|
| + heartbeat_sender_.reset(new HeartbeatSender());
|
| + ASSERT_TRUE(heartbeat_sender_->Init(&signal_strategy_, config_));
|
| + }
|
| +
|
| + virtual void TearDown() OVERRIDE {
|
| + heartbeat_sender_.reset();
|
| + EXPECT_TRUE(signal_strategy_listeners_.empty());
|
| }
|
|
|
| - MockSignalStrategy signal_strategy_;
|
| MessageLoop message_loop_;
|
| + MockSignalStrategy signal_strategy_;
|
| + std::set<SignalStrategy::Listener*> signal_strategy_listeners_;
|
| scoped_refptr<InMemoryHostConfig> config_;
|
| + scoped_ptr<HeartbeatSender> heartbeat_sender_;
|
| };
|
|
|
| // Call Start() followed by Stop(), and makes sure an Iq stanza is
|
| // being sent.
|
| TEST_F(HeartbeatSenderTest, DoSendStanza) {
|
| - SignalStrategy::Listener* listener;
|
| - EXPECT_CALL(signal_strategy_, AddListener(NotNull()))
|
| - .WillOnce(SaveArg<0>(&listener));
|
| -
|
| - scoped_ptr<HeartbeatSender> heartbeat_sender(
|
| - new HeartbeatSender(base::MessageLoopProxy::current(), config_));
|
| - ASSERT_TRUE(heartbeat_sender->Init());
|
| -
|
| XmlElement* sent_iq = NULL;
|
| EXPECT_CALL(signal_strategy_, GetLocalJid())
|
| .WillRepeatedly(Return(kTestJid));
|
| @@ -71,7 +92,7 @@ TEST_F(HeartbeatSenderTest, DoSendStanza) {
|
| EXPECT_CALL(signal_strategy_, SendStanza(NotNull()))
|
| .WillOnce(DoAll(SaveArg<0>(&sent_iq), Return(true)));
|
|
|
| - heartbeat_sender->OnSignallingConnected(&signal_strategy_);
|
| + heartbeat_sender_->OnSignalStrategyStateChange(SignalStrategy::CONNECTED);
|
| message_loop_.RunAllPending();
|
|
|
| scoped_ptr<XmlElement> stanza(sent_iq);
|
| @@ -81,23 +102,15 @@ TEST_F(HeartbeatSenderTest, DoSendStanza) {
|
| std::string(kChromotingBotJid));
|
| EXPECT_EQ(stanza->Attr(buzz::QName("", "type")), "set");
|
|
|
| - EXPECT_CALL(signal_strategy_, RemoveListener(listener));
|
| -
|
| - heartbeat_sender->OnSignallingDisconnected();
|
| + heartbeat_sender_->OnSignalStrategyStateChange(SignalStrategy::DISCONNECTED);
|
| message_loop_.RunAllPending();
|
| }
|
|
|
| // Validate format of the heartbeat stanza.
|
| TEST_F(HeartbeatSenderTest, CreateHeartbeatMessage) {
|
| - scoped_ptr<HeartbeatSender> heartbeat_sender(
|
| - new HeartbeatSender(base::MessageLoopProxy::current(),
|
| - config_));
|
| - ASSERT_TRUE(heartbeat_sender->Init());
|
| -
|
| int64 start_time = static_cast<int64>(base::Time::Now().ToDoubleT());
|
|
|
| - heartbeat_sender->full_jid_ = kTestJid;
|
| - scoped_ptr<XmlElement> stanza(heartbeat_sender->CreateHeartbeatMessage());
|
| + scoped_ptr<XmlElement> stanza(heartbeat_sender_->CreateHeartbeatMessage());
|
| ASSERT_TRUE(stanza.get() != NULL);
|
|
|
| EXPECT_TRUE(QName(kChromotingXmlNamespace, "heartbeat") ==
|
| @@ -141,12 +154,9 @@ TEST_F(HeartbeatSenderTest, ProcessResponse) {
|
| const int kTestInterval = 123;
|
| set_interval->AddText(base::IntToString(kTestInterval));
|
|
|
| - scoped_ptr<HeartbeatSender> heartbeat_sender(
|
| - new HeartbeatSender(base::MessageLoopProxy::current(),
|
| - config_));
|
| - heartbeat_sender->ProcessResponse(response.get());
|
| + heartbeat_sender_->ProcessResponse(response.get());
|
|
|
| - EXPECT_EQ(kTestInterval * 1000, heartbeat_sender->interval_ms_);
|
| + EXPECT_EQ(kTestInterval * 1000, heartbeat_sender_->interval_ms_);
|
| }
|
|
|
| } // namespace remoting
|
|
|