File indexing completed on 2024-05-05 03:52:08

0001 /*
0002     SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-or-later
0005 */
0006 
0007 #include "propertydata.h"
0008 
0009 #include "file.h"
0010 #include "document.h"
0011 #include "database.h"
0012 #include "transaction.h"
0013 #include "idutils.h"
0014 #include "global.h"
0015 
0016 #include <QJsonDocument>
0017 #include <QTest>
0018 #include <QTemporaryFile>
0019 #include <QTemporaryDir>
0020 
0021 using namespace Baloo;
0022 
0023 class FileFetchJobTest : public QObject
0024 {
0025     Q_OBJECT
0026 
0027     QTemporaryDir dir;
0028 
0029 private Q_SLOTS:
0030     void test();
0031 };
0032 
0033 void FileFetchJobTest::test()
0034 {
0035     using namespace KFileMetaData;
0036 
0037     setenv("BALOO_DB_PATH", dir.path().toStdString().c_str(), 1);
0038 
0039     KFileMetaData::PropertyMultiMap map;
0040     map.insert(Property::Album, QStringLiteral("value1"));
0041     map.insert(Property::Artist, QStringLiteral("value2"));
0042 
0043     const QJsonObject jo = propertyMapToJson(map);
0044     const QJsonDocument jdoc(jo);
0045 
0046     QByteArray json = jdoc.toJson();
0047     QVERIFY(!json.isEmpty());
0048 
0049     QTemporaryFile tempFile;
0050     tempFile.open();
0051 
0052     Document doc;
0053     doc.setData(json);
0054     doc.setUrl(QFile::encodeName(tempFile.fileName()));
0055     doc.setId(filePathToId(doc.url()));
0056     doc.addTerm("testterm");
0057     doc.addFileNameTerm("filename");
0058     doc.setMTime(1);
0059     doc.setCTime(1);
0060 
0061     auto lastSlash = doc.url().lastIndexOf('/');
0062     auto parentId = filePathToId(doc.url().left(lastSlash));
0063 
0064     {
0065         Database db(fileIndexDbPath());
0066         db.open(Database::CreateDatabase);
0067 
0068         Transaction tr(db, Transaction::ReadWrite);
0069         QVERIFY(parentId);
0070         doc.setParentId(parentId);
0071         tr.addDocument(doc);
0072         tr.commit();
0073     }
0074 
0075     File file(tempFile.fileName());
0076     QVERIFY(file.load());
0077     QCOMPARE(file.properties(), map);
0078 }
0079 
0080 QTEST_MAIN(FileFetchJobTest)
0081 
0082 #include "filefetchjobtest.moc"