File indexing completed on 2024-05-05 03:54:35
0001 /* 0002 SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "extractors/kritaextractor.h" 0008 #include "indexerextractortestsconfig.h" 0009 #include "mimeutils.h" 0010 #include "kritaextractortest.h" 0011 #include "simpleextractionresult.h" 0012 0013 #include <QMimeDatabase> 0014 #include <QTest> 0015 0016 using namespace KFileMetaData; 0017 using namespace KFileMetaData::Property; 0018 0019 QString KritaExtractorTest::testFilePath(const QString &fileName) const 0020 { 0021 return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QLatin1Char('/') + fileName; 0022 } 0023 0024 void KritaExtractorTest::testNoExtraction() 0025 { 0026 KritaExtractor plugin{this}; 0027 0028 QString fileName = testFilePath(QStringLiteral("test.kra")); 0029 QMimeDatabase mimeDb; 0030 QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name(); 0031 QVERIFY(plugin.mimetypes().contains(mimeType)); 0032 0033 SimpleExtractionResult result(fileName, mimeType, ExtractionResult::ExtractNothing); 0034 plugin.extract(&result); 0035 0036 QCOMPARE(result.types().size(), 1); 0037 QCOMPARE(result.types().constFirst(), Type::Image); 0038 QCOMPARE(result.properties().size(), 0); 0039 } 0040 0041 void KritaExtractorTest::test() 0042 { 0043 KritaExtractor plugin{this}; 0044 0045 QString fileName = testFilePath(QStringLiteral("test.kra")); 0046 QMimeDatabase mimeDb; 0047 QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name(); 0048 QVERIFY(plugin.mimetypes().contains(mimeType)); 0049 0050 SimpleExtractionResult result(fileName, mimeType); 0051 plugin.extract(&result); 0052 0053 QCOMPARE(result.types().size(), 1); 0054 QCOMPARE(result.types().constFirst(), Type::Image); 0055 0056 QCOMPARE(result.properties().value(Width).toInt(), 25); 0057 QCOMPARE(result.properties().value(Height).toInt(), 50); 0058 QCOMPARE(result.properties().value(Author).toString(), QStringLiteral("Konqi")); 0059 QCOMPARE(result.properties().value(License).toString(), QStringLiteral("License")); 0060 QCOMPARE(result.properties().value(Description).toString(), QStringLiteral("Description")); 0061 QCOMPARE(result.properties().value(Keywords).toString(), QStringLiteral("Keyword")); 0062 0063 QDateTime dt(QDate(2023, 5, 26), QTime(14, 55, 31)); 0064 QCOMPARE(result.properties().value(CreationDate).userType(), QMetaType::QDateTime); 0065 QCOMPARE(result.properties().value(CreationDate).toDateTime(), dt); 0066 } 0067 0068 QTEST_GUILESS_MAIN(KritaExtractorTest) 0069 0070 #include "moc_kritaextractortest.cpp"