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"