File indexing completed on 2025-02-16 13:03:37
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 0016 using namespace KFileMetaData; 0017 0018 QString PopplerExtractorTest::testFilePath(const QString& fileName) const 0019 { 0020 return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QLatin1Char('/') + fileName; 0021 } 0022 0023 void PopplerExtractorTest::testNoExtraction() 0024 { 0025 PopplerExtractor plugin{this}; 0026 0027 QString fileName = testFilePath(QStringLiteral("test.pdf")); 0028 QMimeDatabase mimeDb; 0029 QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name(); 0030 QVERIFY(plugin.mimetypes().contains(mimeType)); 0031 0032 SimpleExtractionResult result(fileName, mimeType, ExtractionResult::ExtractNothing); 0033 plugin.extract(&result); 0034 0035 QCOMPARE(result.types().size(), 1); 0036 QCOMPARE(result.types().constFirst(), Type::Document); 0037 QCOMPARE(result.properties().size(), 0); 0038 } 0039 0040 void PopplerExtractorTest::test() 0041 { 0042 PopplerExtractor plugin{this}; 0043 0044 QString fileName = testFilePath(QStringLiteral("test.pdf")); 0045 QMimeDatabase mimeDb; 0046 QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name(); 0047 QVERIFY(plugin.mimetypes().contains(mimeType)); 0048 0049 SimpleExtractionResult result(fileName, mimeType); 0050 plugin.extract(&result); 0051 0052 QCOMPARE(result.types().size(), 1); 0053 QCOMPARE(result.types().constFirst(), Type::Document); 0054 0055 QCOMPARE(result.text(), QStringLiteral("This is a sample PDF file for KFileMetaData. ")); 0056 QCOMPARE(result.properties().value(Property::Author), QVariant(QStringLiteral("Happy Man"))); 0057 QCOMPARE(result.properties().value(Property::Title), QVariant(QStringLiteral("The Big Brown Bear"))); 0058 QCOMPARE(result.properties().value(Property::Subject), QVariant(QStringLiteral("PDF Metadata"))); 0059 QCOMPARE(result.properties().value(Property::Generator), QVariant(QStringLiteral("LibreOffice 4.2"))); 0060 QCOMPARE(result.properties().value(Property::PageCount), 1); 0061 QDateTime dt(QDate(2014, 07, 01), QTime(13, 38, 50)); 0062 dt.setTimeSpec(Qt::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"