diff options
Diffstat (limited to 'Swiften/Parser/PayloadParsers/UnitTest/RosterParserTest.cpp')
| -rw-r--r-- | Swiften/Parser/PayloadParsers/UnitTest/RosterParserTest.cpp | 25 |
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 | ||
| 15 | class RosterParserTest : public CppUnit::TestFixture | 15 | class 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 | ||
| 56 | CPPUNIT_TEST_SUITE_REGISTRATION(RosterParserTest); | 81 | CPPUNIT_TEST_SUITE_REGISTRATION(RosterParserTest); |
Swift