Warning, file /frameworks/knewstuff/autotests/core/knewstuffenginetest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     This file is part of KNewStuff2.
0003     SPDX-FileCopyrightText: 2008 Jeremy Whiting <jpwhiting@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-or-later
0006 */
0007 
0008 #include <QSignalSpy>
0009 #include <QTest>
0010 #include <QtGlobal>
0011 
0012 #include "engine.h"
0013 #include "entryinternal.h"
0014 
0015 using namespace KNSCore;
0016 
0017 class EngineTest : public QObject
0018 {
0019     Q_OBJECT
0020 public:
0021     Engine *engine = nullptr;
0022     const QString dataDir = QStringLiteral(DATA_DIR);
0023 
0024 private Q_SLOTS:
0025     void initTestCase();
0026     void testPropertiesReading();
0027     void testProviderFileLoading();
0028 };
0029 
0030 void EngineTest::initTestCase()
0031 {
0032     engine = new Engine(this);
0033     QVERIFY(engine->init(dataDir + "enginetest.knsrc"));
0034     QCOMPARE(engine->busyState(), Engine::BusyOperation::LoadingData);
0035     QSignalSpy providersLoaded(engine, &Engine::signalProvidersLoaded);
0036     QVERIFY(providersLoaded.wait());
0037     QCOMPARE(engine->busyState(), Engine::BusyState());
0038 }
0039 
0040 void EngineTest::testPropertiesReading()
0041 {
0042     QCOMPARE(engine->name(), QStringLiteral("InstallCommands"));
0043     QCOMPARE(engine->categories(), QStringList({"KDE Wallpaper 1920x1200", "KDE Wallpaper 1600x1200"}));
0044     QCOMPARE(engine->useLabel(), QStringLiteral("UseLabelTest"));
0045     QVERIFY(engine->hasAdoptionCommand());
0046 }
0047 
0048 void EngineTest::testProviderFileLoading()
0049 {
0050     const QString providerId = QUrl::fromLocalFile(dataDir + "entry.xml").toString();
0051     QSharedPointer<Provider> provider = engine->provider(providerId);
0052     QVERIFY(provider);
0053     QCOMPARE(engine->defaultProvider(), provider);
0054 
0055     KNSCore::EntryInternal::List list;
0056     connect(
0057         engine,
0058         &Engine::signalEntriesLoaded,
0059         this,
0060         [&list](const KNSCore::EntryInternal::List &loaded) {
0061             list = loaded;
0062         },
0063         Qt::DirectConnection);
0064 
0065     engine->setSearchTerm(QStringLiteral("Entry 4"));
0066     QSignalSpy spy(engine, &Engine::signalEntriesLoaded);
0067     QVERIFY(spy.wait());
0068     QCOMPARE(list.size(), 1);
0069     QCOMPARE(list.constFirst().name(), QStringLiteral("Entry 4 (ghns included)"));
0070 }
0071 
0072 QTEST_MAIN(EngineTest)
0073 
0074 #include "knewstuffenginetest.moc"