File indexing completed on 2024-05-05 03:54:35

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 #include <QTimeZone>
0015 
0016 using namespace KFileMetaData;
0017 
0018 QString PostscriptDscExtractorTest::testFilePath(const QString& fileName) const
0019 {
0020     return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QLatin1Char('/') + fileName;
0021 }
0022 
0023 void PostscriptDscExtractorTest::testNoExtraction()
0024 {
0025     DscExtractor plugin{this};
0026 
0027     QString fileName = testFilePath(QStringLiteral("test.ps"));
0028     QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name();
0029     QVERIFY(plugin.mimetypes().contains(mimeType));
0030 
0031     SimpleExtractionResult result(fileName, mimeType, ExtractionResult::ExtractNothing);
0032     plugin.extract(&result);
0033 
0034     QCOMPARE(result.types().size(), 1);
0035     QCOMPARE(result.types().constFirst(), Type::Document);
0036     QCOMPARE(result.properties().size(), 0);
0037 }
0038 
0039 void PostscriptDscExtractorTest::testPS()
0040 {
0041     DscExtractor plugin{this};
0042 
0043     QString fileName = testFilePath(QStringLiteral("test.ps"));
0044     QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name();
0045     QVERIFY(plugin.mimetypes().contains(mimeType));
0046 
0047     SimpleExtractionResult result(fileName, mimeType);
0048     plugin.extract(&result);
0049 
0050     QCOMPARE(result.types().size(), 1);
0051     QCOMPARE(result.types().constFirst(), Type::Document);
0052 
0053     QCOMPARE(result.properties().value(Property::Title).toString(), QStringLiteral("The Big Brown Bear"));
0054     QCOMPARE(result.properties().value(Property::PageCount).toInt(), 2);
0055 
0056     QDateTime dt(QDate(2018, 10, 28), QTime(21, 13, 39), QTimeZone::fromSecondsAheadOfUtc(+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), QTimeZone::fromSecondsAheadOfUtc(-5400));
0080     QCOMPARE(result.properties().value(Property::CreationDate), QVariant(dt));
0081     QCOMPARE(result.properties().size(), 3);
0082 }
0083 
0084 QTEST_GUILESS_MAIN(PostscriptDscExtractorTest)
0085 
0086 #include "moc_postscriptdscextractortest.cpp"