File indexing completed on 2024-04-14 14:17:17

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 #ifndef AGENTMANAGERTEST_H
0008 #define AGENTMANAGERTEST_H
0009 
0010 #include <QDBusObjectPath>
0011 #include <QObject>
0012 
0013 #include "agent.h"
0014 #include "device.h"
0015 
0016 class TestAgent : public BluezQt::Agent
0017 {
0018     Q_OBJECT
0019 
0020 public:
0021     explicit TestAgent(QObject *parent = nullptr);
0022 
0023     QDBusObjectPath objectPath() const override;
0024 
0025     void requestPinCode(BluezQt::DevicePtr device, const BluezQt::Request<QString> &request) override;
0026     void displayPinCode(BluezQt::DevicePtr device, const QString &pinCode) override;
0027     void requestPasskey(BluezQt::DevicePtr device, const BluezQt::Request<quint32> &request) override;
0028     void displayPasskey(BluezQt::DevicePtr device, const QString &passkey, const QString &entered) override;
0029     void requestConfirmation(BluezQt::DevicePtr device, const QString &passkey, const BluezQt::Request<> &request) override;
0030     void requestAuthorization(BluezQt::DevicePtr device, const BluezQt::Request<> &request) override;
0031     void authorizeService(BluezQt::DevicePtr device, const QString &uuid, const BluezQt::Request<> &request) override;
0032 
0033     void cancel() override;
0034     void release() override;
0035 
0036     BluezQt::DevicePtr m_device;
0037 
0038     // requestPinCode
0039     bool m_pinRequested;
0040 
0041     // displayPinCode
0042     QString m_displayedPinCode;
0043 
0044     // requestPasskey
0045     bool m_passkeyRequested;
0046 
0047     // displayPasskey
0048     QString m_displayedPasskey;
0049     QString m_enteredPasskey;
0050 
0051     // requestConfirmation
0052     QString m_requestedPasskey;
0053 
0054     // requestAuthorization
0055     bool m_authorizationRequested;
0056 
0057     // authorizeService
0058     QString m_authorizedUuid;
0059 
0060     // cancel
0061     bool m_cancelCalled;
0062 
0063     // release
0064     bool m_releaseCalled;
0065 };
0066 
0067 class AgentManagerTest : public QObject
0068 {
0069     Q_OBJECT
0070 
0071 private Q_SLOTS:
0072     void initTestCase();
0073     void cleanupTestCase();
0074 
0075     void requestPinCodeTest();
0076     void displayPinCodeTest();
0077     void requestPasskeyTest();
0078     void displayPasskeyTest();
0079     void requestConfirmationTest();
0080     void requestAuthorizationTest();
0081     void authorizeServiceTest();
0082     void cancelTest();
0083     void releaseTest();
0084 
0085 private:
0086     TestAgent *m_agent;
0087     QDBusObjectPath m_device;
0088 };
0089 
0090 #endif // AGENTMANAGERTEST_H