/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include #include #include #include #include #include using namespace Swift; class VCardParserTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(VCardParserTest); CPPUNIT_TEST(testParse); CPPUNIT_TEST(testParse_Photo); CPPUNIT_TEST(testParse_Nickname); CPPUNIT_TEST_SUITE_END(); public: void testParse() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( "" "2.0" "Alice In Wonderland" "" "Wonderland" "Alice" "In" "Mrs" "PhD" "" "" "alice@wonderland.lit" "" "" "" "" "" "alice@teaparty.lit" "" "" "" "DreamGirl" "1234" "mutt" "")); boost::shared_ptr payload = boost::dynamic_pointer_cast(parser.getPayload()); CPPUNIT_ASSERT_EQUAL(std::string("2.0"), payload->getVersion()); CPPUNIT_ASSERT_EQUAL(std::string("Alice In Wonderland"), payload->getFullName()); CPPUNIT_ASSERT_EQUAL(std::string("Alice"), payload->getGivenName()); CPPUNIT_ASSERT_EQUAL(std::string("In"), payload->getMiddleName()); CPPUNIT_ASSERT_EQUAL(std::string("Wonderland"), payload->getFamilyName()); CPPUNIT_ASSERT_EQUAL(std::string("Mrs"), payload->getPrefix()); CPPUNIT_ASSERT_EQUAL(std::string("PhD"), payload->getSuffix()); CPPUNIT_ASSERT_EQUAL(std::string("DreamGirl"), payload->getNickname()); CPPUNIT_ASSERT_EQUAL(std::string("1234mutt"), payload->getUnknownContent()); CPPUNIT_ASSERT_EQUAL(2, static_cast(payload->getEMailAddresses().size())); CPPUNIT_ASSERT_EQUAL(std::string("alice@wonderland.lit"), payload->getEMailAddresses()[0].address); CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isHome); CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isInternet); CPPUNIT_ASSERT(payload->getEMailAddresses()[0].isPreferred); CPPUNIT_ASSERT(!payload->getEMailAddresses()[0].isWork); CPPUNIT_ASSERT(!payload->getEMailAddresses()[0].isX400); CPPUNIT_ASSERT_EQUAL(std::string("alice@teaparty.lit"), payload->getEMailAddresses()[1].address); CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isHome); CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isInternet); CPPUNIT_ASSERT(!payload->getEMailAddresses()[1].isPreferred); CPPUNIT_ASSERT(payload->getEMailAddresses()[1].isWork); CPPUNIT_ASSERT(payload->getEMailAddresses()[1].isX400); } void testParse_Photo() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( "" "" "image/jpeg" "" "QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ej" "EyMzQ1Njc4OTA=" "" "" "")); VCard* payload = dynamic_cast(parser.getPayload().get()); CPPUNIT_ASSERT_EQUAL(std::string("image/jpeg"), payload->getPhotoType()); CPPUNIT_ASSERT_EQUAL(createByteArray("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"), payload->getPhoto()); } void testParse_Nickname() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( "" "mynick" "")); VCard* payload = dynamic_cast(parser.getPayload().get()); CPPUNIT_ASSERT_EQUAL(std::string("mynick"), payload->getNickname()); } }; CPPUNIT_TEST_SUITE_REGISTRATION(VCardParserTest);