Page MenuHomePhorge

D51.1775367103.diff
No OneTemporary

Authored By
Unknown
Size
16 KB
Referenced Files
None
Subscribers
None

D51.1775367103.diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,11 +68,13 @@
endif()
set(KDEPIMLIBS_LIB_VERSION "4.71.0")
+set(KMIME_LIB_VERSION "4.84.0")
+find_package(KF5CoreAddons CONFIG REQUIRED)
find_package(KF5Akonadi ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5Contacts ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5CalendarCore ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5CalendarUtils ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED)
-find_package(KF5Mime ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED)
+find_package(KF5Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5AkonadiNotes ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED)
find_package(SWIG)
diff --git a/icalendar/imip.cpp b/icalendar/imip.cpp
--- a/icalendar/imip.cpp
+++ b/icalendar/imip.cpp
@@ -84,7 +84,7 @@
if ( !attachment.isEmpty() ) {
KMime::Headers::ContentDisposition *disposition =
- new KMime::Headers::ContentDisposition( message.get() );
+ new KMime::Headers::ContentDisposition();
disposition->setDisposition( KMime::Headers::CDinline );
message->setHeader( disposition );
message->contentTransferEncoding()->setEncoding( KMime::Headers::CEquPr );
@@ -103,7 +103,7 @@
// Set the first multipart, the body message.
KMime::Content *bodyMessage = new KMime::Content;
KMime::Headers::ContentDisposition *bodyDisposition =
- new KMime::Headers::ContentDisposition( bodyMessage );
+ new KMime::Headers::ContentDisposition();
bodyDisposition->setDisposition( KMime::Headers::CDinline );
bodyMessage->contentType()->setMimeType( "text/plain" );
bodyMessage->contentType()->setCharset( "utf-8" );
@@ -115,7 +115,7 @@
if ( !attachment.isEmpty() ) {
KMime::Content *attachMessage = new KMime::Content;
KMime::Headers::ContentDisposition *attachDisposition =
- new KMime::Headers::ContentDisposition( attachMessage );
+ new KMime::Headers::ContentDisposition();
attachDisposition->setDisposition( KMime::Headers::CDattachment );
attachMessage->contentType()->setMimeType( "text/calendar" );
attachMessage->contentType()->setCharset( "utf-8" );
diff --git a/kolabformat/mimeobject.cpp b/kolabformat/mimeobject.cpp
--- a/kolabformat/mimeobject.cpp
+++ b/kolabformat/mimeobject.cpp
@@ -29,6 +29,7 @@
#include "libkolab-version.h"
#include <QString>
#include <QtGlobal>
+#include <KRandom>
#include <boost/algorithm/string/predicate.hpp>
@@ -373,7 +374,7 @@
}
Kolab::ObjectType objectType = InvalidObject;
if (mOverrideObjectType == InvalidObject) {
- if (KMime::Headers::Base *xKolabHeader = msg->getHeaderByType(X_KOLAB_TYPE_HEADER)) {
+ if (KMime::Headers::Base *xKolabHeader = msg->headerByType(X_KOLAB_TYPE_HEADER)) {
objectType = getObjectType(xKolabHeader->asUnicodeString().trimmed().toStdString());
} else {
Warning() << "could not find the X-Kolab-Type Header, trying autodetection" ;
@@ -390,10 +391,10 @@
}
if (!mDoOverrideVersion) {
- KMime::Headers::Base *xKolabVersion = msg->getHeaderByType(X_KOLAB_MIME_VERSION_HEADER);
+ KMime::Headers::Base *xKolabVersion = msg->headerByType(X_KOLAB_MIME_VERSION_HEADER);
if (!xKolabVersion) {
//For backwards compatibility to development versions, can be removed in future versions
- xKolabVersion = msg->getHeaderByType(X_KOLAB_MIME_VERSION_HEADER_COMPAT);
+ xKolabVersion = msg->headerByType(X_KOLAB_MIME_VERSION_HEADER_COMPAT);
}
if (!xKolabVersion || xKolabVersion->asUnicodeString() == KOLAB_VERSION_V2) {
mVersion = KolabV2;
@@ -440,7 +441,7 @@
static std::string createCid()
{
- return QString::fromLatin1("cid:%1@%2").arg(QString::fromLatin1(KMime::uniqueString())).arg("kolab.resource.akonadi").toStdString();
+ return QString::fromLatin1("cid:%1@%2").arg(KRandom::randomString(16)).arg("kolab.resource.akonadi").toStdString();
}
std::vector<Kolab::Attachment> convertToReferences(const std::vector<Kolab::Attachment> &attachments, std::vector<std::string> &attachmentCids)
diff --git a/mime/mimeutils.cpp b/mime/mimeutils.cpp
--- a/mime/mimeutils.cpp
+++ b/mime/mimeutils.cpp
@@ -120,10 +120,10 @@
if (!subject.isEmpty()) {
message->subject()->fromUnicodeString( subject, "utf-8" );
}
-
+
KMime::Content *content = createMainPart( mimetype.toLatin1(), xml );
message->addContent( content );
-
+
message->assemble();
return message;
}
@@ -153,9 +153,13 @@
{
KMime::Message::Ptr message(new KMime::Message);
message->date()->setDateTime(KDateTime::currentUtcDateTime().dateTime());
- message->appendHeader(new KMime::Headers::Generic(X_KOLAB_TYPE_HEADER, message.get(), xKolabType, "utf-8"));
+ KMime::Headers::Generic* h = new KMime::Headers::Generic(X_KOLAB_TYPE_HEADER);
+ h->fromUnicodeString(xKolabType, "utf-8");
+ message->appendHeader(h);
if (v3) {
- message->appendHeader(new KMime::Headers::Generic(X_KOLAB_MIME_VERSION_HEADER, message.get(), KOLAB_VERSION_V3, "utf-8"));
+ KMime::Headers::Generic* hv3 = new KMime::Headers::Generic(X_KOLAB_MIME_VERSION_HEADER);
+ hv3->fromUnicodeString(KOLAB_VERSION_V3, "utf-8");
+ message->appendHeader(hv3);
}
message->userAgent()->from7BitString(prodid);
message->contentType()->setMimeType("multipart/mixed");
diff --git a/tests/formattest.cpp b/tests/formattest.cpp
--- a/tests/formattest.cpp
+++ b/tests/formattest.cpp
@@ -49,19 +49,19 @@
KCOMPARE( msg->headerByType( X_KOLAB_TYPE_HEADER )->as7BitString(), expectedMsg->headerByType( X_KOLAB_TYPE_HEADER )->as7BitString() );
// date contains conversion time...
// KCOMPARE( msg->date()->asUnicodeString(), expectedMsg->date()->asUnicodeString() );
-
+
// body parts
KCOMPARE( msg->contents().size(), expectedMsg->contents().size() );
for ( int i = 0; i < msg->contents().size(); ++i ) {
KMime::Content *part = msg->contents().at( i );
KMime::Content *expectedPart = expectedMsg->contents().at( i );
-
+
// part headers
KCOMPARE( part->contentType()->mimeType(), expectedPart->contentType()->mimeType() );
KCOMPARE( part->contentDisposition()->filename(), expectedPart->contentDisposition()->filename() );
-
+
KCOMPARE( part->decodedContent().isEmpty(), false );
-
+
QString content(part->decodedContent());
normalizeMimemessage(content);
QString expected(expectedPart->decodedContent());
@@ -84,7 +84,7 @@
QTest::addColumn<Kolab::ObjectType>( "type" );
QTest::addColumn<QString>( "icalFileName" );
QTest::addColumn<QString>( "mimeFileName" );
-
+
QTest::newRow( "v2eventSimple" ) << Kolab::KolabV2 << Kolab::EventObject << getPath("v2/event/simple.ics") << getPath("v2/event/simple.ics.mime");
QTest::newRow( "v2eventComplex" ) << Kolab::KolabV2 << Kolab::EventObject << getPath("v2/event/complex.ics") << getPath("v2/event/complex.ics.mime");
QTest::newRow( "v2eventAttachment" ) << Kolab::KolabV2 << Kolab::EventObject << getPath("v2/event/attachment.ics") << getPath("v2/event/attachment.ics.mime");
@@ -117,7 +117,7 @@
QFETCH( Kolab::ObjectType, type );
QFETCH( QString, icalFileName ); //To compare
QFETCH( QString, mimeFileName ); //For parsing
-
+
//Parse mime message
bool ok = false;
const KMime::Message::Ptr &msg = readMimeFile( mimeFileName, ok );
@@ -129,13 +129,13 @@
QCOMPARE(Kolab::ErrorHandler::instance().error(), Kolab::ErrorHandler::Debug);
KCalCore::Incidence::Ptr convertedIncidence = reader.getIncidence();
-
+
//Parse ICalFile for comparison
QFile icalFile( icalFileName );
QVERIFY( icalFile.open( QFile::ReadOnly ) );
KCalCore::ICalFormat format;
KCalCore::Incidence::Ptr realIncidence( format.fromString( QString::fromUtf8( icalFile.readAll() ) ) );
-
+
// fix up the converted incidence for comparisson
normalizeIncidence(convertedIncidence);
normalizeIncidence(realIncidence);
@@ -144,20 +144,20 @@
// so make sure both incidences have one
realIncidence->recurrence();
convertedIncidence->recurrence();
-
+
realIncidence->setLastModified(convertedIncidence->lastModified());
-
+
//The following test is just for debugging and not really relevant
if ( *(realIncidence.data()) != *(convertedIncidence.data()) ) {
showDiff(format.toString( realIncidence ), format.toString( convertedIncidence ));
}
QVERIFY( *(realIncidence.data()) == *(convertedIncidence.data()) );
-
-
+
+
//Write
Kolab::overrideTimestamp(Kolab::cDateTime(2012, 5, 5, 5,5,5, true));
KMime::Message::Ptr convertedMime = Kolab::KolabObjectWriter::writeIncidence(realIncidence, version);
-
+
if ( !compareMimeMessage( convertedMime, msg )) {
showDiff(msg->encodedContent(), convertedMime->encodedContent());
QVERIFY( false );
@@ -179,7 +179,7 @@
QTest::addColumn<QString>( "vcardFileName" );
QTest::addColumn<QString>( "mimeFileName" );
QTest::addColumn<TestMode>( "mode" );
-
+
QTest::newRow( "v2contactSimple" ) << Kolab::KolabV2 << Kolab::ContactObject << getPath("v2/contacts/simple.vcf") << getPath("v2/contacts/simple.vcf.mime") << ReadWrite;
//FIXME Reference files needs to be adjusted due to fix in how pictures are stored
// QTest::newRow( "v2contactComplex" ) << Kolab::KolabV2 << Kolab::ContactObject << getPath("v2/contacts/complex.vcf") << getPath("v2/contacts/complex.vcf.mime") << ReadWrite;
@@ -192,7 +192,7 @@
// QTest::newRow( "v2contactPicture" ) << Kolab::KolabV2 << Kolab::ContactObject << getPath("v2/contacts/picture.vcf") << getPath("v2/contacts/picture.vcf.mime") << ReadWrite;
//FIXME the following test fails because the vcard implementation always writes jpeg (which is lossy). The reference vcf file is therefore probably also not really useful
// QTest::newRow( "v2pictureJPGHorde" ) << Kolab::KolabV2 << Kolab::ContactObject << getPath("v2/contacts/pictureJPGHorde.vcf") << getPath("v2/contacts/pictureJPGHorde.vcf.mime");
-
+
QTest::newRow( "v3contactSimple" ) << Kolab::KolabV3 << Kolab::ContactObject << getPath("v3/contacts/simple.vcf") << getPath("v3/contacts/simple.vcf.mime") << ReadWrite;
QTest::newRow( "v3contactComplex" ) << Kolab::KolabV3 << Kolab::ContactObject << getPath("v3/contacts/complex.vcf") << getPath("v3/contacts/complex.vcf.mime") << ReadWrite;
QTest::newRow( "v3contactPng" ) << Kolab::KolabV3 << Kolab::ContactObject << getPath("v3/readonly/png.vcf") << getPath("v3/readonly/png.vcf.mime") << ReadOnly;
@@ -228,7 +228,7 @@
QFETCH( QString, vcardFileName ); //To compare
QFETCH( QString, mimeFileName ); //For parsing
QFETCH( TestMode, mode ); //For parsing
-
+
//Parse mime message
bool ok = false;
const KMime::Message::Ptr &msg = readMimeFile( mimeFileName, ok );
@@ -238,10 +238,10 @@
QCOMPARE(t, type);
QCOMPARE(reader.getVersion(), version);
QCOMPARE(Kolab::ErrorHandler::instance().error(), Kolab::ErrorHandler::Debug);
-
+
KContacts::Addressee convertedAddressee = reader.getContact();
QVERIFY(!convertedAddressee.isEmpty());
-
+
//Parse vcard
QFile vcardFile( vcardFileName );
QVERIFY( vcardFile.open( QFile::ReadOnly ) );
@@ -273,7 +273,7 @@
if (mode == ReadWrite) {
Kolab::overrideTimestamp(Kolab::cDateTime(2012, 5, 5, 5,5,5, true));
const KMime::Message::Ptr &convertedMime = Kolab::KolabObjectWriter::writeContact(realAddressee, version);
-
+
if ( !compareMimeMessage( convertedMime, msg )) {
QString expected = msg->encodedContent();
normalizeMimemessage(expected);
@@ -295,7 +295,7 @@
QTest::addColumn<Kolab::ObjectType>( "type" );
QTest::addColumn<QString>( "vcardFileName" );
QTest::addColumn<QString>( "mimeFileName" );
-
+
QTest::newRow( "v3distlistSimple" ) << Kolab::KolabV3 << Kolab::DistlistObject << getPath("v3/contacts/distlist.vcf") << getPath("v3/contacts/distlist.vcf.mime");
}
@@ -305,7 +305,7 @@
QFETCH( Kolab::ObjectType, type );
QFETCH( QString, vcardFileName ); //To compare
QFETCH( QString, mimeFileName ); //For parsing
-
+
//Parse mime message
bool ok = false;
const KMime::Message::Ptr &msg = readMimeFile( mimeFileName, ok );
@@ -315,9 +315,9 @@
QCOMPARE(t, type);
QCOMPARE(reader.getVersion(), version);
QCOMPARE(Kolab::ErrorHandler::instance().error(), Kolab::ErrorHandler::Debug);
-
+
KContacts::ContactGroup convertedAddressee = reader.getDistlist();
-
+
//Parse vcard
QFile vcardFile( vcardFileName );
QVERIFY( vcardFile.open( QFile::ReadOnly ) );
@@ -325,7 +325,7 @@
QByteArray c = vcardFile.readAll();
QBuffer data(&c);
data.open(QIODevice::ReadOnly);
-
+
KContacts::ContactGroup realAddressee;
KContacts::ContactGroupTool::convertFromXml( &data, realAddressee );
@@ -333,18 +333,18 @@
QBuffer expected;
expected.open(QIODevice::WriteOnly);
KContacts::ContactGroupTool::convertToXml(realAddressee, &expected);
-
+
QBuffer converted;
converted.open(QIODevice::WriteOnly);
KContacts::ContactGroupTool::convertToXml(convertedAddressee, &converted);
-
+
showDiff(expected.buffer(), converted.buffer());
}
QCOMPARE( realAddressee, convertedAddressee );
//Write
const KMime::Message::Ptr &convertedMime = Kolab::KolabObjectWriter::writeDistlist(realAddressee, version);
-
+
if ( !compareMimeMessage( convertedMime, msg )) {
QString expected = msg->encodedContent();
normalizeMimemessage(expected);
@@ -385,12 +385,12 @@
QCOMPARE(Kolab::ErrorHandler::instance().error(), Kolab::ErrorHandler::Debug);
KMime::Message::Ptr convertedNote = reader.getNote();
- QVERIFY(convertedNote.get());
+ QVERIFY(convertedNote.data());
//Parse note
const KMime::Message::Ptr &realNote = readMimeFile( noteFileName, ok );
QVERIFY(ok);
- QVERIFY(realNote.get());
+ QVERIFY(realNote.data());
QString expected = realNote->encodedContent();
normalizeMimemessage(expected);
@@ -399,11 +399,11 @@
QEXPECT_FAIL("", "Header sorting is off", Continue);
QCOMPARE(expected, converted);
// showDiff(expected, converted);
-
+
//Write
const KMime::Message::Ptr &convertedMime = Kolab::KolabObjectWriter::writeNote(realNote, version);
- QVERIFY(convertedMime.get());
- QVERIFY(msg.get());
+ QVERIFY(convertedMime.data());
+ QVERIFY(msg.data());
QString expected2 = msg->encodedContent();
normalizeMimemessage(expected2);
@@ -424,24 +424,24 @@
// QVERIFY( icalFile.open( QFile::ReadOnly ) );
// KCalCore::ICalFormat format;
// const KCalCore::Incidence::Ptr realIncidence( format.fromString( QString::fromUtf8( icalFile.readAll() ) ) );
-//
+//
// QString result;
// QTextStream s(&result);
// Kolab::overrideTimestamp(Kolab::cDateTime(2012, 5, 5, 5,5,5, true));
// Kolab::KolabObjectWriter::writeIncidence(realIncidence, Kolab::KolabV3)->toStream(s);
-
+
// QFile vcardFile( getPath("v3/contacts/complex.vcf") );
// QVERIFY( vcardFile.open( QFile::ReadOnly ) );
// KContacts::VCardConverter converter;
// const KContacts::Addressee realAddressee = converter.parseVCard( vcardFile.readAll() );
-//
+//
// qDebug() << realAddressee.photo().data();
-//
+//
// QString result;
// QTextStream s(&result);
// Kolab::overrideTimestamp(Kolab::cDateTime(2012, 5, 5, 5,5,5, true));
// Kolab::KolabObjectWriter::writeContact(realAddressee, Kolab::KolabV3)->toStream(s);
-
+
// qDebug() << result;
}
@@ -452,7 +452,7 @@
// qDebug() << msg->encodedContent();
// Kolab::KolabObjectReader reader;
// Kolab::ObjectType t = reader.parseMimeMessage(msg);
-//
+//
// KContacts::Addressee convertedAddressee = reader.getContact();
// KContacts::VCardConverter converter;
// qDebug() << converter.createVCard(convertedAddressee);
@@ -462,7 +462,7 @@
// qDebug() << msg->encodedContent();
// Kolab::KolabObjectReader reader;
// Kolab::ObjectType t = reader.parseMimeMessage(msg);
-//
+//
// KContacts::ContactGroup convertedAddressee = reader.getDistlist();
// QBuffer buf;
// buf.open(QIODevice::WriteOnly);
@@ -480,7 +480,7 @@
// img.save(&buffer, "JPEG");
// buffer.close();
// qDebug() << pic.toBase64();
-//
+//
// QImage img2;
// QByteArray pic2;
// QBuffer buffer2(&pic2);
@@ -488,7 +488,7 @@
// img2.save(&buffer2, "JPEG");
// buffer2.close();
// qDebug() << pic2.toBase64();
-
+
}
QTEST_MAIN( FormatTest )

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 5, 5:31 AM (2 d, 26 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18832499
Default Alt Text
D51.1775367103.diff (16 KB)

Event Timeline