Warning, file /utilities/ark/autotests/testhelper/abstractaddtest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2016 Vladyslav Batyrenko <mvlabat@gmail.com>
0003     SPDX-FileCopyrightText: 2016 Elvis Angelaccio <elvis.angelaccio@kde.org>
0004 
0005     SPDX-License-Identifier: BSD-2-Clause
0006 */
0007 
0008 #include "abstractaddtest.h"
0009 
0010 #include "jobs.h"
0011 #include "testhelper.h"
0012 
0013 #include <QMimeDatabase>
0014 #include <QTest>
0015 
0016 using namespace Kerfuffle;
0017 
0018 QStringList AbstractAddTest::getEntryPaths(Archive *archive)
0019 {
0020     QStringList paths;
0021     auto loadJob = Archive::load(archive->fileName());
0022     QObject::connect(loadJob, &Job::newEntry, [&paths](Archive::Entry *entry) {
0023         paths << entry->fullPath();
0024     });
0025     TestHelper::startAndWaitForResult(loadJob);
0026 
0027     return paths;
0028 }
0029 
0030 void AbstractAddTest::setupRows(const QString &testName,
0031                                 const QString &archiveName,
0032                                 const QVector<Archive::Entry *> &targetEntries,
0033                                 Archive::Entry *destination,
0034                                 const QStringList &expectedNewPaths,
0035                                 uint numberOfEntries) const
0036 {
0037     // Repeat the same test case for each format and for each plugin supporting the format.
0038     const QStringList formats = TestHelper::testFormats();
0039     for (const QString &format : formats) {
0040         const QString filename = QStringLiteral("%1.%2").arg(archiveName, format);
0041         const auto mime = QMimeDatabase().mimeTypeForFile(filename, QMimeDatabase::MatchExtension);
0042 
0043         const auto plugins = m_pluginManager.preferredWritePluginsFor(mime);
0044         for (const auto plugin : plugins) {
0045             QTest::newRow(QStringLiteral("%1 (%2, %3)").arg(testName, format, plugin->metaData().pluginId()).toUtf8().constData())
0046                 << filename << plugin << targetEntries << destination << expectedNewPaths << numberOfEntries;
0047         }
0048     }
0049 }
0050 
0051 #include "moc_abstractaddtest.cpp"