summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Parser/PayloadParsers/UnitTest/VCardParserTest.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/UnitTest/VCardParserTest.cpp59
1 files changed, 56 insertions, 3 deletions
diff --git a/Swiften/Parser/PayloadParsers/UnitTest/VCardParserTest.cpp b/Swiften/Parser/PayloadParsers/UnitTest/VCardParserTest.cpp
index 999eb34..dfcc0ec 100644
--- a/Swiften/Parser/PayloadParsers/UnitTest/VCardParserTest.cpp
+++ b/Swiften/Parser/PayloadParsers/UnitTest/VCardParserTest.cpp
@@ -10,19 +10,72 @@
10#include "Swiften/Parser/PayloadParsers/VCardParser.h" 10#include "Swiften/Parser/PayloadParsers/VCardParser.h"
11#include "Swiften/Parser/PayloadParsers/UnitTest/PayloadsParserTester.h" 11#include "Swiften/Parser/PayloadParsers/UnitTest/PayloadsParserTester.h"
12 12
13using namespace Swift; 13using namespace Swift;
14 14
15class VCardParserTest : public CppUnit::TestFixture 15class VCardParserTest : public CppUnit::TestFixture {
16{
17 CPPUNIT_TEST_SUITE(VCardParserTest); 16 CPPUNIT_TEST_SUITE(VCardParserTest);
17 CPPUNIT_TEST(testParse);
18 CPPUNIT_TEST(testParse_Photo); 18 CPPUNIT_TEST(testParse_Photo);
19 CPPUNIT_TEST(testParse_Nickname); 19 CPPUNIT_TEST(testParse_Nickname);
20 CPPUNIT_TEST_SUITE_END(); 20 CPPUNIT_TEST_SUITE_END();
21 21
22 public: 22 public:
23 VCardParserTest() {} 23 void testParse() {
24 PayloadsParserTester parser;
25
26 CPPUNIT_ASSERT(parser.parse(
27 "<vCard xmlns=\"vcard-temp\">"
28 "<VERSION>2.0</VERSION>"
29 "<FN>Alice In Wonderland</FN>"
30 "<N>"
31 "<FAMILY>Wonderland</FAMILY>"
32 "<GIVEN>Alice</GIVEN>"
33 "<MIDDLE>In</MIDDLE>"
34 "<PREFIX>Mrs</PREFIX>"
35 "<SUFFIX>PhD</SUFFIX>"
36 "</N>"
37 "<EMAIL>"
38 "<USERID>alice@wonderland.lit</USERID>"
39 "<HOME/>"
40 "<INTERNET/>"
41 "<PREF/>"
42 "</EMAIL>"
43 "<EMAIL>"
44 "<USERID>alice@teaparty.lit</USERID>"
45 "<WORK/>"
46 "<X400/>"
47 "</EMAIL>"
48 "<NICKNAME>DreamGirl</NICKNAME>"
49 "<BDAY>1234</BDAY>"
50 "<MAILER>mutt</MAILER>"
51 "</vCard>"));
52
53 boost::shared_ptr<VCard> payload = boost::dynamic_pointer_cast<VCard>(parser.getPayload());
54 CPPUNIT_ASSERT_EQUAL(String("2.0"), payload->getVersion());
55 CPPUNIT_ASSERT_EQUAL(String("Alice In Wonderland"), payload->getFullName());
56 CPPUNIT_ASSERT_EQUAL(String("Alice"), payload->getGivenName());
57 CPPUNIT_ASSERT_EQUAL(String("In"), payload->getMiddleName());
58 CPPUNIT_ASSERT_EQUAL(String("Wonderland"), payload->getFamilyName());
59 CPPUNIT_ASSERT_EQUAL(String("Mrs"), payload->getPrefix());
60 CPPUNIT_ASSERT_EQUAL(String("PhD"), payload->getSuffix());
61 CPPUNIT_ASSERT_EQUAL(String("DreamGirl"), payload->getNickname());
62 CPPUNIT_ASSERT_EQUAL(String("<BDAY xmlns=\"vcard-temp\">1234</BDAY><MAILER xmlns=\"vcard-temp\">mutt</MAILER>"), payload->getUnknownContent());
63 CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(payload->getEMailAddresses().size()));
64 CPPUNIT_ASSERT_EQUAL(String("alice@wonderland.lit"), payload->getEMailAddresses()[0].address);
65 CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isHome);
66 CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isInternet);
67 CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isPreferred);
68 CPPUNIT_ASSERT(!payload->getEMailAddresses()[0].isWork);
69 CPPUNIT_ASSERT(!payload->getEMailAddresses()[0].isX400);
70 CPPUNIT_ASSERT_EQUAL(String("alice@teaparty.lit"), payload->getEMailAddresses()[1].address);
71 CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isHome);
72 CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isInternet);
73 CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isPreferred);
74 CPPUNIT_ASSERT(payload->getEMailAddresses()[1].isWork);
75 CPPUNIT_ASSERT(payload->getEMailAddresses()[1].isX400);
76 }
24 77
25 void testParse_Photo() { 78 void testParse_Photo() {
26 PayloadsParserTester parser; 79 PayloadsParserTester parser;
27 80
28 CPPUNIT_ASSERT(parser.parse( 81 CPPUNIT_ASSERT(parser.parse(