From kde-commits Sat Sep 17 17:41:48 2011 From: Till Adam Date: Sat, 17 Sep 2011 17:41:48 +0000 To: kde-commits Subject: [kdepim-runtime] resources/maildir/libmaildir: Add flags reading Message-Id: <20110917174148.C6296A607A () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=131628133431435 Git commit 0db9facca6b4ea3a0f6d7d6111feb842d2524973 by Till Adam. Committed on 17/09/2011 at 19:09. Pushed by tilladam into branch 'master'. Add flags reading test and an empty one for writing. M +2 -2 resources/maildir/libmaildir/maildir.cpp M +63 -0 resources/maildir/libmaildir/tests/testmaildir.cpp M +2 -0 resources/maildir/libmaildir/tests/testmaildir.h http://commits.kde.org/kdepim-runtime/0db9facca6b4ea3a0f6d7d6111feb842d2524973 diff --git a/resources/maildir/libmaildir/maildir.cpp b/resources/maildir/libmaildir/maildir.cpp index 690f0dc..d5beb16 100644 --- a/resources/maildir/libmaildir/maildir.cpp +++ b/resources/maildir/libmaildir/maildir.cpp @@ -609,7 +609,7 @@ QString Maildir::changeEntryFlags(const QString& key, const Akonadi::Item::Flags Akonadi::Item::Flags Maildir::readEntryFlags(const QString& key) const { Akonadi::Item::Flags flags; - + const QRegExp rx = *(statusSeparatorRx()); const int index = key.indexOf( rx ); if ( index != -1 ) { @@ -625,7 +625,7 @@ Akonadi::Item::Flags Maildir::readEntryFlags(const QString& key) const flags << Akonadi::MessageFlags::Flagged; } } - + return flags; } diff --git a/resources/maildir/libmaildir/tests/testmaildir.cpp b/resources/maildir/libmaildir/tests/testmaildir.cpp index b55b96f..d3a8c40 100644 --- a/resources/maildir/libmaildir/tests/testmaildir.cpp +++ b/resources/maildir/libmaildir/tests/testmaildir.cpp @@ -30,6 +30,7 @@ #include #include #include +#include QTEST_KDEMAIN( MaildirTest, NoGUI ) @@ -344,3 +345,65 @@ void MaildirTest::cleanupTestCase() m_temp->unlink(); } +void MaildirTest::testMaildirFlagsReading() +{ + initTestCase(); + QFile file; + const QStringList markers = QStringList() << "P" << "R" << "S" << "F" << "FPRS"; + QDir::setCurrent( m_temp->name() + QLatin1Char( '/' ) + "cur" ); + for ( int i=0; i<6 ; i++) { + QString fileName = QLatin1String( "testmail-" ) + QString::number(i); + if ( i < 5 ) { + fileName += + #ifdef Q_OS_WIN + "!2," + #else + ":2," + #endif + + markers[i]; + } + file.setFileName( fileName ); + file.open( QIODevice::WriteOnly ); + file.write( testString ); + file.flush(); + file.close(); + } + + Maildir d( m_temp->name() ); + QStringList entries = d.entryList(); + QCOMPARE( entries.count(), 6 ); + + Akonadi::Item::Flags flags = d.readEntryFlags( entries[0] ); + QCOMPARE( flags.count(), 1); + QVERIFY( flags.contains( Akonadi::MessageFlags::Forwarded ) ); + + flags = d.readEntryFlags( entries[1] ); + QCOMPARE( flags.count(), 1); + QVERIFY( flags.contains( Akonadi::MessageFlags::Replied ) ); + + flags = d.readEntryFlags( entries[2] ); + QCOMPARE( flags.count(), 1); + QVERIFY( flags.contains( Akonadi::MessageFlags::Seen ) ); + + flags = d.readEntryFlags( entries[3] ); + QCOMPARE( flags.count(), 1); + QVERIFY( flags.contains( Akonadi::MessageFlags::Flagged ) ); + + flags = d.readEntryFlags( entries[4] ); + QCOMPARE( flags.count(), 4); + QVERIFY( flags.contains( Akonadi::MessageFlags::Forwarded ) ); + QVERIFY( flags.contains( Akonadi::MessageFlags::Replied ) ); + QVERIFY( flags.contains( Akonadi::MessageFlags::Seen ) ); + QVERIFY( flags.contains( Akonadi::MessageFlags::Flagged ) ); + + flags = d.readEntryFlags( entries[5] ); + QVERIFY( flags.isEmpty() ); + cleanupTestCase(); +} + +void MaildirTest::testMaildirFlagsWriting() +{ + initTestCase(); + + cleanupTestCase(); +} diff --git a/resources/maildir/libmaildir/tests/testmaildir.h b/resources/maildir/libmaildir/tests/testmaildir.h index 5811542..12c1c59 100644 --- a/resources/maildir/libmaildir/tests/testmaildir.h +++ b/resources/maildir/libmaildir/tests/testmaildir.h @@ -44,6 +44,8 @@ class MaildirTest : public QObject void testMaildirRemoveSubfolder(); void testMaildirRename(); void testMaildirMoveTo(); + void testMaildirFlagsReading(); + void testMaildirFlagsWriting(); void cleanupTestCase(); private: void fillDirectory(const QString &name, int limit );