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 "MarbleModel.h"
#include "PluginManager.h"
#include "AbstractDataPlugin.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" );
foreach ( const RenderPlugin *plugin, m_model.pluginManager()->renderPlugins() ) {
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"
|