summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Presence/UnitTest')
-rw-r--r--Swiften/Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp13
1 files changed, 13 insertions, 0 deletions
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()));
}