diff options
| author | Remko Tronçon <git@el-tramo.be> | 2011-09-14 20:31:36 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2011-09-14 20:31:36 (GMT) | 
| commit | 2535c1d383fa16d02d547090bd2e64b79c3a24c8 (patch) | |
| tree | 5d89749d4786e7049972a69ec1b7df79cbe8a878 | |
| parent | 83b526c1580a0a4effa01b5ffb710d7dfaea1e55 (diff) | |
| download | swift-2535c1d383fa16d02d547090bd2e64b79c3a24c8.zip swift-2535c1d383fa16d02d547090bd2e64b79c3a24c8.tar.bz2 | |
Added reset() to PayloadAddingPresenceSender.
| -rw-r--r-- | Swiften/Presence/PayloadAddingPresenceSender.cpp | 4 | ||||
| -rw-r--r-- | Swiften/Presence/PayloadAddingPresenceSender.h | 10 | ||||
| -rw-r--r-- | Swiften/Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp | 13 | 
3 files changed, 26 insertions, 1 deletions
| diff --git a/Swiften/Presence/PayloadAddingPresenceSender.cpp b/Swiften/Presence/PayloadAddingPresenceSender.cpp index 1ece32a..5e8cd81 100644 --- a/Swiften/Presence/PayloadAddingPresenceSender.cpp +++ b/Swiften/Presence/PayloadAddingPresenceSender.cpp @@ -41,4 +41,8 @@ void PayloadAddingPresenceSender::setPayload(boost::shared_ptr<Payload> payload)  	}  } +void PayloadAddingPresenceSender::reset() { +	lastSentPresence.reset(); +} +  } diff --git a/Swiften/Presence/PayloadAddingPresenceSender.h b/Swiften/Presence/PayloadAddingPresenceSender.h index ddd460e..333842a 100644 --- a/Swiften/Presence/PayloadAddingPresenceSender.h +++ b/Swiften/Presence/PayloadAddingPresenceSender.h @@ -28,10 +28,18 @@ namespace Swift {  			 * Sets the payload to be added to outgoing presences.  			 * If initial presence has been sent, this will resend the last sent presence  			 * with an updated payload. Initial presence is reset when unavailable presence is -			 * sent. +			 * sent, or when reset() is called.  			 */  			void setPayload(boost::shared_ptr<Payload>); + 			/** + 			 * Resets the presence sender. + 			 * This puts the presence sender back in the initial state (before initial + 			 * presence has been sent). + 			 * This also resets the chained sender. + 			 */ + 			void reset(); +  		private:  			boost::shared_ptr<Presence> lastSentPresence;  			PresenceSender* sender; diff --git a/Swiften/Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp b/Swiften/Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp index 0dd6f74..3a6ab31 100644 --- a/Swiften/Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp +++ b/Swiften/Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp @@ -23,6 +23,7 @@ class PayloadAddingPresenceSenderTest : public CppUnit::TestFixture {  		CPPUNIT_TEST(testSendPresenceDoesNotAlterOriginalPayload);  		CPPUNIT_TEST(testSetPayloadAfterInitialPresenceResendsPresence);  		CPPUNIT_TEST(testSetPayloadAfterUnavailablePresenceDoesNotResendPresence); +		CPPUNIT_TEST(testSetPayloadAfterResetDoesNotResendPresence);  		CPPUNIT_TEST(testSendDirectedPresenceIsNotResent);  		CPPUNIT_TEST_SUITE_END(); @@ -83,12 +84,24 @@ class PayloadAddingPresenceSenderTest : public CppUnit::TestFixture {  		void testSetPayloadAfterUnavailablePresenceDoesNotResendPresence() {  			boost::shared_ptr<PayloadAddingPresenceSender> testling(createSender()); +			testling->sendPresence(Presence::create("bar")); +  			Presence::ref presence = Presence::create("bar");  			presence->setType(Presence::Unavailable);  			testling->sendPresence(presence);  			testling->setPayload(MyPayload::create("foo")); +			CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(stanzaChannel->sentStanzas.size())); +		} + +		void testSetPayloadAfterResetDoesNotResendPresence() { +			boost::shared_ptr<PayloadAddingPresenceSender> testling(createSender()); +			testling->sendPresence(Presence::create("bar")); + +			testling->reset(); +			testling->setPayload(MyPayload::create("foo")); +  			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(stanzaChannel->sentStanzas.size()));  		} | 
 Swift
 Swift