From a9d22136fc81516b3b870f76efae2eb818e89122 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sun, 28 Aug 2011 11:42:34 +0200
Subject: Fixed Request::isAccountJID().


diff --git a/Swiften/Queries/Request.cpp b/Swiften/Queries/Request.cpp
index 0ffae26..7832c65 100644
--- a/Swiften/Queries/Request.cpp
+++ b/Swiften/Queries/Request.cpp
@@ -80,7 +80,7 @@ bool Request::isAccountJID(const JID& jid) {
 	if (!router_->getJID().isValid()) {
 		return true;
 	}
-	return jid.isValid() ? router_->getJID().equals(jid, JID::WithoutResource) : true;
+	return jid.isValid() ? router_->getJID().toBare().equals(jid, JID::WithResource) : true;
 }
 
 }
diff --git a/Swiften/Queries/UnitTest/RequestTest.cpp b/Swiften/Queries/UnitTest/RequestTest.cpp
index b3925dd..75e0a1d 100644
--- a/Swiften/Queries/UnitTest/RequestTest.cpp
+++ b/Swiften/Queries/UnitTest/RequestTest.cpp
@@ -33,6 +33,7 @@ class RequestTest : public CppUnit::TestFixture {
 		CPPUNIT_TEST(testHandleIQ_SetWithSameID);
 		CPPUNIT_TEST(testHandleIQ_IncorrectSender);
 		CPPUNIT_TEST(testHandleIQ_IncorrectSenderForServerQuery);
+		CPPUNIT_TEST(testHandleIQ_IncorrectOtherResourceSenderForServerQuery);
 		CPPUNIT_TEST(testHandleIQ_ServerRespondsWithDomain);
 		CPPUNIT_TEST(testHandleIQ_ServerRespondsWithBareJID);
 		CPPUNIT_TEST(testHandleIQ_ServerRespondsWithoutFrom);
@@ -243,6 +244,19 @@ class RequestTest : public CppUnit::TestFixture {
 			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(channel_->iqs_.size()));
 		}
 
+		void testHandleIQ_IncorrectOtherResourceSenderForServerQuery() {
+			MyRequest testling(IQ::Get, JID(), payload_, router_);
+			router_->setJID("alice@wonderland.lit/TeaParty");
+			testling.onResponse.connect(boost::bind(&RequestTest::handleResponse, this, _1, _2));
+			testling.send();
+
+			channel_->onIQReceived(createResponse(JID("alice@wonderland.lit/RabbitHole"), "test-id"));
+
+			CPPUNIT_ASSERT_EQUAL(0, responsesReceived_);
+			CPPUNIT_ASSERT_EQUAL(0, static_cast<int>(receivedErrors.size()));
+			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(channel_->iqs_.size()));
+		}
+
 		void testHandleIQ_ServerRespondsWithDomain() {
 			MyRequest testling(IQ::Get, JID(), payload_, router_);
 			router_->setJID("alice@wonderland.lit/TeaParty");
-- 
cgit v0.10.2-6-g49f6