File indexing completed on 2025-02-16 13:03:36
0001 /* 0002 SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "office2007extractortest.h" 0008 #include "simpleextractionresult.h" 0009 #include "indexerextractortestsconfig.h" 0010 #include "extractors/office2007extractor.h" 0011 #include "mimeutils.h" 0012 0013 #include <QTest> 0014 #include <QMimeDatabase> 0015 0016 using namespace KFileMetaData; 0017 0018 QString Office2007ExtractorTest::testFilePath(const QString& fileName) const 0019 { 0020 return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QLatin1Char('/') + fileName; 0021 } 0022 0023 void Office2007ExtractorTest::testNoExtraction() 0024 { 0025 Office2007Extractor plugin{this}; 0026 0027 QString fileName = testFilePath(QStringLiteral("test_libreoffice.docx")); 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().at(0), Type::Document); 0037 QCOMPARE(result.properties().size(), 0); 0038 } 0039 0040 void Office2007ExtractorTest::test() 0041 { 0042 Office2007Extractor plugin{this}; 0043 0044 QString fileName = testFilePath(QStringLiteral("test_libreoffice.docx")); 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().at(0), Type::Document); 0054 0055 QCOMPARE(result.properties().value(Property::Title), QVariant(QStringLiteral("KFileMetaData Title"))); 0056 QCOMPARE(result.properties().value(Property::Subject), QVariant(QStringLiteral("KFileMetaData Subject"))); 0057 QCOMPARE(result.properties().value(Property::Keywords), QVariant(QStringLiteral("KFileMetaData keyword"))); 0058 QCOMPARE(result.properties().value(Property::Description), QVariant(QStringLiteral("KFileMetaData comment"))); 0059 QCOMPARE(result.properties().value(Property::Language), QVariant(QStringLiteral("en-US"))); 0060 QVERIFY(result.properties().value(Property::Generator).toString().contains(QStringLiteral("LibreOffice"))); 0061 QCOMPARE(result.properties().value(Property::PageCount), QVariant(1)); 0062 QCOMPARE(result.properties().value(Property::WordCount), QVariant(4)); 0063 QCOMPARE(result.properties().value(Property::LineCount), QVariant(1)); 0064 0065 QDateTime dt(QDate(2014, 07, 01), QTime(17, 37, 40)); 0066 dt.setTimeSpec(Qt::UTC); 0067 QCOMPARE(result.properties().value(Property::CreationDate), QVariant(dt)); 0068 0069 QCOMPARE(result.properties().size(), 10); 0070 QCOMPARE(result.text(), QStringLiteral("Test file for KFileMetaData. ")); 0071 } 0072 0073 void Office2007ExtractorTest::testMetaDataOnly() 0074 { 0075 Office2007Extractor plugin{this}; 0076 0077 SimpleExtractionResult result(testFilePath(QStringLiteral("test_libreoffice.docx")), 0078 QStringLiteral("application/vnd.openxmlformats-officedocument.wordprocessingml.document"), 0079 ExtractionResult::ExtractMetaData); 0080 0081 plugin.extract(&result); 0082 0083 QVERIFY(!result.types().isEmpty()); 0084 QVERIFY(!result.properties().isEmpty()); 0085 QVERIFY(result.text().isEmpty()); 0086 } 0087 0088 QTEST_GUILESS_MAIN(Office2007ExtractorTest) 0089 0090 #include "moc_office2007extractortest.cpp"