// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #include <QString> #include <QtTest> #include <QCoreApplication> #include "libvideostitch-gui/centralwidget/formats/extensionhandlers/extensionhandler.hpp" class VideostitchTestExtensions : public QObject { Q_OBJECT public: VideostitchTestExtensions(); private: void runTest(); private Q_SLOTS: void testExtensionHandlerMp4(); void testExtensionHandlerMp4_data(); void testExtensionHandlerJpeg(); void testExtensionHandlerJpeg_data(); void testExtensionHandlerTiff(); void testExtensionHandlerTiff_data(); void testExtensionHandlerPam(); void testExtensionHandlerPam_data(); void testExtensionHandlerPpm(); void testExtensionHandlerPpm_data(); void testExtensionHandlerRaw(); void testExtensionHandlerRaw_data(); void testExtensionHandlerYuv(); void testExtensionHandlerYuv_data(); }; VideostitchTestExtensions::VideostitchTestExtensions() {} void VideostitchTestExtensions::runTest() { QFETCH(QString, input); QFETCH(QString, format); QFETCH(QString, result); ExtensionHandler h; h.init(); QCOMPARE(h.stripBasename(input, format), result); QCOMPARE(h.handle(result, format), input); } void VideostitchTestExtensions::testExtensionHandlerMp4() { runTest(); } void VideostitchTestExtensions::testExtensionHandlerMp4_data() { QTest::addColumn<QString>("input"); QTest::addColumn<QString>("format"); QTest::addColumn<QString>("result"); QTest::newRow("mp4 lower") << "output.mp4" << "mp4" << "output"; QTest::newRow("mp4 higher") << "output.mp4" << "mp4" << "output"; QTest::newRow("mp4 mixed") << "output.mp4" << "mp4" << "output"; QTest::newRow("mp4 rand") << "y1ZukndLj5.mp4" << "mp4" << "y1ZukndLj5"; } void VideostitchTestExtensions::testExtensionHandlerJpeg() { runTest(); } void VideostitchTestExtensions::testExtensionHandlerJpeg_data() { QTest::addColumn<QString>("input"); QTest::addColumn<QString>("format"); QTest::addColumn<QString>("result"); QTest::newRow("jpg lower") << "output-%frame%.jpg" << "jpg" << "output"; QTest::newRow("jpg higher") << "output-%frame%.jpg" << "jpg" << "output"; QTest::newRow("jpg mixed") << "output-%frame%.jpg" << "jpg" << "output"; QTest::newRow("jpg rand") << "y1ZukndLj5-%frame%.jpg" << "jpg" << "y1ZukndLj5"; } void VideostitchTestExtensions::testExtensionHandlerTiff() { runTest(); } void VideostitchTestExtensions::testExtensionHandlerTiff_data() { QTest::addColumn<QString>("input"); QTest::addColumn<QString>("format"); QTest::addColumn<QString>("result"); QTest::newRow("tiff lower") << "output-%frame%.tif" << "tif" << "output"; QTest::newRow("tiff higher") << "output-%frame%.tif" << "tif" << "output"; QTest::newRow("tiff mixed") << "output-%frame%.tif" << "tif" << "output"; QTest::newRow("tiff rand") << "y1ZukndLj5-%frame%.tif" << "tif" << "y1ZukndLj5"; } void VideostitchTestExtensions::testExtensionHandlerPpm() { runTest(); } void VideostitchTestExtensions::testExtensionHandlerPpm_data() { QTest::addColumn<QString>("input"); QTest::addColumn<QString>("format"); QTest::addColumn<QString>("result"); QTest::newRow("ppm lower") << "output-%frame%.ppm" << "ppm" << "output"; QTest::newRow("ppm higher") << "output-%frame%.ppm" << "ppm" << "output"; QTest::newRow("ppm mixed") << "output-%frame%.ppm" << "ppm" << "output"; QTest::newRow("ppm rand") << "y1ZukndLj5-%frame%.ppm" << "ppm" << "y1ZukndLj5"; } void VideostitchTestExtensions::testExtensionHandlerPam() { runTest(); } void VideostitchTestExtensions::testExtensionHandlerPam_data() { QTest::addColumn<QString>("input"); QTest::addColumn<QString>("format"); QTest::addColumn<QString>("result"); QTest::newRow("pam lower") << "output-%frame%.pam" << "pam" << "output"; QTest::newRow("pam higher") << "output-%frame%.pam" << "pam" << "output"; QTest::newRow("pam mixed") << "output-%frame%.pam" << "pam" << "output"; QTest::newRow("pam rand") << "y1ZukndLj5-%frame%.pam" << "pam" << "y1ZukndLj5"; } void VideostitchTestExtensions::testExtensionHandlerRaw() { runTest(); } void VideostitchTestExtensions::testExtensionHandlerRaw_data() { QTest::addColumn<QString>("input"); QTest::addColumn<QString>("format"); QTest::addColumn<QString>("result"); QTest::newRow("raw lower") << "output.abgr" << "raw" << "output"; QTest::newRow("raw higher") << "output.abgr" << "raw" << "output"; QTest::newRow("raw mixed") << "output.abgr" << "raw" << "output"; QTest::newRow("raw rand") << "y1ZukndLj5.abgr" << "raw" << "y1ZukndLj5"; } void VideostitchTestExtensions::testExtensionHandlerYuv() { runTest(); } void VideostitchTestExtensions::testExtensionHandlerYuv_data() { QTest::addColumn<QString>("input"); QTest::addColumn<QString>("format"); QTest::addColumn<QString>("result"); QTest::newRow("raw lower") << "output-%frame%y/u/v.ppm" << "yuv420p" << "output"; QTest::newRow("raw higher") << "output-%frame%y/u/v.ppm" << "yuv420p" << "output"; QTest::newRow("raw mixed") << "output-%frame%y/u/v.ppm" << "yuv420p" << "output"; QTest::newRow("raw rand") << "y1ZukndLj5-%frame%y/u/v.ppm" << "yuv420p" << "y1ZukndLj5"; } QTEST_APPLESS_MAIN(VideostitchTestExtensions) #include "extensionsTest.moc"