File indexing completed on 2024-04-28 15:22:16

0001 /*
0002     SPDX-FileCopyrightText: 2018 Stefan BrĂ¼ns <stefan.bruens@rwth-aachen.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-or-later
0005 */
0006 
0007 #include "postscriptdscextractortest.h"
0008 #include "simpleextractionresult.h"
0009 #include "indexerextractortestsconfig.h"
0010 #include "extractors/postscriptdscextractor.h"
0011 #include "mimeutils.h"
0012 
0013 #include <QTest>
0014 
0015 using namespace KFileMetaData;
0016 
0017 QString PostscriptDscExtractorTest::testFilePath(const QString& fileName) const
0018 {
0019     return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QLatin1Char('/') + fileName;
0020 }
0021 
0022 void PostscriptDscExtractorTest::testNoExtraction()
0023 {
0024     DscExtractor plugin{this};
0025 
0026     QString fileName = testFilePath(QStringLiteral("test.ps"));
0027     QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name();
0028     QVERIFY(plugin.mimetypes().contains(mimeType));
0029 
0030     SimpleExtractionResult result(fileName, mimeType, ExtractionResult::ExtractNothing);
0031     plugin.extract(&result);
0032 
0033     QCOMPARE(result.types().size(), 1);
0034     QCOMPARE(result.types().constFirst(), Type::Document);
0035     QCOMPARE(result.properties().size(), 0);
0036 }
0037 
0038 void PostscriptDscExtractorTest::testPS()
0039 {
0040     DscExtractor plugin{this};
0041 
0042     QString fileName = testFilePath(QStringLiteral("test.ps"));
0043     QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name();
0044     QVERIFY(plugin.mimetypes().contains(mimeType));
0045 
0046     SimpleExtractionResult result(fileName, mimeType);
0047     plugin.extract(&result);
0048 
0049     QCOMPARE(result.types().size(), 1);
0050     QCOMPARE(result.types().constFirst(), Type::Document);
0051 
0052     QCOMPARE(result.properties().value(Property::Title).toString(), QStringLiteral("The Big Brown Bear"));
0053     QCOMPARE(result.properties().value(Property::PageCount).toInt(), 2);
0054 
0055     QDateTime dt(QDate(2018, 10, 28), QTime(21, 13, 39));
0056     dt.setOffsetFromUtc(+3600);
0057     QCOMPARE(result.properties().value(Property::CreationDate), QVariant(dt));
0058 
0059     QCOMPARE(result.properties().size(), 3);
0060 }
0061 
0062 void PostscriptDscExtractorTest::testEPS()
0063 {
0064     DscExtractor plugin{this};
0065 
0066     QString fileName = testFilePath(QStringLiteral("test.eps"));
0067     QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name();
0068     QVERIFY(plugin.mimetypes().contains(mimeType));
0069 
0070     SimpleExtractionResult result(fileName, mimeType);
0071     plugin.extract(&result);
0072 
0073     QCOMPARE(result.types().size(), 1);
0074     QCOMPARE(result.types().constFirst(), Type::Image);
0075 
0076     QCOMPARE(result.properties().value(Property::Title).toString(), QStringLiteral("The Big Brown Bear"));
0077     QCOMPARE(result.properties().value(Property::PageCount).toInt(), 1);
0078 
0079     QDateTime dt(QDate(2018, 10, 28), QTime(21, 13, 39));
0080     dt.setOffsetFromUtc(-5400);
0081     QCOMPARE(result.properties().value(Property::CreationDate), QVariant(dt));
0082     QCOMPARE(result.properties().size(), 3);
0083 }
0084 
0085 QTEST_GUILESS_MAIN(PostscriptDscExtractorTest)
0086 
0087 #include "moc_postscriptdscextractortest.cpp"