From 0272f1e8bb7f8c86c86958e3e022aac8b34a266c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20Knau=C3=9F?= Date: Tue, 26 Jul 2016 13:52:06 +0200 Subject: make the tests compile again --- framework/domain/mimetreeparser/interface.cpp | 107 +++++++++++++++++++++ framework/domain/mimetreeparser/interface.h | 4 +- .../domain/mimetreeparser/tests/interfacetest.cpp | 10 +- 3 files changed, 115 insertions(+), 6 deletions(-) diff --git a/framework/domain/mimetreeparser/interface.cpp b/framework/domain/mimetreeparser/interface.cpp index 5cf36d10..a76a6cde 100644 --- a/framework/domain/mimetreeparser/interface.cpp +++ b/framework/domain/mimetreeparser/interface.cpp @@ -28,8 +28,77 @@ #include #include +#include +#include #include +class MailMimePrivate +{ +public: + KMime::Content *mNode; + MailMime *q; +}; + +MailMime::MailMime() + : d(std::unique_ptr(new MailMimePrivate())) +{ + d->q = this; +} + +bool MailMime::isFirstTextPart() const +{ + if (!d->mNode) { + return false; + } + return (d->mNode->topLevel()->textContent() == d->mNode); +} + +MailMime::Disposition MailMime::disposition() const +{ + if (!d->mNode) { + return Invalid; + } + const auto cd = d->mNode->contentDisposition(false); + if (!cd) { + return Invalid; + } + switch (cd->disposition()){ + case KMime::Headers::CDinline: + return Inline; + case KMime::Headers::CDattachment: + return Attachment; + default: + return Invalid; + } +} + +QString MailMime::filename() const +{ + if (!d->mNode) { + return QString(); + } + const auto cd = d->mNode->contentDisposition(false); + if (!cd) { + return QString(); + } + return cd->filename(); +} + +QMimeType MailMime::mimetype() const +{ + if (!d->mNode) { + return QMimeType(); + } + + const auto ct = d->mNode->contentType(false); + if (!ct) { + return QMimeType(); + } + + QMimeDatabase mimeDb; + return mimeDb.mimeTypeForName(ct->mimeType()); +} + class PartPrivate { public: @@ -39,10 +108,13 @@ public: QVector subParts(); Part *parent() const; + + const MailMime::Ptr &mailMime() const; private: Part *q; Part *mParent; QVector mSubParts; + MailMime::Ptr mMailMime; }; PartPrivate::PartPrivate(Part* part) @@ -68,6 +140,11 @@ QVector< Part::Ptr > PartPrivate::subParts() return mSubParts; } +const MailMime::Ptr& PartPrivate::mailMime() const +{ + return mMailMime; +} + Part::Part() : d(std::unique_ptr(new PartPrivate(this))) { @@ -95,6 +172,11 @@ QVector Part::availableContents() const } QVector Part::content() const +{ + return content(availableContents().first()); +} + +QVector Part::content(const QByteArray& ct) const { return QVector(); } @@ -119,6 +201,11 @@ QVector Part::signatures() const } } +MailMime::Ptr Part::mailMime() const +{ + return d->mailMime(); +} + class ContentPrivate { public: @@ -126,6 +213,7 @@ public: QByteArray mCodec; Part *mParent; Content *q; + MailMime::Ptr mMailMime; }; Content::Content(const QByteArray& content, Part *parent) @@ -167,18 +255,37 @@ QByteArray Content::charset() const return d->mCodec; } +QByteArray Content::type() const +{ + return "Content"; +} + +MailMime::Ptr Content::mailMime() const +{ + return d->mMailMime; +} + HtmlContent::HtmlContent(const QByteArray& content, Part* parent) : Content(content, parent) { } +QByteArray HtmlContent::type() const +{ + return "HtmlContent"; +} + PlainTextContent::PlainTextContent(const QByteArray& content, Part* parent) : Content(content, parent) { } +QByteArray PlainTextContent::type() const +{ + return "PlainTextContent"; +} class AlternativePartPrivate { diff --git a/framework/domain/mimetreeparser/interface.h b/framework/domain/mimetreeparser/interface.h index f6ee41ee..c71b86d6 100644 --- a/framework/domain/mimetreeparser/interface.h +++ b/framework/domain/mimetreeparser/interface.h @@ -75,13 +75,15 @@ public: Attachment ///< attachment }; + MailMime(); + // interessting header parts of a KMime::Content QMimeType mimetype() const; Disposition disposition() const; QUrl label() const; QByteArray cid() const; QByteArray charset() const; - QByteArray filename() const; + QString filename() const; // Unique identifier to ecactly this KMime::Content QByteArray link() const; diff --git a/framework/domain/mimetreeparser/tests/interfacetest.cpp b/framework/domain/mimetreeparser/tests/interfacetest.cpp index 822d530c..83de97f7 100644 --- a/framework/domain/mimetreeparser/tests/interfacetest.cpp +++ b/framework/domain/mimetreeparser/tests/interfacetest.cpp @@ -52,7 +52,7 @@ private slots: QCOMPARE(contentPartList.size(), 1); auto contentPart = contentPartList[0]; QVERIFY((bool)contentPart); - QCOMPARE(contentPart->availableContents(), "plaintext"); + QCOMPARE(contentPart->availableContents(), QVector() << "plaintext"); auto contentList = contentPart->content("plaintext"); QCOMPARE(contentList.size(), 1); QCOMPARE(contentList[0]->content(), QStringLiteral("If you can see this text it means that your email client couldn't display our newsletter properly.\nPlease visit this link to view the newsletter on our website: http://www.gog.com/newsletter/").toLocal8Bit()); @@ -94,7 +94,7 @@ private slots: QCOMPARE(contentPartList.size(), 1); auto contentPart = contentPartList[0]; QVERIFY((bool)contentPart); - QCOMPARE(contentPart->availableContents(), "html"); + QCOMPARE(contentPart->availableContents(), QVector() << "html"); auto contentList = contentPart->content("plaintext"); QCOMPARE(contentList.size(), 0); @@ -115,7 +115,7 @@ private slots: QCOMPARE(contentPartList.size(), 1); auto contentPart = contentPartList[0]; QVERIFY((bool)contentPart); - QCOMPARE(contentPart->availableContents(), "plaintext"); + QCOMPARE(contentPart->availableContents(), QVector() << "plaintext"); auto contentList = contentPart->content("plaintext"); QCOMPARE(contentList.size(), 1); QCOMPARE(contentList[0]->content(), QStringLiteral("The quick brown fox jumped over the lazy dog.").toLocal8Bit()); @@ -130,7 +130,7 @@ private slots: QCOMPARE(contentPartList.size(), 1); auto contentPart = contentPartList[0]; QVERIFY((bool)contentPart); - QCOMPARE(contentPart->availableContents(), "plaintext"); + QCOMPARE(contentPart->availableContents(), QVector() << "plaintext"); auto contentList = contentPart->content("plaintext"); QCOMPARE(contentList.size(), 1); QCOMPARE(contentList[0]->content(), QStringLiteral("test text").toLocal8Bit()); @@ -145,7 +145,7 @@ private slots: QCOMPARE(contentPartList.size(), 1); auto contentPart = contentPartList[0]; QVERIFY((bool)contentPart); - QCOMPARE(contentPart->availableContents(), "plaintext"); + QCOMPARE(contentPart->availableContents(), QVector() << "plaintext"); auto contentList = contentPart->content("plaintext"); QCOMPARE(contentList.size(), 1); QCOMPARE(contentList[0]->content(), QStringLiteral("asdasd asd asd asdf sadf sdaf sadf äöü").toLocal8Bit()); -- cgit v1.2.3