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 |