1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
// SPDX-License-Identifier: LGPL-2.1-or-later
//
// SPDX-FileCopyrightText: 2012 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
//
#include "AbstractDataPlugin.h"
#include "MarbleModel.h"
#include "PluginManager.h"
#include <QMetaType>
#include <QTest>
Q_DECLARE_METATYPE(const Marble::AbstractDataPlugin *)
namespace Marble
{
class AbstractDataPluginTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void initialize_data();
void initialize();
private:
MarbleModel m_model;
};
void AbstractDataPluginTest::initialize_data()
{
QTest::addColumn<const AbstractDataPlugin *>("factory");
const auto plugins = m_model.pluginManager()->renderPlugins();
for (const RenderPlugin *plugin : plugins) {
const AbstractDataPlugin *const dataPlugin = qobject_cast<const AbstractDataPlugin *>(plugin);
if (!dataPlugin)
continue;
QTest::newRow(plugin->nameId().toLatin1().constData()) << dataPlugin;
}
}
void AbstractDataPluginTest::initialize()
{
QFETCH(const AbstractDataPlugin *, factory);
RenderPlugin *const instance = factory->newInstance(&m_model);
AbstractDataPlugin *const dataInstance = qobject_cast<AbstractDataPlugin *>(instance);
QVERIFY(dataInstance != nullptr);
QVERIFY(dataInstance->model() == nullptr);
dataInstance->initialize();
QVERIFY(dataInstance->model() != nullptr);
}
}
QTEST_MAIN(Marble::AbstractDataPluginTest)
#include "AbstractDataPluginTest.moc"
|