Merge lp:~mandel/ubuntu-download-manager/properties into lp:ubuntu-download-manager

Proposed by Manuel de la Peña
Status: Merged
Approved by: Ricardo Mendoza
Approved revision: no longer in the source branch.
Merged at revision: 322
Proposed branch: lp:~mandel/ubuntu-download-manager/properties
Merge into: lp:ubuntu-download-manager
Diff against target: 816 lines (+410/-29)
19 files modified
CMakeLists.txt (+1/-1)
debian/changelog (+7/-0)
debian/libudm-common0.symbols (+12/-0)
docs/dbus/com.canonical.applications.download.xml (+10/-4)
src/common/public/ubuntu/transfers/metadata.cpp (+54/-3)
src/common/public/ubuntu/transfers/metadata.h (+15/-0)
src/downloads/priv/ubuntu/downloads/download.cpp (+19/-0)
src/downloads/priv/ubuntu/downloads/download.h (+9/-1)
src/downloads/priv/ubuntu/downloads/download_adaptor.cpp (+19/-1)
src/downloads/priv/ubuntu/downloads/download_adaptor.h (+16/-4)
src/downloads/priv/ubuntu/downloads/file_download.cpp (+11/-8)
src/downloads/priv/ubuntu/downloads/mms_file_download.cpp (+2/-0)
tests/downloads/client/test_client_manager.cpp (+1/-1)
tests/downloads/daemon/test_download.cpp (+29/-0)
tests/downloads/daemon/test_download.h (+2/-0)
tests/downloads/daemon/test_metadata.cpp (+159/-6)
tests/downloads/daemon/test_metadata.h (+18/-0)
tests/downloads/daemon/test_mms_download.cpp (+25/-0)
tests/downloads/daemon/test_mms_download.h (+1/-0)
To merge this branch: bzr merge lp:~mandel/ubuntu-download-manager/properties
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Ricardo Mendoza (community) Approve
Review via email: mp+233348@code.launchpad.net

Commit message

Add properties that will allow the indicator filter the downloads accordingly. This new properties change the ABI.

Description of the change

Add properties that will allow the indicator filter the downloads accordingly. The udm clients that use the cpp lib can use the new methods in the metadata object to set the properties at creation time of the download.

The click property CANNOT be set by confined applications (something that is tested) so that click applications cannot create downloads that look as a click app in the indicator.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Ricardo Mendoza (ricmm) wrote :

LGTM, minor typos.

review: Needs Fixing
Revision history for this message
Ricardo Mendoza (ricmm) wrote :

LGTM

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
324. By Manuel de la Peña

Update the version number.

325. By Manuel de la Peña

Merged with previous code in the review.

326. By Manuel de la Peña

Merged with trunk.

327. By Manuel de la Peña

Increase the timeout in some failing tests when building the .deb

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2014-07-17 08:40:07 +0000
+++ CMakeLists.txt 2014-09-22 17:35:56 +0000
@@ -31,7 +31,7 @@
31)31)
3232
33set(UDM_VERSION_MAJOR 0)33set(UDM_VERSION_MAJOR 0)
34set(UDM_VERSION_MINOR 7)34set(UDM_VERSION_MINOR 9)
35set(UDM_VERSION_PATCH 0)35set(UDM_VERSION_PATCH 0)
3636
37find_package(Gtest REQUIRED)37find_package(Gtest REQUIRED)
3838
=== modified file 'debian/changelog'
--- debian/changelog 2014-09-16 02:33:46 +0000
+++ debian/changelog 2014-09-22 17:35:56 +0000
@@ -1,3 +1,10 @@
1ubuntu-download-manager (0.9) UNRELEASED; urgency=medium
2
3 * Add new properties that can be used to filter the downloads shown in the
4 indicator. This changes the ABI.
5
6 -- Manuel de la Pena <manuel.delapena@canonical.com> Thu, 04 Sep 2014 13:36:59 +0200
7
1ubuntu-download-manager (0.8+14.10.20140916-0ubuntu1) 14.09; urgency=low8ubuntu-download-manager (0.8+14.10.20140916-0ubuntu1) 14.09; urgency=low
29
3 [ Sergio Schvezov ]10 [ Sergio Schvezov ]
411
=== modified file 'debian/libudm-common0.symbols'
--- debian/libudm-common0.symbols 2014-07-14 15:14:37 +0000
+++ debian/libudm-common0.symbols 2014-09-22 17:35:56 +0000
@@ -74,6 +74,18 @@
74 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.2014061874 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.20140618
75 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.2014061875 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.20140618
76 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.2014061876 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.20140618
77 (c++)"Ubuntu::Transfers::Metadata::setClickPackage(QString const&)@Base" 0replaceme
78 (c++)"Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY@Base" 0replaceme
79 (c++)"Ubuntu::Transfers::Metadata::setShowInIndicator(bool)@Base" 0replaceme
80 (c++)"Ubuntu::Transfers::Metadata::SHOW_IN_INDICATOR_KEY@Base" 0replaceme
81 (c++)"Ubuntu::Transfers::Metadata::setTitle(QString const&)@Base" 0replaceme
82 (c++)"Ubuntu::Transfers::Metadata::TITLE_KEY@Base" 0replaceme
83 (c++)"Ubuntu::Transfers::Metadata::clickPackage() const@Base" 0replaceme
84 (c++)"Ubuntu::Transfers::Metadata::hasClickPackage() const@Base" 0replaceme
85 (c++)"Ubuntu::Transfers::Metadata::showInIndicator() const@Base" 0replaceme
86 (c++)"Ubuntu::Transfers::Metadata::hasShowInIndicator() const@Base" 0replaceme
87 (c++)"Ubuntu::Transfers::Metadata::title() const@Base" 0replaceme
88 (c++)"Ubuntu::Transfers::Metadata::hasTitle() const@Base" 0replaceme
77 (c++)"Ubuntu::Transfers::Metadata::setCommand(QString const&)@Base" 0.4+14.10.2014061889 (c++)"Ubuntu::Transfers::Metadata::setCommand(QString const&)@Base" 0.4+14.10.20140618
78 (c++)"Ubuntu::Transfers::Metadata::COMMAND_KEY@Base" 0.4+14.10.2014061890 (c++)"Ubuntu::Transfers::Metadata::COMMAND_KEY@Base" 0.4+14.10.20140618
79 (c++)"Ubuntu::Transfers::Metadata::setLocalPath(QString const&)@Base" 0.4+14.10.2014061891 (c++)"Ubuntu::Transfers::Metadata::setLocalPath(QString const&)@Base" 0.4+14.10.20140618
8092
=== modified file 'docs/dbus/com.canonical.applications.download.xml'
--- docs/dbus/com.canonical.applications.download.xml 2014-06-18 11:10:18 +0000
+++ docs/dbus/com.canonical.applications.download.xml 2014-09-22 17:35:56 +0000
@@ -14,6 +14,10 @@
14 <arg name="data" type="a{sv}" direction="out" />14 <arg name="data" type="a{sv}" direction="out" />
15 </method>15 </method>
1616
17 <method name="throttle">
18 <arg name="speed" type="t" direction="out"/>
19 </method>
20
17 <method name="setThrottle">21 <method name="setThrottle">
18 <arg name="speed" type="t" direction="in"/>22 <arg name="speed" type="t" direction="in"/>
19 </method>23 </method>
@@ -28,10 +32,6 @@
28 <arg name="headers" type="a{ss}" direction="in"/>32 <arg name="headers" type="a{ss}" direction="in"/>
29 </method>33 </method>
3034
31 <method name="throttle">
32 <arg name="speed" type="t" direction="out"/>
33 </method>
34
35 <method name="setDestinationDir">35 <method name="setDestinationDir">
36 <arg name="path" type="s" direction="in"/>36 <arg name="path" type="s" direction="in"/>
37 </method>37 </method>
@@ -102,5 +102,11 @@
102 <arg name="path" type="s" direction="out"/>102 <arg name="path" type="s" direction="out"/>
103 </signal>103 </signal>
104104
105 <property access="read" type="b" name="ShowInIndicator" />
106
107 <property access="read" type="s" name="Title" />
108
109 <property access="read" type="s" name="ClickPackage" />
110
105 </interface>111 </interface>
106</node>112</node>
107113
=== modified file 'src/common/public/ubuntu/transfers/metadata.cpp'
--- src/common/public/ubuntu/transfers/metadata.cpp 2014-03-26 10:00:28 +0000
+++ src/common/public/ubuntu/transfers/metadata.cpp 2014-09-22 17:35:56 +0000
@@ -26,11 +26,14 @@
26const QString Metadata::COMMAND_FILE_KEY = "$file";26const QString Metadata::COMMAND_FILE_KEY = "$file";
27const QString Metadata::LOCAL_PATH_KEY = "local-path";27const QString Metadata::LOCAL_PATH_KEY = "local-path";
28const QString Metadata::OBJECT_PATH_KEY = "objectpath";28const QString Metadata::OBJECT_PATH_KEY = "objectpath";
29const QString Metadata::TITLE_KEY = "title";
30const QString Metadata::SHOW_IN_INDICATOR_KEY = "indicator-shown";
31const QString Metadata::CLICK_PACKAGE_KEY = "click-package";
2932
30QString33QString
31Metadata::command() const {34Metadata::command() const {
32 return (contains(Metadata::COMMAND_KEY))?35 return (contains(Metadata::COMMAND_KEY))?
33 value(COMMAND_KEY).toString():"";36 value(Metadata::COMMAND_KEY).toString():"";
34}37}
3538
36void39void
@@ -46,7 +49,7 @@
46QString49QString
47Metadata::localPath() const {50Metadata::localPath() const {
48 return (contains(Metadata::LOCAL_PATH_KEY))?51 return (contains(Metadata::LOCAL_PATH_KEY))?
49 value(LOCAL_PATH_KEY).toString():"";52 value(Metadata::LOCAL_PATH_KEY).toString():"";
50}53}
5154
52void55void
@@ -62,7 +65,7 @@
62QString65QString
63Metadata::objectPath() const {66Metadata::objectPath() const {
64 return (contains(Metadata::OBJECT_PATH_KEY))?67 return (contains(Metadata::OBJECT_PATH_KEY))?
65 value(OBJECT_PATH_KEY).toString():"";68 value(Metadata::OBJECT_PATH_KEY).toString():"";
66}69}
6770
68void71void
@@ -75,6 +78,54 @@
75 return contains(Metadata::OBJECT_PATH_KEY);78 return contains(Metadata::OBJECT_PATH_KEY);
76}79}
7780
81QString
82Metadata::title() const {
83 return (contains(Metadata::TITLE_KEY))?
84 value(Metadata::TITLE_KEY).toString():"";
85}
86
87void
88Metadata::setTitle(const QString& title) {
89 insert(Metadata::TITLE_KEY, title);
90}
91
92bool
93Metadata::hasTitle() const {
94 return contains(Metadata::TITLE_KEY);
95}
96
97bool
98Metadata::showInIndicator() const {
99 return (contains(Metadata::SHOW_IN_INDICATOR_KEY))?
100 value(Metadata::SHOW_IN_INDICATOR_KEY).toBool():true;
101}
102
103void
104Metadata::setShowInIndicator(bool shown) {
105 insert(Metadata::SHOW_IN_INDICATOR_KEY, shown);
106}
107
108bool
109Metadata::hasShowInIndicator() const {
110 return contains(Metadata::SHOW_IN_INDICATOR_KEY);
111}
112
113QString
114Metadata::clickPackage() const {
115 return (contains(Metadata::CLICK_PACKAGE_KEY))?
116 value(Metadata::CLICK_PACKAGE_KEY).toString():"";
117}
118
119void
120Metadata::setClickPackage(const QString& click) {
121 insert(Metadata::CLICK_PACKAGE_KEY, click);
122}
123
124bool
125Metadata::hasClickPackage() const {
126 return contains(Metadata::CLICK_PACKAGE_KEY);
127}
128
78} // DownloadManager129} // DownloadManager
79130
80} // Ubuntu131} // Ubuntu
81132
=== modified file 'src/common/public/ubuntu/transfers/metadata.h'
--- src/common/public/ubuntu/transfers/metadata.h 2014-03-26 10:00:28 +0000
+++ src/common/public/ubuntu/transfers/metadata.h 2014-09-22 17:35:56 +0000
@@ -34,6 +34,9 @@
34 static const QString COMMAND_FILE_KEY;34 static const QString COMMAND_FILE_KEY;
35 static const QString LOCAL_PATH_KEY;35 static const QString LOCAL_PATH_KEY;
36 static const QString OBJECT_PATH_KEY;36 static const QString OBJECT_PATH_KEY;
37 static const QString TITLE_KEY;
38 static const QString SHOW_IN_INDICATOR_KEY;
39 static const QString CLICK_PACKAGE_KEY;
3740
38 // accessors to simplify the use of the metadata41 // accessors to simplify the use of the metadata
39 QString command() const;42 QString command() const;
@@ -47,6 +50,18 @@
47 QString objectPath() const;50 QString objectPath() const;
48 void setObjectPath(const QString& path);51 void setObjectPath(const QString& path);
49 bool hasObjectPath() const;52 bool hasObjectPath() const;
53
54 QString title() const;
55 void setTitle(const QString& title);
56 bool hasTitle() const;
57
58 bool showInIndicator() const;
59 void setShowInIndicator(bool shown);
60 bool hasShowInIndicator() const;
61
62 QString clickPackage() const;
63 void setClickPackage(const QString& click);
64 bool hasClickPackage() const;
50};65};
5166
52} // DownloadManager67} // DownloadManager
5368
=== modified file 'src/downloads/priv/ubuntu/downloads/download.cpp'
--- src/downloads/priv/ubuntu/downloads/download.cpp 2014-07-16 08:41:38 +0000
+++ src/downloads/priv/ubuntu/downloads/download.cpp 2014-09-22 17:35:56 +0000
@@ -17,6 +17,7 @@
17 */17 */
1818
19#include <QStringList>19#include <QStringList>
20#include "ubuntu/transfers/metadata.h"
20#include "ubuntu/transfers/system/logger.h"21#include "ubuntu/transfers/system/logger.h"
21#include "download.h"22#include "download.h"
2223
@@ -57,6 +58,24 @@
57 emit error(errorStr);58 emit error(errorStr);
58}59}
5960
61QString
62Download::clickPackage() const {
63 return (_metadata.contains(Metadata::CLICK_PACKAGE_KEY))?
64 _metadata.value(Metadata::CLICK_PACKAGE_KEY).toString():"";
65}
66
67bool
68Download::showInIndicator() const {
69 return (_metadata.contains(Metadata::SHOW_IN_INDICATOR_KEY))?
70 _metadata.value(Metadata::SHOW_IN_INDICATOR_KEY).toBool():true;
71}
72
73QString
74Download::title() const {
75 return (_metadata.contains(Metadata::TITLE_KEY))?
76 _metadata.value(Metadata::TITLE_KEY).toString():"";
77}
78
60} // Daemon79} // Daemon
6180
62} // DownloadManager81} // DownloadManager
6382
=== modified file 'src/downloads/priv/ubuntu/downloads/download.h'
--- src/downloads/priv/ubuntu/downloads/download.h 2014-07-16 08:41:38 +0000
+++ src/downloads/priv/ubuntu/downloads/download.h 2014-09-22 17:35:56 +0000
@@ -41,6 +41,9 @@
4141
42class Download : public Transfer {42class Download : public Transfer {
43 Q_OBJECT43 Q_OBJECT
44 Q_PROPERTY(QString ClickPackage READ clickPackage)
45 Q_PROPERTY(bool ShowInIndicator READ showInIndicator)
46 Q_PROPERTY(QString Title READ title)
4447
45 public:48 public:
46 Download(const QString& id,49 Download(const QString& id,
@@ -95,9 +98,14 @@
9598
96 protected:99 protected:
97 virtual void emitError(const QString& error);100 virtual void emitError(const QString& error);
101 virtual QString clickPackage() const;
102 virtual bool showInIndicator() const;
103 virtual QString title() const;
104
105 protected:
106 QVariantMap _metadata;
98107
99 private:108 private:
100 QVariantMap _metadata;
101 QMap<QString, QString> _headers;109 QMap<QString, QString> _headers;
102 QObject* _adaptor = nullptr;110 QObject* _adaptor = nullptr;
103};111};
104112
=== modified file 'src/downloads/priv/ubuntu/downloads/download_adaptor.cpp'
--- src/downloads/priv/ubuntu/downloads/download_adaptor.cpp 2014-06-18 11:10:18 +0000
+++ src/downloads/priv/ubuntu/downloads/download_adaptor.cpp 2014-09-22 17:35:56 +0000
@@ -2,7 +2,7 @@
2 * This file was generated by qdbusxml2cpp version 0.82 * This file was generated by qdbusxml2cpp version 0.8
3 * Command line was: qdbusxml2cpp -c DownloadAdaptor -a download_adaptor.h:download_adaptor.cpp com.canonical.applications.download.xml3 * Command line was: qdbusxml2cpp -c DownloadAdaptor -a download_adaptor.h:download_adaptor.cpp com.canonical.applications.download.xml
4 *4 *
5 * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).5 * qdbusxml2cpp is Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
6 *6 *
7 * This is an auto-generated file.7 * This is an auto-generated file.
8 * Do not edit! All changes made to it will be lost.8 * Do not edit! All changes made to it will be lost.
@@ -33,6 +33,24 @@
33 // destructor33 // destructor
34}34}
3535
36QString DownloadAdaptor::clickPackage() const
37{
38 // get the value of property ClickPackage
39 return qvariant_cast< QString >(parent()->property("ClickPackage"));
40}
41
42bool DownloadAdaptor::showInIndicator() const
43{
44 // get the value of property ShowInIndicator
45 return qvariant_cast< bool >(parent()->property("ShowInIndicator"));
46}
47
48QString DownloadAdaptor::title() const
49{
50 // get the value of property Title
51 return qvariant_cast< QString >(parent()->property("Title"));
52}
53
36void DownloadAdaptor::allowGSMDownload(bool allowed)54void DownloadAdaptor::allowGSMDownload(bool allowed)
37{55{
38 // handle method call com.canonical.applications.Download.allowGSMDownload56 // handle method call com.canonical.applications.Download.allowGSMDownload
3957
=== modified file 'src/downloads/priv/ubuntu/downloads/download_adaptor.h'
--- src/downloads/priv/ubuntu/downloads/download_adaptor.h 2014-06-18 11:10:18 +0000
+++ src/downloads/priv/ubuntu/downloads/download_adaptor.h 2014-09-22 17:35:56 +0000
@@ -2,7 +2,7 @@
2 * This file was generated by qdbusxml2cpp version 0.82 * This file was generated by qdbusxml2cpp version 0.8
3 * Command line was: qdbusxml2cpp -c DownloadAdaptor -a download_adaptor.h:download_adaptor.cpp com.canonical.applications.download.xml3 * Command line was: qdbusxml2cpp -c DownloadAdaptor -a download_adaptor.h:download_adaptor.cpp com.canonical.applications.download.xml
4 *4 *
5 * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).5 * qdbusxml2cpp is Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
6 *6 *
7 * This is an auto-generated file.7 * This is an auto-generated file.
8 * This file may have been hand-edited. Look for HAND-EDIT comments8 * This file may have been hand-edited. Look for HAND-EDIT comments
@@ -44,6 +44,9 @@
44" <annotation value=\"QVariantMap\" name=\"org.qtproject.QtDBus.QtTypeName.Out0\"/>\n"44" <annotation value=\"QVariantMap\" name=\"org.qtproject.QtDBus.QtTypeName.Out0\"/>\n"
45" <arg direction=\"out\" type=\"a{sv}\" name=\"data\"/>\n"45" <arg direction=\"out\" type=\"a{sv}\" name=\"data\"/>\n"
46" </method>\n"46" </method>\n"
47" <method name=\"throttle\">\n"
48" <arg direction=\"out\" type=\"t\" name=\"speed\"/>\n"
49" </method>\n"
47" <method name=\"setThrottle\">\n"50" <method name=\"setThrottle\">\n"
48" <arg direction=\"in\" type=\"t\" name=\"speed\"/>\n"51" <arg direction=\"in\" type=\"t\" name=\"speed\"/>\n"
49" </method>\n"52" </method>\n"
@@ -55,9 +58,6 @@
55" <annotation value=\"StringMap\" name=\"org.qtproject.QtDBus.QtTypeName.In0\"/>\n"58" <annotation value=\"StringMap\" name=\"org.qtproject.QtDBus.QtTypeName.In0\"/>\n"
56" <arg direction=\"in\" type=\"a{ss}\" name=\"headers\"/>\n"59" <arg direction=\"in\" type=\"a{ss}\" name=\"headers\"/>\n"
57" </method>\n"60" </method>\n"
58" <method name=\"throttle\">\n"
59" <arg direction=\"out\" type=\"t\" name=\"speed\"/>\n"
60" </method>\n"
61" <method name=\"setDestinationDir\">\n"61" <method name=\"setDestinationDir\">\n"
62" <arg direction=\"in\" type=\"s\" name=\"path\"/>\n"62" <arg direction=\"in\" type=\"s\" name=\"path\"/>\n"
63" </method>\n"63" </method>\n"
@@ -112,6 +112,9 @@
112" <signal name=\"processing\">\n"112" <signal name=\"processing\">\n"
113" <arg direction=\"out\" type=\"s\" name=\"path\"/>\n"113" <arg direction=\"out\" type=\"s\" name=\"path\"/>\n"
114" </signal>\n"114" </signal>\n"
115" <property access=\"read\" type=\"b\" name=\"ShowInIndicator\"/>\n"
116" <property access=\"read\" type=\"s\" name=\"Title\"/>\n"
117" <property access=\"read\" type=\"s\" name=\"ClickPackage\"/>\n"
115" </interface>\n"118" </interface>\n"
116 "")119 "")
117public:120public:
@@ -119,6 +122,15 @@
119 virtual ~DownloadAdaptor();122 virtual ~DownloadAdaptor();
120123
121public: // PROPERTIES124public: // PROPERTIES
125 Q_PROPERTY(QString ClickPackage READ clickPackage)
126 QString clickPackage() const;
127
128 Q_PROPERTY(bool ShowInIndicator READ showInIndicator)
129 bool showInIndicator() const;
130
131 Q_PROPERTY(QString Title READ title)
132 QString title() const;
133
122public Q_SLOTS: // METHODS134public Q_SLOTS: // METHODS
123 void allowGSMDownload(bool allowed);135 void allowGSMDownload(bool allowed);
124 void cancel();136 void cancel();
125137
=== modified file 'src/downloads/priv/ubuntu/downloads/file_download.cpp'
--- src/downloads/priv/ubuntu/downloads/file_download.cpp 2014-08-05 14:38:52 +0000
+++ src/downloads/priv/ubuntu/downloads/file_download.cpp 2014-09-22 17:35:56 +0000
@@ -532,7 +532,7 @@
532 // file path that will be used by the download, do not do it if the app is532 // file path that will be used by the download, do not do it if the app is
533 // unconfined533 // unconfined
534 if ((_reply->hasRawHeader(CONTENT_DISPOSITION) && (534 if ((_reply->hasRawHeader(CONTENT_DISPOSITION) && (
535 isConfined() || !metadata().contains(Metadata::LOCAL_PATH_KEY)))) {535 isConfined() || !_metadata.contains(Metadata::LOCAL_PATH_KEY)))) {
536 QString contentDisposition = _reply->rawHeader(CONTENT_DISPOSITION);536 QString contentDisposition = _reply->rawHeader(CONTENT_DISPOSITION);
537 DOWN_LOG(INFO) << "Content-Disposition header" << contentDisposition;537 DOWN_LOG(INFO) << "Content-Disposition header" << contentDisposition;
538538
@@ -579,7 +579,7 @@
579 // means we are done here else we execute the command AND raise the579 // means we are done here else we execute the command AND raise the
580 // finish signals once the command was done (or an error occurred in580 // finish signals once the command was done (or an error occurred in
581 // the command execution.581 // the command execution.
582 if (metadata().contains(Metadata::COMMAND_KEY)) {582 if (_metadata.contains(Metadata::COMMAND_KEY)) {
583 // just emit processing if we DO NOT have a hash because else we583 // just emit processing if we DO NOT have a hash because else we
584 // already emitted it.584 // already emitted it.
585 if (_hash.isEmpty()) {585 if (_hash.isEmpty()) {
@@ -587,7 +587,7 @@
587 }587 }
588 // toStringList will return an empty list if it cannot be converted588 // toStringList will return an empty list if it cannot be converted
589 QStringList commandData =589 QStringList commandData =
590 metadata()[Metadata::COMMAND_KEY].toStringList();590 _metadata[Metadata::COMMAND_KEY].toStringList();
591 if (commandData.count() == 0) {591 if (commandData.count() == 0) {
592 DOWN_LOG(ERROR) << "COMMAND DATA MISSING";592 DOWN_LOG(ERROR) << "COMMAND DATA MISSING";
593 emitError(COMMAND_ERROR);593 emitError(COMMAND_ERROR);
@@ -746,6 +746,11 @@
746 _connected = networkInfo->isOnline();746 _connected = networkInfo->isOnline();
747 _downloading = false;747 _downloading = false;
748748
749 // applications that are confined are not allowed to set the click metadata.
750 if (isConfined() && _metadata.contains(Metadata::CLICK_PACKAGE_KEY)) {
751 _metadata.remove(Metadata::CLICK_PACKAGE_KEY);
752 }
753
749 // connect to the network changed signals754 // connect to the network changed signals
750 CHECK(connect(networkInfo, &SystemNetworkInfo::onlineStateChanged,755 CHECK(connect(networkInfo, &SystemNetworkInfo::onlineStateChanged,
751 this, &FileDownload::onOnlineStateChanged))756 this, &FileDownload::onOnlineStateChanged))
@@ -815,10 +820,8 @@
815 _basename = UuidUtils::getDBusString(uuidFactory->createUuid());820 _basename = UuidUtils::getDBusString(uuidFactory->createUuid());
816 }821 }
817822
818 auto metadataMap = metadata();823 if (!isConfined() && _metadata.contains(Metadata::LOCAL_PATH_KEY)) {
819824 _filePath = _metadata[Metadata::LOCAL_PATH_KEY].toString();
820 if (!isConfined() && metadataMap.contains(Metadata::LOCAL_PATH_KEY)) {
821 _filePath = metadataMap[Metadata::LOCAL_PATH_KEY].toString();
822 _tempFilePath = _fileNameMutex->lockFileName(825 _tempFilePath = _fileNameMutex->lockFileName(
823 _filePath + TEMP_EXTENSION);826 _filePath + TEMP_EXTENSION);
824827
@@ -862,7 +865,7 @@
862865
863void866void
864FileDownload::unlockFilePath() {867FileDownload::unlockFilePath() {
865 if (!isConfined() && metadata().contains(Metadata::LOCAL_PATH_KEY)) {868 if (!isConfined() && _metadata.contains(Metadata::LOCAL_PATH_KEY)) {
866 _fileNameMutex->unlockFileName(_tempFilePath);869 _fileNameMutex->unlockFileName(_tempFilePath);
867 } else {870 } else {
868 _fileNameMutex->unlockFileName(_filePath);871 _fileNameMutex->unlockFileName(_filePath);
869872
=== modified file 'src/downloads/priv/ubuntu/downloads/mms_file_download.cpp'
--- src/downloads/priv/ubuntu/downloads/mms_file_download.cpp 2014-04-15 12:37:16 +0000
+++ src/downloads/priv/ubuntu/downloads/mms_file_download.cpp 2014-09-22 17:35:56 +0000
@@ -39,6 +39,8 @@
39 metadata, headers, parent){39 metadata, headers, parent){
40 _requestFactory = new ApnRequestFactory(proxy);40 _requestFactory = new ApnRequestFactory(proxy);
41 setAddToQueue(false);41 setAddToQueue(false);
42 // mms downloads should by default not be shown in the indicator.
43 _metadata[Ubuntu::Transfers::Metadata::SHOW_IN_INDICATOR_KEY] = false;
42}44}
4345
44MmsFileDownload::~MmsFileDownload() {46MmsFileDownload::~MmsFileDownload() {
4547
=== modified file 'tests/downloads/client/test_client_manager.cpp'
--- tests/downloads/client/test_client_manager.cpp 2014-07-03 09:01:01 +0000
+++ tests/downloads/client/test_client_manager.cpp 2014-09-22 17:35:56 +0000
@@ -318,7 +318,7 @@
318 }318 }
319 // ensure that all of the are created319 // ensure that all of the are created
320 QVERIFY(managerSpy.ensureSignalEmitted());320 QVERIFY(managerSpy.ensureSignalEmitted());
321 QTRY_COMPARE(count + metadataCount, managerSpy.count());321 QTRY_COMPARE_WITH_TIMEOUT(count + metadataCount, managerSpy.count(), 10000);
322 _man->getAllDownloadsWithMetadata(key, value, cb, cb);322 _man->getAllDownloadsWithMetadata(key, value, cb, cb);
323323
324 QVERIFY(listSpy.ensureSignalEmitted());324 QVERIFY(listSpy.ensureSignalEmitted());
325325
=== modified file 'tests/downloads/daemon/test_download.cpp'
--- tests/downloads/daemon/test_download.cpp 2014-07-30 09:19:10 +0000
+++ tests/downloads/daemon/test_download.cpp 2014-09-22 17:35:56 +0000
@@ -20,6 +20,7 @@
20#include <QNetworkRequest>20#include <QNetworkRequest>
21#include <QSslError>21#include <QSslError>
22#include <ubuntu/download_manager/metatypes.h>22#include <ubuntu/download_manager/metatypes.h>
23#include <ubuntu/transfers/metadata.h>
23#include <ubuntu/transfers/system/hash_algorithm.h>24#include <ubuntu/transfers/system/hash_algorithm.h>
24#include <ubuntu/transfers/system/uuid_utils.h>25#include <ubuntu/transfers/system/uuid_utils.h>
25#include <network_reply.h>26#include <network_reply.h>
@@ -176,6 +177,34 @@
176}177}
177178
178void179void
180TestDownload::testConfinedNoClickMetadata() {
181 QVariantMap metadata;
182 metadata[Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY] = "click";
183
184 EXPECT_CALL(*_networkInfo, isOnline())
185 .WillRepeatedly(Return(true));
186
187 QScopedPointer<FileDownload> download(new FileDownload(_id, _appId, _path,
188 true, _rootPath, _url, metadata, _headers));
189 auto downMetadata = download->metadata();
190 QVERIFY(!downMetadata.contains(Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY));
191}
192
193void
194TestDownload::testUnconfinedWithClickMetadata() {
195 QVariantMap metadata;
196 metadata[Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY] = "click";
197
198 EXPECT_CALL(*_networkInfo, isOnline())
199 .WillRepeatedly(Return(true));
200
201 QScopedPointer<FileDownload> download(new FileDownload(_id, _appId, _path,
202 false, _rootPath, _url, metadata, _headers));
203 auto downMetadata = download->metadata();
204 QVERIFY(downMetadata.contains(Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY));
205}
206
207void
179TestDownload::testPath_data() {208TestDownload::testPath_data() {
180 // create a number of rows with a diff path to ensure that209 // create a number of rows with a diff path to ensure that
181 // the accessor does return the correct one210 // the accessor does return the correct one
182211
=== modified file 'tests/downloads/daemon/test_download.h'
--- tests/downloads/daemon/test_download.h 2014-07-16 11:46:55 +0000
+++ tests/downloads/daemon/test_download.h 2014-09-22 17:35:56 +0000
@@ -54,6 +54,8 @@
54 // constructors tests54 // constructors tests
55 void testNoHashConstructor();55 void testNoHashConstructor();
56 void testHashConstructor();56 void testHashConstructor();
57 void testConfinedNoClickMetadata();
58 void testUnconfinedWithClickMetadata();
5759
58 // data function to be used for the accessor tests60 // data function to be used for the accessor tests
59 void testNoHashConstructor_data();61 void testNoHashConstructor_data();
6062
=== modified file 'tests/downloads/daemon/test_metadata.cpp'
--- tests/downloads/daemon/test_metadata.cpp 2014-07-03 09:01:01 +0000
+++ tests/downloads/daemon/test_metadata.cpp 2014-09-22 17:35:56 +0000
@@ -120,7 +120,8 @@
120 QVERIFY(!metadata.hasLocalPath());120 QVERIFY(!metadata.hasLocalPath());
121}121}
122122
123void TestMetadata::testObjectPath_data() {123void
124TestMetadata::testObjectPath_data() {
124 QTest::addColumn<QString>("objectPath");125 QTest::addColumn<QString>("objectPath");
125126
126 QTest::newRow("/com/canonica/si") << "/com/canonical/si";127 QTest::newRow("/com/canonica/si") << "/com/canonical/si";
@@ -128,7 +129,8 @@
128 QTest::newRow("/com/data/download") << "/com/data/download";129 QTest::newRow("/com/data/download") << "/com/data/download";
129}130}
130131
131void TestMetadata::testObjectPath() {132void
133TestMetadata::testObjectPath() {
132 QFETCH(QString, objectPath);134 QFETCH(QString, objectPath);
133135
134 Metadata metadata;136 Metadata metadata;
@@ -136,7 +138,8 @@
136 QCOMPARE(objectPath, metadata.objectPath());138 QCOMPARE(objectPath, metadata.objectPath());
137}139}
138140
139void TestMetadata::testSetObjectPath_data() {141void
142TestMetadata::testSetObjectPath_data() {
140 QTest::addColumn<QString>("objectPath");143 QTest::addColumn<QString>("objectPath");
141144
142 QTest::newRow("/com/canonica/si") << "/com/canonical/si";145 QTest::newRow("/com/canonica/si") << "/com/canonical/si";
@@ -144,7 +147,8 @@
144 QTest::newRow("/com/data/download") << "/com/data/download";147 QTest::newRow("/com/data/download") << "/com/data/download";
145}148}
146149
147void TestMetadata::testSetObjectPath() {150void
151TestMetadata::testSetObjectPath() {
148 QFETCH(QString, objectPath);152 QFETCH(QString, objectPath);
149153
150 Metadata metadata;154 Metadata metadata;
@@ -152,17 +156,166 @@
152 QCOMPARE(metadata[Metadata::OBJECT_PATH_KEY].toString(), objectPath);156 QCOMPARE(metadata[Metadata::OBJECT_PATH_KEY].toString(), objectPath);
153}157}
154158
155void TestMetadata::testHasObjectPathTrue() {159void
160TestMetadata::testHasObjectPathTrue() {
156 Metadata metadata;161 Metadata metadata;
157 metadata.setObjectPath("command");162 metadata.setObjectPath("command");
158163
159 QVERIFY(metadata.hasObjectPath());164 QVERIFY(metadata.hasObjectPath());
160}165}
161166
162void TestMetadata::testHasObjectPathFalse() {167void
168TestMetadata::testHasObjectPathFalse() {
163 Metadata metadata;169 Metadata metadata;
164 QVERIFY(!metadata.hasObjectPath());170 QVERIFY(!metadata.hasObjectPath());
165}171}
166172
173void
174TestMetadata::testTitle_data() {
175 QTest::addColumn<QString>("title");
176
177 QTest::newRow("Profile image") << "Profile image";
178 QTest::newRow("Americana.mp3") << "Americana.mp3";
179 QTest::newRow("Test title") << "Test title";
180}
181
182void
183TestMetadata::testTitle() {
184 QFETCH(QString, title);
185
186 Metadata metadata;
187 metadata[Metadata::TITLE_KEY] = title;
188 QCOMPARE(title, metadata.title());
189}
190
191void
192TestMetadata::testSetTitle_data() {
193 QTest::addColumn<QString>("title");
194
195 QTest::newRow("Profile image") << "Profile image";
196 QTest::newRow("Americana.mp3") << "Americana.mp3";
197 QTest::newRow("Test title") << "Test title";
198}
199
200void
201TestMetadata::testSetTitle() {
202 QFETCH(QString, title);
203
204 Metadata metadata;
205 metadata.setTitle(title);
206 QCOMPARE(metadata[Metadata::TITLE_KEY].toString(), title);
207}
208
209void
210TestMetadata::testHasTitleTrue() {
211 Metadata metadata;
212 metadata.setTitle("tlte");
213
214 QVERIFY(metadata.hasTitle());
215}
216
217void
218TestMetadata::testHasTitleFalse() {
219 Metadata metadata;
220 QVERIFY(!metadata.hasTitle());
221}
222
223void
224TestMetadata::testIndicator_data() {
225 QTest::addColumn<bool>("show");
226
227 QTest::newRow("True") << true;
228 QTest::newRow("False") << false;
229}
230
231void
232TestMetadata::testIndicator() {
233 QFETCH(bool, show);
234
235 Metadata metadata;
236 metadata[Metadata::SHOW_IN_INDICATOR_KEY] = show;
237 QCOMPARE(show, metadata.showInIndicator());
238}
239
240void
241TestMetadata::testSetIndicator_data() {
242 QTest::addColumn<bool>("show");
243
244 QTest::newRow("True") << true;
245 QTest::newRow("False") << false;
246}
247
248void
249TestMetadata::testSetIndicator() {
250 QFETCH(bool, show);
251
252 Metadata metadata;
253 metadata.setShowInIndicator(show);
254 QCOMPARE(metadata[Metadata::SHOW_IN_INDICATOR_KEY].toBool(), show);
255}
256
257void
258TestMetadata::testHasIndicatorTrue() {
259 Metadata metadata;
260 metadata.setShowInIndicator(true);
261
262 QVERIFY(metadata.hasShowInIndicator());
263}
264
265void
266TestMetadata::testHasIndicatorFasle() {
267 Metadata metadata;
268 QVERIFY(!metadata.hasShowInIndicator());
269}
270
271void
272TestMetadata::testClick_data() {
273 QTest::addColumn<QString>("click");
274
275 QTest::newRow("My click") << "My click";
276 QTest::newRow("Maps") << "Maps";
277 QTest::newRow("Test") << "Test";
278}
279
280void
281TestMetadata::testClick() {
282 QFETCH(QString, click);
283
284 Metadata metadata;
285 metadata[Metadata::CLICK_PACKAGE_KEY] = click;
286 QCOMPARE(click, metadata.clickPackage());
287}
288
289void
290TestMetadata::testSetClick_data() {
291 QTest::addColumn<QString>("click");
292
293 QTest::newRow("My click") << "My click";
294 QTest::newRow("Maps") << "Maps";
295 QTest::newRow("Test") << "Test";
296}
297
298void
299TestMetadata::testSetClick() {
300 QFETCH(QString, click);
301
302 Metadata metadata;
303 metadata.setClickPackage(click);
304 QCOMPARE(metadata[Metadata::CLICK_PACKAGE_KEY].toString(), click);
305}
306
307void
308TestMetadata::testHasClickTrue() {
309 Metadata metadata;
310 metadata.setClickPackage("test");
311 QVERIFY(metadata.hasClickPackage());
312}
313
314void
315TestMetadata::testHasClickFalse() {
316 Metadata metadata;
317 QVERIFY(!metadata.hasClickPackage());
318}
319
167QTEST_MAIN(TestMetadata)320QTEST_MAIN(TestMetadata)
168#include "moc_test_metadata.cpp"321#include "moc_test_metadata.cpp"
169322
=== modified file 'tests/downloads/daemon/test_metadata.h'
--- tests/downloads/daemon/test_metadata.h 2014-07-03 09:01:01 +0000
+++ tests/downloads/daemon/test_metadata.h 2014-09-22 17:35:56 +0000
@@ -49,6 +49,24 @@
49 void testSetObjectPath();49 void testSetObjectPath();
50 void testHasObjectPathTrue();50 void testHasObjectPathTrue();
51 void testHasObjectPathFalse();51 void testHasObjectPathFalse();
52 void testTitle_data();
53 void testTitle();
54 void testSetTitle_data();
55 void testSetTitle();
56 void testHasTitleTrue();
57 void testHasTitleFalse();
58 void testIndicator_data();
59 void testIndicator();
60 void testSetIndicator_data();
61 void testSetIndicator();
62 void testHasIndicatorTrue();
63 void testHasIndicatorFasle();
64 void testClick_data();
65 void testClick();
66 void testSetClick_data();
67 void testSetClick();
68 void testHasClickTrue();
69 void testHasClickFalse();
52};70};
5371
54#endif // TEST_METADATA_H72#endif // TEST_METADATA_H
5573
=== modified file 'tests/downloads/daemon/test_mms_download.cpp'
--- tests/downloads/daemon/test_mms_download.cpp 2014-07-03 09:01:01 +0000
+++ tests/downloads/daemon/test_mms_download.cpp 2014-09-22 17:35:56 +0000
@@ -69,4 +69,29 @@
69 QVERIFY(!down->addToQueue());69 QVERIFY(!down->addToQueue());
70}70}
7171
72void
73TestMmsDownload::testShowInIndicator() {
74 QString id = "id of the download";
75 QString appId = "MY APP";
76 QString path = "my-file";
77 bool isConfined = false;
78 QString rootPath = "/root/path/to/use";
79 QUrl url("http://example.com");
80 QVariantMap metadata;
81 metadata[Ubuntu::Transfers::Metadata::SHOW_IN_INDICATOR_KEY] = true;
82 QMap<QString, QString> headers;
83 QString hostname = "http://example.com";
84 int port = 80;
85 QString username = "username";
86 QString password = "password";
87 QNetworkProxy proxy(QNetworkProxy::HttpProxy, hostname,
88 port, username, password);
89
90 QScopedPointer<PublicMmsFileDownload> down(
91 new PublicMmsFileDownload(id, appId, path, isConfined, rootPath,
92 url, metadata, headers, proxy));
93 auto downMetadata = down->metadata();
94 QVERIFY(!downMetadata[Ubuntu::Transfers::Metadata::SHOW_IN_INDICATOR_KEY].toBool());
95}
96
72QTEST_MAIN(TestMmsDownload)97QTEST_MAIN(TestMmsDownload)
7398
=== modified file 'tests/downloads/daemon/test_mms_download.h'
--- tests/downloads/daemon/test_mms_download.h 2014-07-03 09:01:01 +0000
+++ tests/downloads/daemon/test_mms_download.h 2014-09-22 17:35:56 +0000
@@ -61,6 +61,7 @@
6161
62 void testNetworkAccessManager();62 void testNetworkAccessManager();
63 void testAddToQueue();63 void testAddToQueue();
64 void testShowInIndicator();
6465
65};66};
6667

Subscribers

People subscribed via source and target branches