本文整理汇总了C++中QVersitProperty::setName方法的典型用法代码示例。如果您正苦于以下问题:C++ QVersitProperty::setName方法的具体用法?C++ QVersitProperty::setName怎么用?C++ QVersitProperty::setName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QVersitProperty
的用法示例。
在下文中一共展示了QVersitProperty::setName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: exportOwnContact
void MT_CntVersitMyCardPlugin::exportOwnContact()
{
//create contact
QContact phonecontact;
QContactName contactName;
contactName.setFirstName("Jo");
contactName.setLastName("Black");
phonecontact.saveDetail(&contactName);
QContactPhoneNumber number;
number.setContexts("Home");
number.setSubTypes("Mobile");
number.setNumber("+02644424429");
phonecontact.saveDetail(&number);
//set MyCard detail
QContactDetail myCard(MYCARD_DEFINTION_NAME);
phonecontact.saveDetail(&myCard);
//export
QList<QContact> list;
list.append(phonecontact);
QVersitContactExporter exporter;
QVERIFY(exporter.exportContacts(list, QVersitDocument::VCard21Type));
QList<QVersitDocument> documents = exporter.documents();
//X-SELF property is exported if MyCard
QVersitDocument document = documents.first();
QVersitProperty property;
property.setName(QLatin1String("X-SELF"));
property.setValue("0");
bool propertyFound = document.properties().contains(property);
QVERIFY(propertyFound);
}
示例2: testByteArrayOutput
void tst_QVersitWriter::testByteArrayOutput()
{
const QByteArray vCard30(
"BEGIN:VCARD\r\n"
"VERSION:3.0\r\n"
"FN:John\r\n"
"END:VCARD\r\n");
delete mWriter; // we don't want the init()ed writer.
QByteArray output;
mWriter = new QVersitWriter(&output);
QVERIFY(mWriter->device() == 0);
QVersitDocument document(QVersitDocument::VCard30Type);
document.setComponentType(QStringLiteral("VCARD"));
QVersitProperty property;
property.setName(QString(QStringLiteral("FN")));
property.setValue(QStringLiteral("John"));
document.addProperty(property);
QVERIFY2(mWriter->startWriting(document), QString::number(mWriter->error()).toLatin1().data());
QVERIFY2(mWriter->waitForFinished(), QString::number(mWriter->error()).toLatin1().data());
QCOMPARE(output, vCard30);
}
示例3: testRemoveProperty
void tst_QVersitDocument::testRemoveProperty()
{
// Remove an empty property.
QCOMPARE(mVersitDocument->properties().count(), 0);
QVersitProperty property;
mVersitDocument->addProperty(property);
mVersitDocument->removeProperty(property);
QCOMPARE(mVersitDocument->properties().count(), 0);
// A full property.
property.setName(QLatin1String("TEL"));
property.setGroups(QStringList(QLatin1String("HOME")));
QMultiHash<QString, QString> params;
params.insert(QLatin1String("TYPE"), QLatin1String("HOME"));
property.setParameters(params);
property.setValue(QLatin1String("123"));
mVersitDocument->addProperty(property);
QCOMPARE(mVersitDocument->properties().count(), 1);
QVersitProperty property2;
property2.setName(QLatin1String("TEL"));
// Remove with a partial property fails.
mVersitDocument->removeProperty(property2);
QCOMPARE(mVersitDocument->properties().count(), 1);
property2.setGroups(QStringList(QLatin1String("HOME")));
property2.setParameters(params);
property2.setValue(QLatin1String("123"));
// Remove with a fully specified property succeeds.
mVersitDocument->removeProperty(property2);
QCOMPARE(mVersitDocument->properties().count(), 0);
}
示例4: testEquality
void tst_QVersitDocument::testEquality()
{
QVersitDocument document1;
QVersitDocument document2;
QVERIFY(document1.isEmpty());
QVERIFY(document1 == document2);
QVERIFY(!(document1 != document2));
QVersitProperty property;
property.setName(QLatin1String("FN"));
property.setValue(QLatin1String("John Citizen"));
document2.addProperty(property);
QVERIFY(!(document1 == document2));
QVERIFY(document1 != document2);
QVERIFY(!document2.isEmpty());
document1.addProperty(property);
QVERIFY(document1 == document2);
QVERIFY(!(document1 != document2));
document2.clear();
QVERIFY(document2.isEmpty());
document1.clear();
QVERIFY(document1 == document2);
QVERIFY(!(document1 != document2));
document2.setType(QVersitDocument::VCard21Type);
QVERIFY(!(document1 == document2));
QVERIFY(document1 != document2);
QVERIFY(!document2.isEmpty());
document2 = document1;
QVERIFY(document1 == document2);
}
示例5: contactProcessed
void contactProcessed(const QContact& contact,
QVersitDocument* document)
{
Q_UNUSED(contact)
QVersitProperty property;
property.setName("TEST-PROPERTY");
property.setValue("3");
document->addProperty(property);
}
示例6: testEmbeddedDocument
void tst_QVersitProperty::testEmbeddedDocument()
{
QVersitDocument document;
QVersitProperty property;
property.setName(QLatin1String("X-tension"));
document.addProperty(property);
mVersitProperty->setValue(QVariant::fromValue(document));
QList<QVersitProperty> embeddedDocumentProperties =
mVersitProperty->value<QVersitDocument>().properties();
QCOMPARE(embeddedDocumentProperties.count(),1);
QCOMPARE(embeddedDocumentProperties[0].name(),QLatin1String("X-TENSION"));
}
示例7: testRemoveAllProperties
void tst_QVersitDocument::testRemoveAllProperties()
{
QString name(QLatin1String("FN"));
// Try to remove from an empty document
QCOMPARE(0, mVersitDocument->properties().count());
mVersitDocument->removeProperties(name);
QCOMPARE(0, mVersitDocument->properties().count());
// Try to remove from a non-empty document, name does not match
QVersitProperty property;
property.setName(QLatin1String("TEL"));
mVersitDocument->addProperty(property);
QCOMPARE(1, mVersitDocument->properties().count());
mVersitDocument->removeProperties(name);
QCOMPARE(1, mVersitDocument->properties().count());
// Remove from a non-empty document, name matches
mVersitDocument->removeProperties(QLatin1String("TEL"));
QCOMPARE(0, mVersitDocument->properties().count());
// Remove from a document with two properties, first matches
property.setName(name);
mVersitDocument->addProperty(property);
property.setName(QLatin1String("TEL"));
mVersitDocument->addProperty(property);
QCOMPARE(2, mVersitDocument->properties().count());
mVersitDocument->removeProperties(name);
QCOMPARE(1, mVersitDocument->properties().count());
// Remove from a document with two properties, second matches
property.setName(name);
mVersitDocument->addProperty(property);
QCOMPARE(2, mVersitDocument->properties().count());
mVersitDocument->removeProperties(name);
QCOMPARE(1, mVersitDocument->properties().count());
}
示例8: importExample
void importExample()
{
//! [Import example]
QVersitContactImporter importer;
QVersitDocument document;
QVersitProperty property;
property.setName(QString::fromAscii("N"));
property.setValue("Citizen;John;Q;;");
document.addProperty(property);
property.setName(QString::fromAscii("X-UNKNOWN-PROPERTY"));
property.setValue("some value");
document.addProperty(property);
if (importer.importDocuments(QList<QVersitDocument>() << document)) {
QList<QContact> contactList = importer.contacts();
// contactList.first() now contains the "N" property as a QContactName
// propertyHandler.mUnknownProperties contains the list of unknown properties
}
//! [Import example]
}
示例9: testWritingVersions
void tst_QVersitWriter::testWritingVersions()
{
mWriter->setDevice(mOutputDevice);
mOutputDevice->open(QBuffer::ReadWrite);
QVersitDocument document;
QVersitProperty property;
property.setName(QString(QString::fromLatin1("FN")));
property.setValue(QString::fromLatin1("John"));
document.addProperty(property);
QByteArray vCard30(
"BEGIN:VCARD\r\n"
"VERSION:3.0\r\n"
"FN:John\r\n"
"END:VCARD\r\n");
QByteArray vCard21(
"BEGIN:VCARD\r\n"
"VERSION:2.1\r\n"
"FN:John\r\n"
"END:VCARD\r\n");
// Given no type or componentType, it should be vCard 3.0
QVERIFY(mWriter->startWriting(document));
mWriter->waitForFinished();
QCOMPARE(mOutputDevice->buffer(), vCard30);
// document type should override the guess
document.setType(QVersitDocument::VCard21Type);
mOutputDevice->buffer().clear();
mOutputDevice->seek(0);
QVERIFY(mWriter->startWriting(document));
mWriter->waitForFinished();
QCOMPARE(mOutputDevice->buffer(), vCard21);
// param to startWriting should override document type
mOutputDevice->buffer().clear();
mOutputDevice->seek(0);
QVERIFY(mWriter->startWriting(document, QVersitDocument::VCard30Type));
mWriter->waitForFinished();
QCOMPARE(mOutputDevice->buffer(), vCard30);
}
示例10: testImporterPlugins
void tst_QVersitContactPlugins::testImporterPlugins() {
QVersitContactImporter importer("Test");
QVersitDocument document;
document.setComponentType("VCARD");
QVersitProperty property;
property.setName("FN");
property.setValue("Bob");
document.addProperty(property);
QVERIFY(importer.importDocuments(QList<QVersitDocument>() << document));
QCOMPARE(importer.contacts().size(), 1);
QList<QContactDetail> details(importer.contacts().first().details("TestDetail"));
QCOMPARE(details.size(), 5);
// The plugins have had their index set such that they should be executed in reverse order
// Check that they are all loaded, and run in the correct order
QCOMPARE(details.at(0).value<int>("Plugin"), 5);
QCOMPARE(details.at(1).value<int>("Plugin"), 4);
QCOMPARE(details.at(2).value<int>("Plugin"), 3);
QCOMPARE(details.at(3).value<int>("Plugin"), 2);
QCOMPARE(details.at(4).value<int>("Plugin"), 1);
}
示例11: detailProcessed
/*!
Called for each processed detail from QVersitContactExporter during
contact export.
*/
void CntVersitMyCardPlugin::detailProcessed(
const QContact& contact,
const QContactDetail& detail,
const QVersitDocument& document,
QSet<QString>* processedFields,
QList<QVersitProperty>* toBeRemoved,
QList<QVersitProperty>* toBeAdded)
{
Q_UNUSED(contact);
Q_UNUSED(processedFields);
Q_UNUSED(document);
Q_UNUSED(toBeRemoved);
if (detail.definitionName() == MYCARD_DEFINITION_NAME) {
QVersitProperty property;
property.setName(QLatin1String("X-SELF"));
property.setValue("0");
toBeAdded->append(property);
}
// QVersitContactExporter takes care of adding the toBeAdded properties
// to the versit document.
}
示例12: buffer
void tst_QVCard21Writer::testEncodeGroupsAndName()
{
QVersitProperty property;
QByteArray result;
QBuffer buffer(&result);
mWriter->setDevice(&buffer);
buffer.open(QIODevice::WriteOnly);
// No groups
property.setName(QString::fromLatin1("name"));
QByteArray expected("NAME");
mWriter->encodeGroupsAndName(property);
QCOMPARE(result, expected);
// One group
mWriter->writeCrlf(); // so it doesn't start folding
buffer.close();
result.clear();
buffer.open(QIODevice::WriteOnly);
property.setGroups(QStringList(QString::fromLatin1("group")));
expected = "group.NAME";
mWriter->encodeGroupsAndName(property);
QCOMPARE(result, expected);
// Two groups
mWriter->writeCrlf(); // so it doesn't start folding
buffer.close();
result.clear();
buffer.open(QIODevice::WriteOnly);
QStringList groups(QString::fromLatin1("group1"));
groups.append(QString::fromLatin1("group2"));
property.setGroups(groups);
expected = "group1.group2.NAME";
mWriter->encodeGroupsAndName(property);
QCOMPARE(result, expected);
}
示例13: document
void tst_QVCard30Writer::testEncodeVersitProperty_data()
{
QTest::addColumn<QVersitProperty>("property");
QTest::addColumn<QByteArray>("expectedResult");
QVersitProperty property;
QByteArray expectedResult;
// No parameters
expectedResult = "FN:John Citizen\r\n";
property.setName(QString::fromAscii("FN"));
property.setValue(QString::fromAscii("John Citizen"));
QTest::newRow("No parameters") << property << expectedResult;
// With parameter(s)
expectedResult = "TEL;TYPE=HOME:123\r\n";
property.setName(QString::fromAscii("TEL"));
property.setValue(QString::fromAscii("123"));
property.insertParameter(QString::fromAscii("TYPE"),QString::fromAscii("HOME"));
QTest::newRow("With parameters, plain value") << property << expectedResult;
// normal FN property is backslash escaped
property.clear();
property.setName(QLatin1String("FN"));
property.setValue(QLatin1String(";,:\\"));
// semicolons, commas and backslashes are escaped (not colons, as per RFC2426)
expectedResult = "FN:\\;\\,:\\\\\r\n";
QTest::newRow("FN property") << property << expectedResult;
// Structured N
property.setName(QLatin1String("N"));
property.setValue(QStringList()
<< QLatin1String("La;st") // needs to be backslash escaped
<< QLatin1String("Fi,rst")
<< QLatin1String("Mi:ddle")
<< QLatin1String("Pr\\efix") // needs to be QP encoded
<< QLatin1String("Suffix"));
property.setValueType(QVersitProperty::CompoundType);
expectedResult = "N:La\\;st;Fi\\,rst;Mi:ddle;Pr\\\\efix;Suffix\r\n";
QTest::newRow("N property") << property << expectedResult;
// Structured CATEGORIES
property.setName(QLatin1String("CATEGORIES"));
property.setValue(QStringList()
<< QLatin1String("re;d")
<< QLatin1String("gr,een")
<< QLatin1String("bl:ue")
<< QLatin1String("ye\\llow"));
property.setValueType(QVersitProperty::ListType);
expectedResult = "CATEGORIES:re\\;d,gr\\,een,bl:ue,ye\\\\llow\r\n";
QTest::newRow("CATEGORIES property") << property << expectedResult;
// Convert X-NICKNAME to NICKNAME
expectedResult = "NICKNAME:Jack\r\n";
property.setParameters(QMultiHash<QString,QString>());
property.setName(QString::fromAscii("X-NICKNAME"));
property.setValue(QString::fromAscii("Jack"));
QTest::newRow("NICKNAME property") << property << expectedResult;
// Convert X-IMPP to IMPP;
expectedResult = "IMPP:msn:msn-address\r\n";
property.setParameters(QMultiHash<QString,QString>());
property.setName(QString::fromAscii("X-IMPP"));
property.setValue(QString::fromAscii("msn:msn-address"));
QTest::newRow("IMPP property") << property << expectedResult;
// AGENT property
expectedResult = "AGENT:BEGIN:VCARD\\nVERSION:3.0\\nFN:Secret Agent\\nEND:VCARD\\n\r\n";
property.setName(QString::fromAscii("AGENT"));
property.setValue(QString());
QVersitDocument document(QVersitDocument::VCard30Type);
document.setComponentType(QLatin1String("VCARD"));
QVersitProperty embeddedProperty;
embeddedProperty.setName(QString(QString::fromAscii("FN")));
embeddedProperty.setValue(QString::fromAscii("Secret Agent"));
document.addProperty(embeddedProperty);
property.setValue(QVariant::fromValue(document));
QTest::newRow("AGENT property") << property << expectedResult;
// Value is base64 encoded.
QByteArray value("value");
expectedResult = "Springfield.HOUSE.PHOTO;ENCODING=b:" + value.toBase64() + "\r\n";
QStringList groups(QString::fromAscii("Springfield"));
groups.append(QString::fromAscii("HOUSE"));
property.setGroups(groups);
property.setParameters(QMultiHash<QString,QString>());
property.setName(QString::fromAscii("PHOTO"));
property.setValue(value);
QTest::newRow("base64 encoded") << property << expectedResult;
// Characters other than ASCII:
expectedResult = "ORG:" + KATAKANA_NOKIA.toUtf8() + "\r\n";
property = QVersitProperty();
property.setName(QLatin1String("ORG"));
property.setValue(KATAKANA_NOKIA);
QTest::newRow("non-ASCII") << property << expectedResult;
// No CHARSET and QUOTED-PRINTABLE parameters
expectedResult = "EMAIL:[email protected]" + KATAKANA_NOKIA.toUtf8() + ".com\r\n";
property = QVersitProperty();
//.........这里部分代码省略.........
示例14: testExport_data
void tst_QVersitOrganizerExporter::testExport_data()
{
QTest::addColumn<QList<QOrganizerItem> >("items");
QTest::addColumn<QVersitDocument>("expectedDocument");
{
QVersitDocument document(QVersitDocument::ICalendar20Type);
document.setComponentType(QLatin1String("VCALENDAR"));
QVersitDocument nested(QVersitDocument::ICalendar20Type);
nested.setComponentType(QLatin1String("VEVENT"));
QVersitProperty property;
property.setName(QLatin1String("SUMMARY"));
property.setValue(QLatin1String("Bastille Day Party"));
nested.addProperty(property);
property.setName(QLatin1String("DTSTART"));
property.setValue(QLatin1String("19970714T170000Z"));
nested.addProperty(property);
property.setName(QLatin1String("DTEND"));
property.setValue(QLatin1String("19970715T035959Z"));
nested.addProperty(property);
document.addSubDocument(nested);
nested.clear();
nested.setType(QVersitDocument::ICalendar20Type);
nested.setComponentType(QLatin1String("VTODO"));
property.setName(QLatin1String("SUMMARY"));
property.setValue(QLatin1String("Take out the garbage"));
nested.addProperty(property);
property.setName(QLatin1String("DTSTART"));
property.setValue(QLatin1String("20100609T080000"));
nested.addProperty(property);
property.setName(QLatin1String("DUE"));
property.setValue(QLatin1String("20100610T080000"));
nested.addProperty(property);
document.addSubDocument(nested);
nested.clear();
nested.setType(QVersitDocument::ICalendar20Type);
nested.setComponentType(QLatin1String("VJOURNAL"));
property.setName(QLatin1String("SUMMARY"));
property.setValue(QLatin1String("Trip to Thailand"));
nested.addProperty(property);
property.setName(QLatin1String("DTSTART"));
property.setValue(QLatin1String("20100615T112300"));
nested.addProperty(property);
document.addSubDocument(nested);
QOrganizerEvent event;
event.setDisplayLabel(QLatin1String("Bastille Day Party"));
event.setStartDateTime(QDateTime(QDate(1997, 7, 14), QTime(17, 0, 0), Qt::UTC));
event.setEndDateTime(QDateTime(QDate(1997, 7, 15), QTime(3, 59, 59), Qt::UTC));
QOrganizerTodo todo;
todo.setDisplayLabel(QLatin1String("Take out the garbage"));
todo.setStartDateTime(QDateTime(QDate(2010, 6, 9), QTime(8, 0, 0)));
todo.setDueDateTime(QDateTime(QDate(2010, 6, 10), QTime(8, 0, 0)));
QOrganizerJournal journal;
journal.setDisplayLabel(QLatin1String("Trip to Thailand"));
journal.setDateTime(QDateTime(QDate(2010, 6, 15), QTime(11, 23, 0)));
QList<QOrganizerItem> items;
items << static_cast<QOrganizerItem>(event);
items << static_cast<QOrganizerItem>(todo);
items << static_cast<QOrganizerItem>(journal);
QTest::newRow("sample event, todo and journal") << items << document;
}
{
QVersitDocument document(QVersitDocument::ICalendar20Type);
document.setComponentType(QLatin1String("VCALENDAR"));
QVersitDocument nested(QVersitDocument::ICalendar20Type);
nested.setComponentType(QLatin1String("VEVENT"));
QVersitProperty property;
property.setName(QLatin1String("UID"));
property.setValue(QLatin1String("1234"));
nested.addProperty(property);
property.setName(QLatin1String("RECURRENCE-ID"));
property.setValue(QLatin1String("20100608"));
nested.addProperty(property);
document.addSubDocument(nested);
// An event occurrence with OriginalDate and Guid set
QOrganizerEventOccurrence event;
event.setGuid(QLatin1String("1234"));
event.setOriginalDate(QDate(2010, 6, 8));
QList<QOrganizerItem> items;
items << static_cast<QOrganizerItem>(event);
QTest::newRow("event occurrence exception") << items << document;
}
}
示例15: codec
void tst_QVCard21Writer::testEncodeVersitProperty_data()
{
QTest::addColumn<QVersitProperty>("property");
QTest::addColumn<QByteArray>("expectedResult");
QTest::addColumn<QByteArray>("codec");
QVersitProperty property;
QByteArray expectedResult;
QByteArray codec("ISO-8859_1");
// normal case
property.setName(QString::fromLatin1("FN"));
property.setValue(QString::fromLatin1("John Citizen"));
property.setValueType(QVersitProperty::PlainType);
expectedResult = "FN:John Citizen\r\n";
QTest::newRow("No parameters") << property << expectedResult << codec;
// Structured N - escaping should happen for semicolons, not for commas
property.setName(QStringLiteral("N"));
property.setValue(QStringList()
<< QStringLiteral("La;st") // needs to be backslash escaped
<< QStringLiteral("Fi,rst")
<< QStringLiteral("Mi:ddle")
<< QStringLiteral("Pr\\efix") // needs to be QP encoded
<< QStringLiteral("Suffix"));
property.setValueType(QVersitProperty::CompoundType);
expectedResult = "N;ENCODING=QUOTED-PRINTABLE:La\\;st;Fi,rst;Mi:ddle;Pr=5Cefix;Suffix\r\n";
QTest::newRow("N property") << property << expectedResult << codec;
// Structured N - there was a bug where if two fields had to be escaped,
// two ENCODING parameters were added
property.setName(QStringLiteral("N"));
property.setValue(QStringList()
<< QStringLiteral("La\\st")
<< QStringLiteral("Fi\\rst")
<< QString()
<< QString()
<< QString());
property.setValueType(QVersitProperty::CompoundType);
expectedResult = "N;ENCODING=QUOTED-PRINTABLE:La=5Cst;Fi=5Crst;;;\r\n";
QTest::newRow("N property, double-encoded") << property << expectedResult << codec;
// Structured N - one field needs to be encoded in UTF-8 while the other doesn't
// correct behaviour is to encode the whole thing in UTF-8
property.setName(QStringLiteral("N"));
property.setValue(QStringList()
<< QString::fromUtf8("\xE2\x82\xAC") // euro sign
<< QString::fromLatin1("\xA3") // pound sign (upper Latin-1)
<< QString()
<< QString()
<< QString());
property.setValueType(QVersitProperty::CompoundType);
expectedResult = "N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E2=82=AC;=C2=A3;;;\r\n";
QTest::newRow("N property, double-encoded") << property << expectedResult << codec;
// Structured CATEGORIES - escaping should happen for commas, not semicolons
property.setName(QStringLiteral("CATEGORIES"));
property.setValue(QStringList()
<< QStringLiteral("re;d")
<< QStringLiteral("gr,een")
<< QStringLiteral("bl:ue"));
property.setValueType(QVersitProperty::ListType);
expectedResult = "CATEGORIES:re;d,gr\\,een,bl:ue\r\n";
QTest::newRow("CATEGORIES property") << property << expectedResult << codec;
// With parameter(s). No special characters in the value.
// -> No need to Quoted-Printable encode the value.
expectedResult = "TEL;HOME:123\r\n";
property.setName(QString::fromLatin1("TEL"));
property.setValue(QString::fromLatin1("123"));
property.insertParameter(QString::fromLatin1("TYPE"),QString::fromLatin1("HOME"));
QTest::newRow("With parameters, plain value") << property << expectedResult << codec;
expectedResult = "EMAIL;HOME;ENCODING=QUOTED-PRINTABLE:john.citizen=40example.com\r\n";
property.setName(QString::fromLatin1("EMAIL"));
property.setValue(QString::fromLatin1("[email protected]"));
QTest::newRow("With parameters, special value") << property << expectedResult << codec;
// AGENT property with parameter
expectedResult =
"AGENT;X-PARAMETER=VALUE:\r\n\
BEGIN:VCARD\r\n\
VERSION:2.1\r\n\
FN:Secret Agent\r\n\
END:VCARD\r\n\
\r\n";
property.setParameters(QMultiHash<QString,QString>());
property.setName(QString::fromLatin1("AGENT"));
property.setValue(QString());
property.insertParameter(QString::fromLatin1("X-PARAMETER"),QString::fromLatin1("VALUE"));
QVersitDocument document(QVersitDocument::VCard21Type);
document.setComponentType(QStringLiteral("VCARD"));
QVersitProperty embeddedProperty;
embeddedProperty.setName(QString(QString::fromLatin1("FN")));
embeddedProperty.setValue(QString::fromLatin1("Secret Agent"));
document.addProperty(embeddedProperty);
property.setValue(QVariant::fromValue(document));
QTest::newRow("AGENT property") << property << expectedResult << codec;
// Value is base64 encoded.
//.........这里部分代码省略.........