summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Parser/PayloadParsers/UnitTest/RosterParserTest.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/UnitTest/RosterParserTest.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/UnitTest/RosterParserTest.cpp b/Swiften/Parser/PayloadParsers/UnitTest/RosterParserTest.cpp
index e085d58..aea9dc4 100644
--- a/Swiften/Parser/PayloadParsers/UnitTest/RosterParserTest.cpp
+++ b/Swiften/Parser/PayloadParsers/UnitTest/RosterParserTest.cpp
@@ -14,10 +14,11 @@ using namespace Swift;
14 14
15class RosterParserTest : public CppUnit::TestFixture 15class RosterParserTest : public CppUnit::TestFixture
16{ 16{
17 CPPUNIT_TEST_SUITE(RosterParserTest); 17 CPPUNIT_TEST_SUITE(RosterParserTest);
18 CPPUNIT_TEST(testParse); 18 CPPUNIT_TEST(testParse);
19 CPPUNIT_TEST(testParse_ItemWithUnknownContent);
19 CPPUNIT_TEST_SUITE_END(); 20 CPPUNIT_TEST_SUITE_END();
20 21
21 public: 22 public:
22 RosterParserTest() {} 23 RosterParserTest() {}
23 24
@@ -49,8 +50,32 @@ class RosterParserTest : public CppUnit::TestFixture
49 CPPUNIT_ASSERT_EQUAL(String("Baz"), items[1].getName()); 50 CPPUNIT_ASSERT_EQUAL(String("Baz"), items[1].getName());
50 CPPUNIT_ASSERT_EQUAL(RosterItemPayload::None, items[1].getSubscription()); 51 CPPUNIT_ASSERT_EQUAL(RosterItemPayload::None, items[1].getSubscription());
51 CPPUNIT_ASSERT(!items[1].getSubscriptionRequested()); 52 CPPUNIT_ASSERT(!items[1].getSubscriptionRequested());
52 CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), items[1].getGroups().size()); 53 CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), items[1].getGroups().size());
53 } 54 }
55
56 void testParse_ItemWithUnknownContent() {
57 PayloadsParserTester parser;
58 parser.parse(
59 "<query xmlns='jabber:iq:roster'>"
60 " <item jid='foo@bar.com' name='Foo @ Bar' subscription='from' ask='subscribe'>"
61 " <group>Group 1</group>"
62 " <foo xmlns=\"http://example.com\"><bar>Baz</bar></foo>"
63 " <group>Group 2</group>"
64 " <baz><fum>foo</fum></baz>"
65 " </item>"
66 "</query>");
67
68 RosterPayload* payload = dynamic_cast<RosterPayload*>(parser.getPayload().get());
69 const RosterPayload::RosterItemPayloads& items = payload->getItems();
70
71 CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), items.size());
72 CPPUNIT_ASSERT_EQUAL(String("Group 1"), items[0].getGroups()[0]);
73 CPPUNIT_ASSERT_EQUAL(String("Group 2"), items[0].getGroups()[1]);
74 CPPUNIT_ASSERT_EQUAL(String(
75 "<foo xmlns=\"http://example.com\"><bar xmlns=\"http://example.com\">Baz</bar></foo>"
76 "<baz xmlns=\"jabber:iq:roster\"><fum xmlns=\"jabber:iq:roster\">foo</fum></baz>"
77 ), items[0].getUnknownContent());
78 }
54}; 79};
55 80
56CPPUNIT_TEST_SUITE_REGISTRATION(RosterParserTest); 81CPPUNIT_TEST_SUITE_REGISTRATION(RosterParserTest);