1/*
2 * SPDX-FileCopyrightText: 2014-2015 David Rosca <nowrep@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6
7#include "obexmanagertest.h"
8#include "autotests.h"
9#include "initobexmanagerjob.h"
10#include "obexmanager.h"
11
12#include <QTest>
13
14namespace BluezQt
15{
16extern void bluezqt_initFakeBluezTestRun();
17}
18
19using namespace BluezQt;
20
21void ObexManagerTest::initTestCase()
22{
23 bluezqt_initFakeBluezTestRun();
24 FakeBluez::start(); // to check that it works
25}
26
27void ObexManagerTest::cleanup()
28{
29 FakeBluez::stop();
30}
31
32void ObexManagerTest::obexNotRunningTest()
33{
34 // org.bluez.obex is not running at all
35 // expected: init successful
36 ObexManager *manager = new ObexManager;
37 InitObexManagerJob *job = manager->init();
38 job->exec();
39
40 QVERIFY(!job->error());
41 QVERIFY(manager->isInitialized());
42 QVERIFY(!manager->isOperational());
43
44 delete manager;
45}
46
47void ObexManagerTest::obexNotExportingInterfacesTest()
48{
49 // org.bluez.obex is running, but it does not export any interfaces
50 // expected: init error
51 FakeBluez::start();
52 FakeBluez::runTest(QStringLiteral("obex-not-exporting-interfaces"));
53
54 ObexManager *manager = new ObexManager;
55 InitObexManagerJob *job = manager->init();
56 job->exec();
57
58 QVERIFY(job->error());
59 QVERIFY(!manager->isInitialized());
60 QVERIFY(!manager->isOperational());
61
62 delete manager;
63}
64
65void ObexManagerTest::obexEmptyManagedObjectsTest()
66{
67 // org.bluez.obex exports ObjectManager, but there is no AgentManager1 nor Client1
68 // expected: init error
69 FakeBluez::start();
70 FakeBluez::runTest(QStringLiteral("obex-empty-managed-objects"));
71
72 ObexManager *manager = new ObexManager;
73 InitObexManagerJob *job = manager->init();
74 job->exec();
75
76 QVERIFY(job->error());
77 QVERIFY(!manager->isInitialized());
78 QVERIFY(!manager->isOperational());
79
80 delete manager;
81}
82
83void ObexManagerTest::obexNoClientTest()
84{
85 // org.bluez.obex exports ObjectManager and AgentManager1, but there is no Client1
86 // expected: init error
87 FakeBluez::start();
88 FakeBluez::runTest(QStringLiteral("obex-no-client"));
89
90 ObexManager *manager = new ObexManager;
91 InitObexManagerJob *job = manager->init();
92 job->exec();
93
94 QVERIFY(job->error());
95 QVERIFY(!manager->isInitialized());
96 QVERIFY(!manager->isOperational());
97
98 delete manager;
99}
100
101void ObexManagerTest::obexNoAgentManagerTest()
102{
103 // org.bluez.obex exports ObjectManager and Client1, but there is no AgentManager1
104 // expected: init error
105 FakeBluez::start();
106 FakeBluez::runTest(QStringLiteral("obex-no-agentmanager"));
107
108 ObexManager *manager = new ObexManager;
109 InitObexManagerJob *job = manager->init();
110 job->exec();
111
112 QVERIFY(job->error());
113 QVERIFY(!manager->isInitialized());
114 QVERIFY(!manager->isOperational());
115
116 delete manager;
117}
118
119void ObexManagerTest::obexServiceOkTest()
120{
121 // org.bluez.obex is running and exports all used interfaces
122 // expected: init successful
123 FakeBluez::start();
124 FakeBluez::runTest(QStringLiteral("obex-standard"));
125
126 ObexManager *manager = new ObexManager;
127 InitObexManagerJob *job = manager->init();
128 job->exec();
129
130 QVERIFY(!job->error());
131 QVERIFY(manager->isInitialized());
132 QVERIFY(manager->isOperational());
133
134 delete manager;
135}
136
137QTEST_MAIN(ObexManagerTest)
138
139#include "moc_obexmanagertest.cpp"
140

source code of bluez-qt/autotests/obexmanagertest.cpp