[telepathy-qt4/master] client test: Added test for Client.Approver.addDispatchOperation.
Andre Moreira Magalhaes (andrunko)
andre.magalhaes at collabora.co.uk
Mon Jun 1 22:28:13 PDT 2009
---
tests/dbus/client.cpp | 53 ++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 50 insertions(+), 3 deletions(-)
diff --git a/tests/dbus/client.cpp b/tests/dbus/client.cpp
index b789e2a..35e5b91 100644
--- a/tests/dbus/client.cpp
+++ b/tests/dbus/client.cpp
@@ -129,7 +129,10 @@ private:
QStringList mInterfaces;
};
-class MyClient : public QObject, public AbstractClientObserver, public AbstractClientHandler
+class MyClient : public QObject,
+ public AbstractClientObserver,
+ public AbstractClientApprover,
+ public AbstractClientHandler
{
Q_OBJECT
@@ -147,6 +150,7 @@ public:
bool bypassApproval = false,
bool wantsRequestNotification = false)
: AbstractClientObserver(channelFilter),
+ AbstractClientApprover(channelFilter),
AbstractClientHandler(channelFilter, wantsRequestNotification),
mBypassApproval(bypassApproval)
{
@@ -175,6 +179,17 @@ public:
QTimer::singleShot(0, this, SIGNAL(observeChannelsFinished()));
}
+ void addDispatchOperation(const MethodInvocationContextPtr<> &context,
+ const QList<ChannelPtr> &channels,
+ const ChannelDispatchOperationPtr &dispatchOperation)
+ {
+ mAddDispatchOperationChannels = channels;
+ mAddDispatchOperationDispatchOperation = dispatchOperation;
+
+ context->setFinished();
+ QTimer::singleShot(0, this, SIGNAL(addDispatchOperationFinished()));
+ }
+
bool bypassApproval() const
{
return mBypassApproval;
@@ -228,6 +243,9 @@ public:
QList<ChannelRequestPtr> mObserveChannelsRequestsSatisfied;
QVariantMap mObserveChannelsObserverInfo;
+ QList<ChannelPtr> mAddDispatchOperationChannels;
+ ChannelDispatchOperationPtr mAddDispatchOperationDispatchOperation;
+
bool mBypassApproval;
AccountPtr mHandleChannelsAccount;
ConnectionPtr mHandleChannelsConnection;
@@ -241,11 +259,12 @@ public:
QString mRemoveRequestErrorMessage;
Q_SIGNALS:
+ void observeChannelsFinished();
+ void addDispatchOperationFinished();
+ void handleChannelsFinished();
void requestAdded(const Tp::ChannelRequestPtr &request);
void requestRemoved(const Tp::ChannelRequestPtr &request,
const QString &errorName, const QString &errorMessage);
- void handleChannelsFinished();
- void observeChannelsFinished();
void channelClosed();
};
@@ -272,6 +291,7 @@ private Q_SLOTS:
void testRegister();
void testObserveChannels();
+ void testAddDispatchOperation();
void testRequests();
void testHandleChannels();
@@ -545,6 +565,33 @@ void TestClient::testObserveChannels()
mClientObject2BusName, mClientObject2Path);
}
+void TestClient::testAddDispatchOperation()
+{
+ QDBusConnection bus = mClientRegistrar->dbusConnection();
+
+ ClientApproverInterface *approverIface = new ClientApproverInterface(bus,
+ mClientObject1BusName, mClientObject1Path, this);
+ MyClient *client = dynamic_cast<MyClient*>(mClientObject1.data());
+ connect(client,
+ SIGNAL(addDispatchOperationFinished()),
+ SLOT(expectSignalEmission()));
+ ChannelDetailsList channelDetailsList;
+ ChannelDetails channelDetails = { QDBusObjectPath(mText1ChanPath), QVariantMap() };
+ channelDetailsList.append(channelDetails);
+ QVariantMap dispatchOperationPropeties;
+ dispatchOperationPropeties.insert("Connection",
+ QVariant::fromValue(QDBusObjectPath(mConn->objectPath())));
+ dispatchOperationPropeties.insert("Account",
+ QVariant::fromValue(QDBusObjectPath(mAccount->objectPath())));
+ approverIface->AddDispatchOperation(channelDetailsList,
+ QDBusObjectPath("/"),
+ dispatchOperationPropeties);
+ QCOMPARE(mLoop->exec(), 0);
+
+ QCOMPARE(client->mAddDispatchOperationChannels.first()->objectPath(), mText1ChanPath);
+ QCOMPARE(client->mAddDispatchOperationDispatchOperation->objectPath(), QString("/"));
+}
+
void TestClient::testHandleChannels()
{
QDBusConnection bus = mClientRegistrar->dbusConnection();
--
1.5.6.5
More information about the telepathy-commits
mailing list