1 /*  This file is part of the KDE project
2     SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.net>
3     SPDX-FileContributor: Kevin Krammer <krake@kdab.com>
4 
5     SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #include "testdatautil.h"
9 
10 #include <QTemporaryDir>
11 
12 #include <QDir>
13 #include <QTest>
14 
15 class TestDataTest : public QObject
16 {
17     Q_OBJECT
18 public:
TestDataTest()19     TestDataTest()
20     {
21     }
22 
23 private Q_SLOTS:
24     void testResources();
25     void testInstall();
26 };
27 
testResources()28 void TestDataTest::testResources()
29 {
30     const QStringList testDataNames = TestDataUtil::testDataNames();
31     QCOMPARE(testDataNames,
32              QStringList() << QStringLiteral("dimap") << QStringLiteral("maildir") << QStringLiteral("maildir-tagged") << QStringLiteral("mbox")
33                            << QStringLiteral("mbox-tagged") << QStringLiteral("mbox-unpurged"));
34 
35     for (const QString &testDataName : testDataNames) {
36         if (testDataName.startsWith(QLatin1String("mbox"))) {
37             QVERIFY(TestDataUtil::folderType(testDataName) == TestDataUtil::MBoxFolder);
38         } else {
39             QVERIFY(TestDataUtil::folderType(testDataName) == TestDataUtil::MaildirFolder);
40         }
41     }
42 
43     // TODO check contents?
44 }
45 
testInstall()46 void TestDataTest::testInstall()
47 {
48     QTemporaryDir dir;
49     QDir installDir(dir.path());
50     QDir curDir;
51 
52     const QString indexFilePattern = QStringLiteral(".%1.index");
53 
54     QVERIFY(TestDataUtil::installFolder(QLatin1String("mbox"), dir.path(), QStringLiteral("mbox1")));
55     QVERIFY(installDir.exists(QLatin1String("mbox1")));
56     QVERIFY(installDir.exists(indexFilePattern.arg(QLatin1String("mbox1"))));
57 
58     QVERIFY(TestDataUtil::installFolder(QLatin1String("mbox-tagged"), dir.path(), QStringLiteral("mbox2")));
59     QVERIFY(installDir.exists(QLatin1String("mbox2")));
60     QVERIFY(installDir.exists(indexFilePattern.arg(QLatin1String("mbox2"))));
61 
62     QVERIFY(TestDataUtil::installFolder(QLatin1String("maildir"), dir.path(), QStringLiteral("md1")));
63     QVERIFY(installDir.exists(QLatin1String("md1")));
64     QVERIFY(installDir.exists(QLatin1String("md1/new")));
65     QVERIFY(installDir.exists(QLatin1String("md1/cur")));
66     QVERIFY(installDir.exists(QLatin1String("md1/tmp")));
67     QVERIFY(installDir.exists(indexFilePattern.arg(QLatin1String("md1"))));
68 
69     curDir = installDir;
70     curDir.cd(QStringLiteral("md1"));
71     curDir.cd(QStringLiteral("cur"));
72     curDir.setFilter(QDir::Files);
73     QCOMPARE((int)curDir.count(), 4);
74 
75     QVERIFY(TestDataUtil::installFolder(QLatin1String("maildir-tagged"), dir.path(), QStringLiteral("md2")));
76     QVERIFY(installDir.exists(QLatin1String("md2")));
77     QVERIFY(installDir.exists(QLatin1String("md2/new")));
78     QVERIFY(installDir.exists(QLatin1String("md2/cur")));
79     QVERIFY(installDir.exists(QLatin1String("md2/tmp")));
80     QVERIFY(installDir.exists(indexFilePattern.arg(QLatin1String("md2"))));
81 
82     curDir = installDir;
83     curDir.cd(QStringLiteral("md2"));
84     curDir.cd(QStringLiteral("cur"));
85     curDir.setFilter(QDir::Files);
86     QCOMPARE((int)curDir.count(), 4);
87 }
88 
89 #include "testdatatest.moc"
90 
91 QTEST_MAIN(TestDataTest)
92