File indexing completed on 2025-02-09 04:19:00
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"