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

Unified Diff: remoting/jingle_glue/iq_sender_unittest.cc

Issue 9452038: Implement timeouts for IQ requests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: remoting/jingle_glue/iq_sender_unittest.cc
diff --git a/remoting/jingle_glue/iq_sender_unittest.cc b/remoting/jingle_glue/iq_sender_unittest.cc
index e14cf2a576d12d0c1325eb968248a4eb9c6a9058..8a86da7a3b9f5dc1f653f2fb6a3f7aa6048bafa2 100644
--- a/remoting/jingle_glue/iq_sender_unittest.cc
+++ b/remoting/jingle_glue/iq_sender_unittest.cc
@@ -4,6 +4,7 @@
#include "base/bind.h"
#include "base/memory/ref_counted.h"
+#include "base/message_loop.h"
#include "base/stringprintf.h"
#include "remoting/jingle_glue/iq_sender.h"
#include "remoting/jingle_glue/mock_objects.h"
@@ -14,6 +15,7 @@
using ::testing::_;
using ::testing::DeleteArg;
+using ::testing::InvokeWithoutArgs;
using ::testing::NotNull;
using ::testing::Return;
using ::testing::SaveArg;
@@ -34,7 +36,7 @@ const char kTo[] = "user@domain.com";
class MockCallback {
public:
- MOCK_METHOD1(OnReply, void(const XmlElement* reply));
+ MOCK_METHOD2(OnReply, void(IqRequest* request, const XmlElement* reply));
};
} // namespace
@@ -49,6 +51,7 @@ class IqSenderTest : public testing::Test {
}
protected:
+ MessageLoop message_loop_;
MockSignalStrategy signal_strategy_;
scoped_ptr<IqSender> sender_;
MockCallback callback_;
@@ -85,8 +88,27 @@ TEST_F(IqSenderTest, SendIq) {
QName("test:namespace", "response-body"));
response->AddElement(result);
- EXPECT_CALL(callback_, OnReply(response.get()));
+ EXPECT_CALL(callback_, OnReply(request.get(), response.get()));
EXPECT_TRUE(sender_->OnSignalStrategyIncomingStanza(response.get()));
}
+TEST_F(IqSenderTest, Timeout) {
+ scoped_ptr<XmlElement> iq_body(
+ new XmlElement(QName(kNamespace, kBodyTag)));
+ XmlElement* sent_stanza;
+ EXPECT_CALL(signal_strategy_, GetNextId())
+ .WillOnce(Return(kStanzaId));
+ EXPECT_CALL(signal_strategy_, SendStanzaPtr(_))
+ .WillOnce(DoAll(SaveArg<0>(&sent_stanza), Return(true)));
+ scoped_ptr<IqRequest> request(
+ sender_->SendIq(kType, kTo, iq_body.Pass(), base::Bind(
+ &MockCallback::OnReply, base::Unretained(&callback_))));
+ request->SetTimeout(base::TimeDelta::FromMilliseconds(2));
+ delete sent_stanza;
+
+ EXPECT_CALL(callback_, OnReply(request.get(), NULL))
+ .WillOnce(InvokeWithoutArgs(&message_loop_, &MessageLoop::Quit));
+ message_loop_.Run();
+}
+
} // namespace remoting

Powered by Google App Engine
This is Rietveld 408576698