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
|
/*
SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in>
SPDX-License-Identifier: LGPL-2.1-or-later
*/
#include "file.h"
#include "document.h"
#include "database.h"
#include "transaction.h"
#include "idutils.h"
#include "global.h"
#include <QTest>
#include <QTemporaryFile>
#include <QTemporaryDir>
#include <QJsonDocument>
#include <QJsonObject>
using namespace Baloo;
class FileFetchJobTest : public QObject
{
Q_OBJECT
QTemporaryDir dir;
private:
inline QMap<QString, QVariant> variantToPropertyMap(const KFileMetaData::PropertyMap& propMap)
{
QMap<QString, QVariant> varMap;
for (auto it = propMap.constBegin(); it != propMap.constEnd(); ++it) {
int p = static_cast<int>(it.key());
varMap.insert(QString::number(p), it.value());
}
return varMap;
}
private Q_SLOTS:
void test();
};
void FileFetchJobTest::test()
{
using namespace KFileMetaData;
setenv("BALOO_DB_PATH", dir.path().toStdString().c_str(), 1);
PropertyMap map;
map.insert(Property::Album, QLatin1String("value1"));
map.insert(Property::Artist, QLatin1String("value2"));
QJsonObject jo = QJsonObject::fromVariantMap(variantToPropertyMap(map));
QJsonDocument jdoc;
jdoc.setObject(jo);
QByteArray json = jdoc.toJson();
QVERIFY(!json.isEmpty());
QTemporaryFile tempFile;
tempFile.open();
Document doc;
doc.setData(json);
doc.setUrl(tempFile.fileName().toUtf8());
doc.setId(filePathToId(doc.url()));
doc.addTerm("testterm");
doc.addFileNameTerm("filename");
doc.setMTime(1);
doc.setCTime(1);
{
Database db(fileIndexDbPath());
db.open(Database::CreateDatabase);
Transaction tr(db, Transaction::ReadWrite);
tr.addDocument(doc);
tr.commit();
}
File file(tempFile.fileName());
QVERIFY(file.load());
QCOMPARE(file.properties(), PropertyMultiMap(map));
}
QTEST_MAIN(FileFetchJobTest)
#include "filefetchjobtest.moc"
|