From 2f0605ded80cd4c216b8cbaaf228e98811207744 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 1 Feb 2016 13:14:14 +0100 Subject: Ensure maildir flagchanges work completely --- examples/maildirresource/libmaildir/maildir.cpp | 2 +- examples/maildirresource/libmaildir/maildir.h | 2 +- examples/maildirresource/maildirresource.cpp | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) (limited to 'examples') diff --git a/examples/maildirresource/libmaildir/maildir.cpp b/examples/maildirresource/libmaildir/maildir.cpp index 3d4630f..f8ca606 100644 --- a/examples/maildirresource/libmaildir/maildir.cpp +++ b/examples/maildirresource/libmaildir/maildir.cpp @@ -560,7 +560,7 @@ QDateTime Maildir::lastModified(const QString& key) const return info.lastModified(); } -QByteArray Maildir::readEntryHeadersFromFile(const QString& file) const +QByteArray Maildir::readEntryHeadersFromFile(const QString& file) { QByteArray result; diff --git a/examples/maildirresource/libmaildir/maildir.h b/examples/maildirresource/libmaildir/maildir.h index a89a832..42d53e6 100644 --- a/examples/maildirresource/libmaildir/maildir.h +++ b/examples/maildirresource/libmaildir/maildir.h @@ -184,7 +184,7 @@ public: * Return the contents of the headers section of the file the maildir with the given @p file, that * is a full path to the file. You can get it by using findRealKey(key) . */ - QByteArray readEntryHeadersFromFile( const QString& file ) const; + static QByteArray readEntryHeadersFromFile( const QString& file ); /** * Return the contents of the headers section of the file the maildir with the given @p key. diff --git a/examples/maildirresource/maildirresource.cpp b/examples/maildirresource/maildirresource.cpp index 33883a7..922eb5a 100644 --- a/examples/maildirresource/maildirresource.cpp +++ b/examples/maildirresource/maildirresource.cpp @@ -311,6 +311,18 @@ KAsync::Job MaildirResource::inspect(int inspectionType, const QByteArray } return KAsync::null(); } + if (property == "subject") { + const auto remoteId = resolveLocalId(ENTITY_TYPE_MAIL, entityId, synchronizationTransaction); + + KMime::Message *msg = new KMime::Message; + msg->setHead(KMime::CRLFtoLF(KPIM::Maildir::readEntryHeadersFromFile(remoteId))); + msg->parse(); + + if (msg->subject(true)->asUnicodeString() != expectedValue.toString()) { + return KAsync::error(1, "Subject not as expected."); + } + return KAsync::null(); + } } if (inspectionType == Sink::Resources::Inspection::ExistenceInspectionType) { const auto remoteId = resolveLocalId(ENTITY_TYPE_MAIL, entityId, synchronizationTransaction); -- cgit v1.2.3