File indexing completed on 2024-03-24 03:54:44

0001 /*
0002  * SPDX-FileCopyrightText: 2014-2015 David Rosca <nowrep@gmail.com>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 #include "obexmanagertest.h"
0008 #include "autotests.h"
0009 #include "initobexmanagerjob.h"
0010 #include "obexmanager.h"
0011 
0012 #include <QTest>
0013 
0014 namespace BluezQt
0015 {
0016 extern void bluezqt_initFakeBluezTestRun();
0017 }
0018 
0019 using namespace BluezQt;
0020 
0021 void ObexManagerTest::initTestCase()
0022 {
0023     bluezqt_initFakeBluezTestRun();
0024     FakeBluez::start(); // to check that it works
0025 }
0026 
0027 void ObexManagerTest::cleanup()
0028 {
0029     FakeBluez::stop();
0030 }
0031 
0032 void ObexManagerTest::obexNotRunningTest()
0033 {
0034     // org.bluez.obex is not running at all
0035     // expected: init successful
0036     ObexManager *manager = new ObexManager;
0037     InitObexManagerJob *job = manager->init();
0038     job->exec();
0039 
0040     QVERIFY(!job->error());
0041     QVERIFY(manager->isInitialized());
0042     QVERIFY(!manager->isOperational());
0043 
0044     delete manager;
0045 }
0046 
0047 void ObexManagerTest::obexNotExportingInterfacesTest()
0048 {
0049     // org.bluez.obex is running, but it does not export any interfaces
0050     // expected: init error
0051     FakeBluez::start();
0052     FakeBluez::runTest(QStringLiteral("obex-not-exporting-interfaces"));
0053 
0054     ObexManager *manager = new ObexManager;
0055     InitObexManagerJob *job = manager->init();
0056     job->exec();
0057 
0058     QVERIFY(job->error());
0059     QVERIFY(!manager->isInitialized());
0060     QVERIFY(!manager->isOperational());
0061 
0062     delete manager;
0063 }
0064 
0065 void ObexManagerTest::obexEmptyManagedObjectsTest()
0066 {
0067     // org.bluez.obex exports ObjectManager, but there is no AgentManager1 nor Client1
0068     // expected: init error
0069     FakeBluez::start();
0070     FakeBluez::runTest(QStringLiteral("obex-empty-managed-objects"));
0071 
0072     ObexManager *manager = new ObexManager;
0073     InitObexManagerJob *job = manager->init();
0074     job->exec();
0075 
0076     QVERIFY(job->error());
0077     QVERIFY(!manager->isInitialized());
0078     QVERIFY(!manager->isOperational());
0079 
0080     delete manager;
0081 }
0082 
0083 void ObexManagerTest::obexNoClientTest()
0084 {
0085     // org.bluez.obex exports ObjectManager and AgentManager1, but there is no Client1
0086     // expected: init error
0087     FakeBluez::start();
0088     FakeBluez::runTest(QStringLiteral("obex-no-client"));
0089 
0090     ObexManager *manager = new ObexManager;
0091     InitObexManagerJob *job = manager->init();
0092     job->exec();
0093 
0094     QVERIFY(job->error());
0095     QVERIFY(!manager->isInitialized());
0096     QVERIFY(!manager->isOperational());
0097 
0098     delete manager;
0099 }
0100 
0101 void ObexManagerTest::obexNoAgentManagerTest()
0102 {
0103     // org.bluez.obex exports ObjectManager and Client1, but there is no AgentManager1
0104     // expected: init error
0105     FakeBluez::start();
0106     FakeBluez::runTest(QStringLiteral("obex-no-agentmanager"));
0107 
0108     ObexManager *manager = new ObexManager;
0109     InitObexManagerJob *job = manager->init();
0110     job->exec();
0111 
0112     QVERIFY(job->error());
0113     QVERIFY(!manager->isInitialized());
0114     QVERIFY(!manager->isOperational());
0115 
0116     delete manager;
0117 }
0118 
0119 void ObexManagerTest::obexServiceOkTest()
0120 {
0121     // org.bluez.obex is running and exports all used interfaces
0122     // expected: init successful
0123     FakeBluez::start();
0124     FakeBluez::runTest(QStringLiteral("obex-standard"));
0125 
0126     ObexManager *manager = new ObexManager;
0127     InitObexManagerJob *job = manager->init();
0128     job->exec();
0129 
0130     QVERIFY(!job->error());
0131     QVERIFY(manager->isInitialized());
0132     QVERIFY(manager->isOperational());
0133 
0134     delete manager;
0135 }
0136 
0137 QTEST_MAIN(ObexManagerTest)
0138 
0139 #include "moc_obexmanagertest.cpp"