File indexing completed on 2023-09-24 04:10:26
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"