summaryrefslogtreecommitdiffstats
path: root/remoting/jingle_glue/iq_sender_unittest.cc
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-25 03:51:56 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-25 03:51:56 +0000
commit740d451cf5222a5046d63029a88e58c7204c6ba2 (patch)
tree43b3a71eb8c9d23e48f31434cc3c2ef2e85ef877 /remoting/jingle_glue/iq_sender_unittest.cc
parent426199abc7929b84c80df803b828f3f9c47b4b6d (diff)
downloadchromium_src-740d451cf5222a5046d63029a88e58c7204c6ba2.zip
chromium_src-740d451cf5222a5046d63029a88e58c7204c6ba2.tar.gz
chromium_src-740d451cf5222a5046d63029a88e58c7204c6ba2.tar.bz2
Revert 123635 - Implement timeouts for IQ requests.
Now the IqRequest class supports setting timeouts for each request, and JingleSession uses it to disconnect if no response is receive within 10 secons from a request. BUG=107925 Review URL: http://codereview.chromium.org/9452038 TBR=sergeyu@chromium.org Review URL: https://chromiumcodereview.appspot.com/9447087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123638 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/jingle_glue/iq_sender_unittest.cc')
-rw-r--r--remoting/jingle_glue/iq_sender_unittest.cc105
1 files changed, 23 insertions, 82 deletions
diff --git a/remoting/jingle_glue/iq_sender_unittest.cc b/remoting/jingle_glue/iq_sender_unittest.cc
index 06730f5..e14cf2a 100644
--- a/remoting/jingle_glue/iq_sender_unittest.cc
+++ b/remoting/jingle_glue/iq_sender_unittest.cc
@@ -4,7 +4,6 @@
#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"
@@ -15,7 +14,6 @@
using ::testing::_;
using ::testing::DeleteArg;
-using ::testing::InvokeWithoutArgs;
using ::testing::NotNull;
using ::testing::Return;
using ::testing::SaveArg;
@@ -36,7 +34,7 @@ const char kTo[] = "user@domain.com";
class MockCallback {
public:
- MOCK_METHOD2(OnReply, void(IqRequest* request, const XmlElement* reply));
+ MOCK_METHOD1(OnReply, void(const XmlElement* reply));
};
} // namespace
@@ -51,100 +49,43 @@ class IqSenderTest : public testing::Test {
}
protected:
- void SendTestMessage() {
- 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)));
- request_ = sender_->SendIq(kType, kTo, iq_body.Pass(), base::Bind(
- &MockCallback::OnReply, base::Unretained(&callback_)));
-
- std::string expected_xml_string =
- base::StringPrintf(
- "<cli:iq type=\"%s\" to=\"%s\" id=\"%s\" "
- "xmlns:cli=\"jabber:client\">"
- "<%s:%s xmlns:%s=\"%s\"/>"
- "</cli:iq>",
- kType, kTo, kStanzaId, kNamespacePrefix, kBodyTag,
- kNamespacePrefix, kNamespace);
- EXPECT_EQ(expected_xml_string, sent_stanza->Str());
- delete sent_stanza;
- }
-
- MessageLoop message_loop_;
MockSignalStrategy signal_strategy_;
scoped_ptr<IqSender> sender_;
MockCallback callback_;
- scoped_ptr<IqRequest> request_;
};
TEST_F(IqSenderTest, SendIq) {
- ASSERT_NO_FATAL_FAILURE({
- SendTestMessage();
- });
-
- scoped_ptr<XmlElement> response(new XmlElement(buzz::QN_IQ));
- response->AddAttr(QName("", "type"), "result");
- response->AddAttr(QName("", "id"), kStanzaId);
- response->AddAttr(QName("", "from"), kTo);
-
- XmlElement* result = new XmlElement(
- QName("test:namespace", "response-body"));
- response->AddElement(result);
-
- EXPECT_CALL(callback_, OnReply(request_.get(), response.get()));
- EXPECT_TRUE(sender_->OnSignalStrategyIncomingStanza(response.get()));
-}
-
-TEST_F(IqSenderTest, Timeout) {
- ASSERT_NO_FATAL_FAILURE({
- SendTestMessage();
- });
-
- request_->SetTimeout(base::TimeDelta::FromMilliseconds(2));
-
- EXPECT_CALL(callback_, OnReply(request_.get(), NULL))
- .WillOnce(InvokeWithoutArgs(&message_loop_, &MessageLoop::Quit));
- message_loop_.Run();
-}
-
-TEST_F(IqSenderTest, InvalidFrom) {
- ASSERT_NO_FATAL_FAILURE({
- SendTestMessage();
- });
+ 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_)));
+
+ std::string expected_xml_string =
+ base::StringPrintf(
+ "<cli:iq type=\"%s\" to=\"%s\" id=\"%s\" "
+ "xmlns:cli=\"jabber:client\">"
+ "<%s:%s xmlns:%s=\"%s\"/>"
+ "</cli:iq>",
+ kType, kTo, kStanzaId, kNamespacePrefix, kBodyTag,
+ kNamespacePrefix, kNamespace);
+ EXPECT_EQ(expected_xml_string, sent_stanza->Str());
+ delete sent_stanza;
scoped_ptr<XmlElement> response(new XmlElement(buzz::QN_IQ));
response->AddAttr(QName("", "type"), "result");
response->AddAttr(QName("", "id"), kStanzaId);
- response->AddAttr(QName("", "from"), "different_user@domain.com");
-
- XmlElement* result = new XmlElement(
- QName("test:namespace", "response-body"));
- response->AddElement(result);
-
- EXPECT_CALL(callback_, OnReply(request_.get(), response.get()))
- .Times(0);
- EXPECT_FALSE(sender_->OnSignalStrategyIncomingStanza(response.get()));
-}
-
-TEST_F(IqSenderTest, IdMatchingHack) {
- ASSERT_NO_FATAL_FAILURE({
- SendTestMessage();
- });
-
- scoped_ptr<XmlElement> response(new XmlElement(buzz::QN_IQ));
- response->AddAttr(QName("", "type"), "result");
- response->AddAttr(QName("", "id"), "DIFFERENT_ID");
- response->AddAttr(QName("", "from"), kTo);
XmlElement* result = new XmlElement(
QName("test:namespace", "response-body"));
response->AddElement(result);
- EXPECT_CALL(callback_, OnReply(request_.get(), response.get()));
+ EXPECT_CALL(callback_, OnReply(response.get()));
EXPECT_TRUE(sender_->OnSignalStrategyIncomingStanza(response.get()));
}