diff --git a/src/tests/discoitemsresponder.cpp b/src/tests/discoitemsresponder.cpp index dfdf3619efa7470c8164ecbdc5714c5d5dc1f60e..73c9c8aaec665212bee911b724ba50faa30e5923 100644 --- a/src/tests/discoitemsresponder.cpp +++ b/src/tests/discoitemsresponder.cpp @@ -28,6 +28,7 @@ class DiscoItemsResponderTest : public CPPUNIT_NS :: TestFixture, public BasicTe CPPUNIT_TEST(roomList); CPPUNIT_TEST(roomInfo); CPPUNIT_TEST(clearRooms); + CPPUNIT_TEST(receipts); CPPUNIT_TEST_SUITE_END(); public: @@ -94,6 +95,32 @@ class DiscoItemsResponderTest : public CPPUNIT_NS :: TestFixture, public BasicTe CPPUNIT_ASSERT(getStanza(received[0])->getPayload()->getItems().empty()); } + void receipts() { + boost::shared_ptr payload(new Swift::DiscoInfo()); + boost::shared_ptr iq = Swift::IQ::createRequest(Swift::IQ::Get, Swift::JID("localhost"), "id", payload); + iq->setFrom("user@localhost"); + iq->setTo("buddy@localhost"); + injectIQ(iq); + loop->processEvents(); + + CPPUNIT_ASSERT_EQUAL(1, (int) received.size()); + CPPUNIT_ASSERT(dynamic_cast(getStanza(received[0]))); + CPPUNIT_ASSERT(getStanza(received[0])->getPayload()); + CPPUNIT_ASSERT(!getStanza(received[0])->getPayload()->hasFeature("urn:xmpp:receipts")); + received.clear(); + + cfg->updateBackendConfig("[features]\nreceipts=1\n"); + + injectIQ(iq); + loop->processEvents(); + + CPPUNIT_ASSERT_EQUAL(1, (int) received.size()); + CPPUNIT_ASSERT(dynamic_cast(getStanza(received[0]))); + CPPUNIT_ASSERT(getStanza(received[0])->getPayload()); + CPPUNIT_ASSERT(getStanza(received[0])->getPayload()->hasFeature("urn:xmpp:receipts")); + received.clear(); + } + }; CPPUNIT_TEST_SUITE_REGISTRATION (DiscoItemsResponderTest);