1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
#include <QtCore/QString>
#include <QFile>
#include <QtTest/QtTest>
#include <QMimeDatabase>
class QmimeTest : public QObject
{
Q_OBJECT
public:
QmimeTest();
private Q_SLOTS:
void testFindByName();
void testFindByFile();
};
QmimeTest::QmimeTest()
{
}
void QmimeTest::testFindByName()
{
QMimeDatabase database;
QVERIFY(database.addMimeTypes(SRCDIR"../../freedesktop.org.xml", 0));
QFile testList(SRCDIR"testfiles/list");
QVERIFY(testList.open(QIODevice::ReadOnly));
while (!testList.atEnd()) {
QString string = testList.readLine();
string = string.trimmed();
if (string.startsWith("#") || string.isEmpty())
continue;
QStringList list = string.split(" ", QString::SkipEmptyParts);
QVERIFY(list.size() >= 2);
bool failByFileName = false;
if (list.size() == 3) {
QString xxx = list.at(2);
if (xxx.length() >= 1) {
failByFileName = xxx.at(0) == 'x';
}
}
QString file = list.at(0);
QString mimetype = list.at(1);
file.prepend(SRCDIR"testfiles/");
// qDebug() << database.findByName(file).type() << database.findByType(mimetype).type() << failByFileName;
if (failByFileName) {
QEXPECT_FAIL("", "Should fail", Continue);
QCOMPARE(database.findByName(file).type(), database.findByType(mimetype).type());
} else
QCOMPARE(database.findByName(file).type(), database.findByType(mimetype).type());
}
}
void QmimeTest::testFindByFile()
{
QMimeDatabase database;
QVERIFY(database.addMimeTypes(SRCDIR"../../freedesktop.org.xml", 0));
QFile testList(SRCDIR"testfiles/list");
QVERIFY(testList.open(QIODevice::ReadOnly));
while (!testList.atEnd()) {
QString string = testList.readLine();
string = string.trimmed();
if (string.startsWith("#") || string.isEmpty())
continue;
QStringList list = string.split(" ", QString::SkipEmptyParts);
QVERIFY(list.size() >= 2);
bool failByFileData = false;
if (list.size() == 3) {
QString xxx = list.at(2);
if (xxx.length() == 3) {
failByFileData = xxx.at(2) == 'x';
}
}
QString file = list.at(0);
QString mimetype = list.at(1);
file.prepend(SRCDIR"testfiles/");
qDebug() << file << database.findByFile(QFileInfo(file)).type() << database.findByType(mimetype).type();
if (failByFileData) {
QEXPECT_FAIL("", "Should fail", Continue);
QCOMPARE(database.findByFile(QFileInfo(file)).type(), database.findByType(mimetype).type());
} else
QCOMPARE(database.findByFile(QFileInfo(file)).type(), database.findByType(mimetype).type());
}
}
QTEST_APPLESS_MAIN(QmimeTest)
#include "tst_qmimetest.moc"
|