telepathy-qt: Request creation moved from Account to FileTransferChannelCreationProperties.

Alexandr Akulich kaffeine at kemper.freedesktop.org
Sat Apr 23 08:33:21 UTC 2016


Module: telepathy-qt
Branch: master
Commit: 0b50d12a56e619e93f6b0943399e5fa4d45c4c92
URL:    http://cgit.freedesktop.org/telepathy/telepathy-qt/commit/?id=0b50d12a56e619e93f6b0943399e5fa4d45c4c92

Author: Alexandr Akulich <akulichalexander at gmail.com>
Date:   Mon Feb 15 13:17:33 2016 +0500

Request creation moved from Account to FileTransferChannelCreationProperties.

The purpose of this change is to use the code in test, so we
1) Avoid code duplication Account<->Tests,
2) Improve test coverage a bit.

---

 TelepathyQt/account.cpp                            | 63 +-------------------
 .../file-transfer-channel-creation-properties.cpp  | 67 ++++++++++++++++++++++
 .../file-transfer-channel-creation-properties.h    |  4 ++
 3 files changed, 73 insertions(+), 61 deletions(-)

diff --git a/TelepathyQt/account.cpp b/TelepathyQt/account.cpp
index 8d4c7a7..f6635e1 100644
--- a/TelepathyQt/account.cpp
+++ b/TelepathyQt/account.cpp
@@ -291,75 +291,16 @@ QVariantMap streamedMediaVideoCallRequest(const Tp::ContactPtr &contact, bool wi
     return request;
 }
 
-QVariantMap fileTransferCommonRequest(const Tp::FileTransferChannelCreationProperties &properties)
-{
-    if (!properties.isValid()) {
-        warning() << "Invalid file transfer creation properties";
-        return QVariantMap();
-    }
-
-    QVariantMap request;
-    request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
-                   TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER);
-    request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
-                   (uint) Tp::HandleTypeContact);
-
-    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Filename"),
-                   properties.suggestedFileName());
-    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentType"),
-                   properties.contentType());
-    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Size"),
-                   properties.size());
-
-    if (properties.hasContentHash()) {
-        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHashType"),
-                       (uint) properties.contentHashType());
-        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHash"),
-                       properties.contentHash());
-    }
-
-    if (properties.hasDescription()) {
-        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Description"),
-                       properties.description());
-    }
-
-    if (properties.hasLastModificationTime()) {
-        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Date"),
-                       (qulonglong) properties.lastModificationTime().toTime_t());
-    }
-
-    if (properties.hasUri()) {
-        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".URI"),
-                       properties.uri());
-    }
-
-    return request;
-}
-
 QVariantMap fileTransferRequest(const QString &contactIdentifier,
         const Tp::FileTransferChannelCreationProperties &properties)
 {
-    QVariantMap request = fileTransferCommonRequest(properties);
-
-    if  (!request.isEmpty()) {
-        request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetID"),
-                       contactIdentifier);
-    }
-
-    return request;
+    return properties.createRequest(contactIdentifier);
 }
 
 QVariantMap fileTransferRequest(const Tp::ContactPtr &contact,
         const Tp::FileTransferChannelCreationProperties &properties)
 {
-    QVariantMap request = fileTransferCommonRequest(properties);
-
-    if  (!request.isEmpty()) {
-        request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandle"),
-                       contact ? contact->handle().at(0) : (uint) 0);
-    }
-
-    return request;
+    return properties.createRequest(contact ? contact->handle().at(0) : (uint) 0);
 }
 
 QVariantMap streamTubeCommonRequest(const QString &service)
diff --git a/TelepathyQt/file-transfer-channel-creation-properties.cpp b/TelepathyQt/file-transfer-channel-creation-properties.cpp
index e7232b0..aa0d822 100644
--- a/TelepathyQt/file-transfer-channel-creation-properties.cpp
+++ b/TelepathyQt/file-transfer-channel-creation-properties.cpp
@@ -430,4 +430,71 @@ QString FileTransferChannelCreationProperties::uri() const
     return mPriv->uri;
 }
 
+QVariantMap FileTransferChannelCreationProperties::createRequest() const
+{
+    if (!isValid()) {
+        warning() << "Invalid file transfer creation properties";
+        return QVariantMap();
+    }
+
+    QVariantMap request;
+    request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
+                   TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER);
+    request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
+                   (uint) Tp::HandleTypeContact);
+
+    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Filename"),
+                   suggestedFileName());
+    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentType"),
+                   contentType());
+    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Size"),
+                   size());
+
+    if (hasContentHash()) {
+        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHashType"),
+                       (uint) contentHashType());
+        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHash"),
+                       contentHash());
+    }
+
+    if (hasDescription()) {
+        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Description"),
+                       description());
+    }
+
+    if (hasLastModificationTime()) {
+        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Date"),
+                       (qulonglong) lastModificationTime().toTime_t());
+    }
+
+    if (hasUri()) {
+        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".URI"),
+                       uri());
+    }
+
+    return request;
+}
+
+QVariantMap FileTransferChannelCreationProperties::createRequest(const QString &contactIdentifier) const
+{
+    QVariantMap request = createRequest();
+
+    if (!request.isEmpty()) {
+        request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetID"), contactIdentifier);
+    }
+
+    return request;
+}
+
+QVariantMap FileTransferChannelCreationProperties::createRequest(uint handle) const
+{
+    QVariantMap request = createRequest();
+
+    if (!request.isEmpty()) {
+        request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandle"), handle);
+    }
+
+    return request;
+}
+
 } // Tp
diff --git a/TelepathyQt/file-transfer-channel-creation-properties.h b/TelepathyQt/file-transfer-channel-creation-properties.h
index a3904b4..3e1c5b6 100644
--- a/TelepathyQt/file-transfer-channel-creation-properties.h
+++ b/TelepathyQt/file-transfer-channel-creation-properties.h
@@ -83,6 +83,10 @@ public:
     bool hasUri() const;
     QString uri() const;
 
+    QVariantMap createRequest() const;
+    QVariantMap createRequest(const QString &contactIdentifier) const;
+    QVariantMap createRequest(uint handle) const;
+
 private:
     struct Private;
     friend struct Private;



More information about the telepathy-commits mailing list