void tst_QVersitProperty::testParameters() { QString typeParameterName(QLatin1String("TYPE")); QString name(QLatin1String("type")); QString value1(QLatin1String("home")); mVersitProperty->insertParameter(name,value1); QMultiHash<QString,QString> parameters = mVersitProperty->parameters(); QCOMPARE(parameters.count(), 1); QVERIFY(parameters.contains(typeParameterName,QLatin1String("home"))); QString value2(QLatin1String("voice")); mVersitProperty->insertParameter(name,value2); parameters = mVersitProperty->parameters(); QCOMPARE(parameters.count(), 2); QVERIFY(parameters.contains(typeParameterName,QLatin1String("home"))); QVERIFY(parameters.contains(typeParameterName,QLatin1String("voice"))); mVersitProperty->removeParameter(name,value1); QCOMPARE(mVersitProperty->parameters().count(), 1); QVERIFY(parameters.contains(typeParameterName,QLatin1String("home"))); mVersitProperty->removeParameter(name,value2); QCOMPARE(mVersitProperty->parameters().count(), 0); mVersitProperty->insertParameter(name, value1); mVersitProperty->insertParameter(name, value2); QCOMPARE(mVersitProperty->parameters().count(), 2); mVersitProperty->removeParameters(name); QCOMPARE(mVersitProperty->parameters().count(), 0); }
void tst_QVCard30Writer::testEncodeParameters() { QByteArray encodedParameters; QBuffer buffer(&encodedParameters); mWriter->setDevice(&buffer); buffer.open(QIODevice::WriteOnly); QString typeParameterName(QString::fromAscii("TYPE")); QString encodingParameterName(QString::fromAscii("ENCODING")); // No parameters QMultiHash<QString,QString> parameters; mWriter->encodeParameters(parameters); QCOMPARE(encodedParameters, QByteArray("")); // One TYPE parameter parameters.insert(typeParameterName,QString::fromAscii("HOME")); mWriter->writeCrlf(); // so it doesn't start folding buffer.close(); encodedParameters.clear(); buffer.open(QIODevice::WriteOnly); mWriter->encodeParameters(parameters); QCOMPARE(encodedParameters, QByteArray(";TYPE=HOME")); // Two TYPE parameters parameters.insert(typeParameterName,QString::fromAscii("VOICE")); mWriter->writeCrlf(); // so it doesn't start folding buffer.close(); encodedParameters.clear(); buffer.open(QIODevice::WriteOnly); mWriter->encodeParameters(parameters); QCOMPARE(encodedParameters, QByteArray(";TYPE=VOICE,HOME")); // One ENCODING parameter parameters.clear(); parameters.insert(encodingParameterName,QString::fromAscii("8BIT")); mWriter->writeCrlf(); // so it doesn't start folding buffer.close(); encodedParameters.clear(); buffer.open(QIODevice::WriteOnly); mWriter->encodeParameters(parameters); QCOMPARE(encodedParameters, QByteArray(";ENCODING=8BIT")); // Two parameters parameters.insert(QString::fromAscii("X-PARAM"),QString::fromAscii("VALUE")); mWriter->writeCrlf(); // so it doesn't start folding buffer.close(); encodedParameters.clear(); buffer.open(QIODevice::WriteOnly); mWriter->encodeParameters(parameters); QCOMPARE(encodedParameters, QByteArray(";X-PARAM=VALUE;ENCODING=8BIT")); // Parameter with characters that require backslash escaping parameters.clear(); parameters.insert(QString::fromAscii("X-P;ARAM"),QString::fromAscii("VA,LUE")); mWriter->writeCrlf(); // so it doesn't start folding buffer.close(); encodedParameters.clear(); buffer.open(QIODevice::WriteOnly); mWriter->encodeParameters(parameters); QCOMPARE(encodedParameters, QByteArray(";X-P\\;ARAM=VA\\,LUE")); }