File indexing completed on 2025-04-20 06:42:24
0001 /* 0002 SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "popplerextractortest.h" 0008 #include "simpleextractionresult.h" 0009 #include "indexerextractortestsconfig.h" 0010 #include "extractors/popplerextractor.h" 0011 #include "mimeutils.h" 0012 0013 #include <QTest> 0014 #include <QMimeDatabase> 0015 #include <QTimeZone> 0016 0017 using namespace KFileMetaData; 0018 0019 QString PopplerExtractorTest::testFilePath(const QString& fileName) const 0020 { 0021 return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QLatin1Char('/') + fileName; 0022 } 0023 0024 void PopplerExtractorTest::testNoExtraction() 0025 { 0026 PopplerExtractor plugin{this}; 0027 0028 QString fileName = testFilePath(QStringLiteral("test.pdf")); 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::Document); 0038 QCOMPARE(result.properties().size(), 0); 0039 } 0040 0041 void PopplerExtractorTest::test() 0042 { 0043 PopplerExtractor plugin{this}; 0044 0045 QString fileName = testFilePath(QStringLiteral("test.pdf")); 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::Document); 0055 0056 QCOMPARE(result.text(), QStringLiteral("This is a sample PDF file for KFileMetaData. ")); 0057 QCOMPARE(result.properties().value(Property::Author), QVariant(QStringLiteral("Happy Man"))); 0058 QCOMPARE(result.properties().value(Property::Title), QVariant(QStringLiteral("The Big Brown Bear"))); 0059 QCOMPARE(result.properties().value(Property::Subject), QVariant(QStringLiteral("PDF Metadata"))); 0060 QCOMPARE(result.properties().value(Property::Generator), QVariant(QStringLiteral("LibreOffice 4.2"))); 0061 QCOMPARE(result.properties().value(Property::PageCount), 1); 0062 QDateTime dt(QDate(2014, 07, 01), QTime(13, 38, 50), QTimeZone::UTC); 0063 QCOMPARE(result.properties().value(Property::CreationDate), QVariant(dt)); 0064 0065 QCOMPARE(result.properties().size(), 6); 0066 } 0067 0068 void PopplerExtractorTest::testMetaDataOnly() 0069 { 0070 PopplerExtractor plugin{this}; 0071 0072 SimpleExtractionResult result(testFilePath("test.pdf"), "application/pdf", ExtractionResult::ExtractMetaData); 0073 plugin.extract(&result); 0074 0075 QCOMPARE(result.types().size(), 1); 0076 QVERIFY(result.text().isEmpty()); 0077 QCOMPARE(result.properties().size(), 6); 0078 0079 } 0080 0081 QTEST_GUILESS_MAIN(PopplerExtractorTest) 0082 0083 #include "moc_popplerextractortest.cpp"