diff --git a/src/tests/component.cpp b/src/tests/component.cpp index a3f709b5950814046224a98c9a4a48a900f2836b..1ca010ea2c81dc97cd64aae55461bca02e5f52b7 100644 --- a/src/tests/component.cpp +++ b/src/tests/component.cpp @@ -22,6 +22,7 @@ class ComponentTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_TEST_SUITE(ComponentTest); CPPUNIT_TEST(handlePresenceWithNode); CPPUNIT_TEST(handlePresenceWithoutNode); + CPPUNIT_TEST(handleErrorPresence); CPPUNIT_TEST_SUITE_END(); public: @@ -56,6 +57,18 @@ class ComponentTest : public CPPUNIT_NS :: TestFixture, public BasicTest { CPPUNIT_ASSERT_EQUAL(0, (int) received.size()); } + // Error presence should be ignored + void handleErrorPresence() { + Swift::Presence::ref response = Swift::Presence::create(); + response->setTo("localhost"); + response->setFrom("user@localhost/resource"); + response->setType(Swift::Presence::Error); + dynamic_cast(component->getStanzaChannel())->onPresenceReceived(response); + + loop->processEvents(); + CPPUNIT_ASSERT_EQUAL(0, (int) received.size()); + } + void handlePresenceWithoutNode() { Swift::Presence::ref response = Swift::Presence::create(); response->setTo("localhost");