Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: remoting/host/heartbeat_sender_unittest.cc

Issue 6911024: Add HostObserverInterface and decouple HeartbeatSender and ChromotingHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/host/heartbeat_sender.cc ('k') | remoting/host/host_status_observer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/ref_counted.h" 5 #include "base/memory/ref_counted.h"
6 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "base/message_loop_proxy.h" 7 #include "base/message_loop_proxy.h"
8 #include "base/string_number_conversions.h" 8 #include "base/string_number_conversions.h"
9 #include "remoting/base/constants.h" 9 #include "remoting/base/constants.h"
10 #include "remoting/host/heartbeat_sender.h" 10 #include "remoting/host/heartbeat_sender.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 private: 68 private:
69 scoped_ptr<IqRequest::ReplyCallback> callback_; 69 scoped_ptr<IqRequest::ReplyCallback> callback_;
70 }; 70 };
71 71
72 class HeartbeatSenderTest : public testing::Test { 72 class HeartbeatSenderTest : public testing::Test {
73 protected: 73 protected:
74 virtual void SetUp() { 74 virtual void SetUp() {
75 config_ = new InMemoryHostConfig(); 75 config_ = new InMemoryHostConfig();
76 config_->SetString(kHostIdConfigPath, kHostId); 76 config_->SetString(kHostIdConfigPath, kHostId);
77 config_->SetString(kPrivateKeyConfigPath, kTestHostKeyPair); 77 config_->SetString(kPrivateKeyConfigPath, kTestHostKeyPair);
78
79 jingle_thread_.message_loop_ = &message_loop_;
80
81 signal_strategy_.reset(new MockSignalStrategy());
82 jingle_client_ =
83 new JingleClient(&jingle_thread_, signal_strategy_.get(), NULL, NULL);
84 jingle_client_->full_jid_ = kTestJid;
85 } 78 }
86 79
87 JingleThread jingle_thread_; 80 MockSignalStrategy signal_strategy_;
88 scoped_ptr<MockSignalStrategy> signal_strategy_;
89 scoped_refptr<JingleClient> jingle_client_;
90 MessageLoop message_loop_; 81 MessageLoop message_loop_;
91 scoped_refptr<InMemoryHostConfig> config_; 82 scoped_refptr<InMemoryHostConfig> config_;
92 }; 83 };
93 84
94 // Call Start() followed by Stop(), and makes sure an Iq stanza is 85 // Call Start() followed by Stop(), and makes sure an Iq stanza is
95 // being send. 86 // being send.
96 TEST_F(HeartbeatSenderTest, DoSendStanza) { 87 TEST_F(HeartbeatSenderTest, DoSendStanza) {
97 // |iq_request| is freed by HeartbeatSender. 88 // |iq_request| is freed by HeartbeatSender.
98 MockIqRequest* iq_request = new MockIqRequest(); 89 MockIqRequest* iq_request = new MockIqRequest();
99 iq_request->Init(); 90 iq_request->Init();
100 91
101 EXPECT_CALL(*iq_request, set_callback(_)).Times(1); 92 EXPECT_CALL(*iq_request, set_callback(_)).Times(1);
102 93
103 scoped_refptr<HeartbeatSender> heartbeat_sender( 94 scoped_refptr<HeartbeatSender> heartbeat_sender(
104 new HeartbeatSender(&message_loop_, jingle_client_.get(), config_)); 95 new HeartbeatSender(&message_loop_, config_));
105 ASSERT_TRUE(heartbeat_sender->Init()); 96 ASSERT_TRUE(heartbeat_sender->Init());
106 97
107 EXPECT_CALL(*signal_strategy_, CreateIqRequest()) 98 EXPECT_CALL(signal_strategy_, CreateIqRequest())
108 .WillOnce(Return(iq_request)); 99 .WillOnce(Return(iq_request));
109 100
110 EXPECT_CALL(*iq_request, SendIq(buzz::STR_SET, kChromotingBotJid, NotNull())) 101 EXPECT_CALL(*iq_request, SendIq(buzz::STR_SET, kChromotingBotJid, NotNull()))
111 .WillOnce(DoAll(DeleteArg<2>(), Return())); 102 .WillOnce(DoAll(DeleteArg<2>(), Return()));
112 103
113 heartbeat_sender->Start(); 104 heartbeat_sender->OnSignallingConnected(&signal_strategy_, kTestJid);
114 message_loop_.RunAllPending(); 105 message_loop_.RunAllPending();
115 106
116 heartbeat_sender->Stop(); 107 heartbeat_sender->OnSignallingDisconnected();
117 message_loop_.RunAllPending(); 108 message_loop_.RunAllPending();
118 } 109 }
119 110
120 // Validate format of the heartbeat stanza. 111 // Validate format of the heartbeat stanza.
121 TEST_F(HeartbeatSenderTest, CreateHeartbeatMessage) { 112 TEST_F(HeartbeatSenderTest, CreateHeartbeatMessage) {
122 scoped_refptr<HeartbeatSender> heartbeat_sender( 113 scoped_refptr<HeartbeatSender> heartbeat_sender(
123 new HeartbeatSender(&message_loop_, jingle_client_.get(), config_)); 114 new HeartbeatSender(&message_loop_, config_));
124 ASSERT_TRUE(heartbeat_sender->Init()); 115 ASSERT_TRUE(heartbeat_sender->Init());
125 116
126 int64 start_time = static_cast<int64>(base::Time::Now().ToDoubleT()); 117 int64 start_time = static_cast<int64>(base::Time::Now().ToDoubleT());
127 118
128 scoped_ptr<XmlElement> stanza( 119 heartbeat_sender->full_jid_ = kTestJid;
129 heartbeat_sender->CreateHeartbeatMessage()); 120 scoped_ptr<XmlElement> stanza(heartbeat_sender->CreateHeartbeatMessage());
130 ASSERT_TRUE(stanza.get() != NULL); 121 ASSERT_TRUE(stanza.get() != NULL);
131 122
132 EXPECT_TRUE(QName(kChromotingXmlNamespace, "heartbeat") == 123 EXPECT_TRUE(QName(kChromotingXmlNamespace, "heartbeat") ==
133 stanza->Name()); 124 stanza->Name());
134 EXPECT_EQ(std::string(kHostId), 125 EXPECT_EQ(std::string(kHostId),
135 stanza->Attr(QName(kChromotingXmlNamespace, "hostid"))); 126 stanza->Attr(QName(kChromotingXmlNamespace, "hostid")));
136 127
137 QName signature_tag(kChromotingXmlNamespace, "signature"); 128 QName signature_tag(kChromotingXmlNamespace, "signature");
138 XmlElement* signature = stanza->FirstNamed(signature_tag); 129 XmlElement* signature = stanza->FirstNamed(signature_tag);
139 ASSERT_TRUE(signature != NULL); 130 ASSERT_TRUE(signature != NULL);
(...skipping 24 matching lines...) Expand all
164 response->AddElement(result); 155 response->AddElement(result);
165 156
166 XmlElement* set_interval = new XmlElement( 157 XmlElement* set_interval = new XmlElement(
167 QName(kChromotingXmlNamespace, "set-interval")); 158 QName(kChromotingXmlNamespace, "set-interval"));
168 result->AddElement(set_interval); 159 result->AddElement(set_interval);
169 160
170 const int kTestInterval = 123; 161 const int kTestInterval = 123;
171 set_interval->AddText(base::IntToString(kTestInterval)); 162 set_interval->AddText(base::IntToString(kTestInterval));
172 163
173 scoped_refptr<HeartbeatSender> heartbeat_sender( 164 scoped_refptr<HeartbeatSender> heartbeat_sender(
174 new HeartbeatSender(&message_loop_, jingle_client_.get(), config_)); 165 new HeartbeatSender(&message_loop_, config_));
175 heartbeat_sender->ProcessResponse(response.get()); 166 heartbeat_sender->ProcessResponse(response.get());
176 167
177 EXPECT_EQ(kTestInterval * 1000, heartbeat_sender->interval_ms_); 168 EXPECT_EQ(kTestInterval * 1000, heartbeat_sender->interval_ms_);
178 } 169 }
179 170
180 } // namespace remoting 171 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/heartbeat_sender.cc ('k') | remoting/host/host_status_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698