diff --git a/autotests/ffmpegextractortest.h b/autotests/ffmpegextractortest.h --- a/autotests/ffmpegextractortest.h +++ b/autotests/ffmpegextractortest.h @@ -21,6 +21,9 @@ #define FFMPEGEXTRACTORTEST_H #include +#include + +namespace KFileMetaData { class ffmpegExtractorTest : public QObject { @@ -31,6 +34,10 @@ void testVideoProperties_data(); void testMetaData(); void testMetaData_data(); + +private: + QMimeDatabase mimeDb; }; +} // namespace KFileMetaData #endif // FFMPEGEXTRACTORTEST_H diff --git a/autotests/ffmpegextractortest.cpp b/autotests/ffmpegextractortest.cpp --- a/autotests/ffmpegextractortest.cpp +++ b/autotests/ffmpegextractortest.cpp @@ -21,6 +21,7 @@ #include "simpleextractionresult.h" #include "indexerextractortestsconfig.h" #include "extractors/ffmpegextractor.h" +#include "mimeutils.h" #include @@ -39,34 +40,33 @@ void ffmpegExtractorTest::testVideoProperties_data() { QTest::addColumn("fileType"); - QTest::addColumn("mimeType"); QTest::addRow("WebM") - << QStringLiteral("webm") - << QStringLiteral("video/webm"); + << QStringLiteral("webm"); QTest::addRow("Matroska Video") - << QStringLiteral("mkv") - << QStringLiteral("video/x-matroska"); + << QStringLiteral("mkv"); QTest::addRow("Vorbis Video") - << QStringLiteral("ogv") - << QStringLiteral("video/ogg"); + << QStringLiteral("ogv"); QTest::addRow("MPEG Transport") - << QStringLiteral("ts") - << QStringLiteral("video/mp2t"); + << QStringLiteral("ts"); } // only for testing of intrinsic video properties void ffmpegExtractorTest::testVideoProperties() { QFETCH(QString, fileType); - QFETCH(QString, mimeType); + + QString fileName = testFilePath(QStringLiteral("test"), fileType); + QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name(); FFmpegExtractor plugin{this}; - SimpleExtractionResult result(testFilePath(QLatin1String("test"), fileType), mimeType); + QVERIFY(plugin.mimetypes().contains(plugin.getSupportedMimeType(mimeType))); + + SimpleExtractionResult result(fileName, mimeType); plugin.extract(&result); QCOMPARE(result.types().size(), 1); @@ -81,29 +81,27 @@ void ffmpegExtractorTest::testMetaData_data() { QTest::addColumn("fileType"); - QTest::addColumn("mimeType"); QTest::addRow("WebM") - << QStringLiteral("webm") - << QStringLiteral("video/webm"); + << QStringLiteral("webm"); QTest::addRow("Matroska Video") - << QStringLiteral("mkv") - << QStringLiteral("video/x-matroska"); + << QStringLiteral("mkv"); QTest::addRow("Vorbis Video") - << QStringLiteral("ogv") - << QStringLiteral("video/ogg"); + << QStringLiteral("ogv"); } void ffmpegExtractorTest::testMetaData() { QFETCH(QString, fileType); - QFETCH(QString, mimeType); + + QString fileName = testFilePath(QStringLiteral("test"), fileType); + QString mimeType = MimeUtils::strictMimeType(fileName, mimeDb).name(); FFmpegExtractor plugin{this}; - SimpleExtractionResult result(testFilePath(QLatin1String("test"), fileType), mimeType); + SimpleExtractionResult result(fileName, mimeType); plugin.extract(&result); QEXPECT_FAIL("Vorbis Video", "Not yet supported", Abort); diff --git a/src/extractors/ffmpegextractor.h b/src/extractors/ffmpegextractor.h --- a/src/extractors/ffmpegextractor.h +++ b/src/extractors/ffmpegextractor.h @@ -37,6 +37,8 @@ void extract(ExtractionResult* result) override; QStringList mimetypes() const override; + + friend class ffmpegExtractorTest; }; }