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
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2014-07-17 08:40:07 +0000
3+++ CMakeLists.txt 2014-09-22 17:35:56 +0000
4@@ -31,7 +31,7 @@
5 )
6
7 set(UDM_VERSION_MAJOR 0)
8-set(UDM_VERSION_MINOR 7)
9+set(UDM_VERSION_MINOR 9)
10 set(UDM_VERSION_PATCH 0)
11
12 find_package(Gtest REQUIRED)
13
14=== modified file 'debian/changelog'
15--- debian/changelog 2014-09-16 02:33:46 +0000
16+++ debian/changelog 2014-09-22 17:35:56 +0000
17@@ -1,3 +1,10 @@
18+ubuntu-download-manager (0.9) UNRELEASED; urgency=medium
19+
20+ * Add new properties that can be used to filter the downloads shown in the
21+ indicator. This changes the ABI.
22+
23+ -- Manuel de la Pena <manuel.delapena@canonical.com> Thu, 04 Sep 2014 13:36:59 +0200
24+
25 ubuntu-download-manager (0.8+14.10.20140916-0ubuntu1) 14.09; urgency=low
26
27 [ Sergio Schvezov ]
28
29=== modified file 'debian/libudm-common0.symbols'
30--- debian/libudm-common0.symbols 2014-07-14 15:14:37 +0000
31+++ debian/libudm-common0.symbols 2014-09-22 17:35:56 +0000
32@@ -74,6 +74,18 @@
33 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.20140618
34 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.20140618
35 (c++)"Ubuntu::Transfers::System::Logger::~Logger()@Base" 0.4+14.10.20140618
36+ (c++)"Ubuntu::Transfers::Metadata::setClickPackage(QString const&)@Base" 0replaceme
37+ (c++)"Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY@Base" 0replaceme
38+ (c++)"Ubuntu::Transfers::Metadata::setShowInIndicator(bool)@Base" 0replaceme
39+ (c++)"Ubuntu::Transfers::Metadata::SHOW_IN_INDICATOR_KEY@Base" 0replaceme
40+ (c++)"Ubuntu::Transfers::Metadata::setTitle(QString const&)@Base" 0replaceme
41+ (c++)"Ubuntu::Transfers::Metadata::TITLE_KEY@Base" 0replaceme
42+ (c++)"Ubuntu::Transfers::Metadata::clickPackage() const@Base" 0replaceme
43+ (c++)"Ubuntu::Transfers::Metadata::hasClickPackage() const@Base" 0replaceme
44+ (c++)"Ubuntu::Transfers::Metadata::showInIndicator() const@Base" 0replaceme
45+ (c++)"Ubuntu::Transfers::Metadata::hasShowInIndicator() const@Base" 0replaceme
46+ (c++)"Ubuntu::Transfers::Metadata::title() const@Base" 0replaceme
47+ (c++)"Ubuntu::Transfers::Metadata::hasTitle() const@Base" 0replaceme
48 (c++)"Ubuntu::Transfers::Metadata::setCommand(QString const&)@Base" 0.4+14.10.20140618
49 (c++)"Ubuntu::Transfers::Metadata::COMMAND_KEY@Base" 0.4+14.10.20140618
50 (c++)"Ubuntu::Transfers::Metadata::setLocalPath(QString const&)@Base" 0.4+14.10.20140618
51
52=== modified file 'docs/dbus/com.canonical.applications.download.xml'
53--- docs/dbus/com.canonical.applications.download.xml 2014-06-18 11:10:18 +0000
54+++ docs/dbus/com.canonical.applications.download.xml 2014-09-22 17:35:56 +0000
55@@ -14,6 +14,10 @@
56 <arg name="data" type="a{sv}" direction="out" />
57 </method>
58
59+ <method name="throttle">
60+ <arg name="speed" type="t" direction="out"/>
61+ </method>
62+
63 <method name="setThrottle">
64 <arg name="speed" type="t" direction="in"/>
65 </method>
66@@ -28,10 +32,6 @@
67 <arg name="headers" type="a{ss}" direction="in"/>
68 </method>
69
70- <method name="throttle">
71- <arg name="speed" type="t" direction="out"/>
72- </method>
73-
74 <method name="setDestinationDir">
75 <arg name="path" type="s" direction="in"/>
76 </method>
77@@ -102,5 +102,11 @@
78 <arg name="path" type="s" direction="out"/>
79 </signal>
80
81+ <property access="read" type="b" name="ShowInIndicator" />
82+
83+ <property access="read" type="s" name="Title" />
84+
85+ <property access="read" type="s" name="ClickPackage" />
86+
87 </interface>
88 </node>
89
90=== modified file 'src/common/public/ubuntu/transfers/metadata.cpp'
91--- src/common/public/ubuntu/transfers/metadata.cpp 2014-03-26 10:00:28 +0000
92+++ src/common/public/ubuntu/transfers/metadata.cpp 2014-09-22 17:35:56 +0000
93@@ -26,11 +26,14 @@
94 const QString Metadata::COMMAND_FILE_KEY = "$file";
95 const QString Metadata::LOCAL_PATH_KEY = "local-path";
96 const QString Metadata::OBJECT_PATH_KEY = "objectpath";
97+const QString Metadata::TITLE_KEY = "title";
98+const QString Metadata::SHOW_IN_INDICATOR_KEY = "indicator-shown";
99+const QString Metadata::CLICK_PACKAGE_KEY = "click-package";
100
101 QString
102 Metadata::command() const {
103 return (contains(Metadata::COMMAND_KEY))?
104- value(COMMAND_KEY).toString():"";
105+ value(Metadata::COMMAND_KEY).toString():"";
106 }
107
108 void
109@@ -46,7 +49,7 @@
110 QString
111 Metadata::localPath() const {
112 return (contains(Metadata::LOCAL_PATH_KEY))?
113- value(LOCAL_PATH_KEY).toString():"";
114+ value(Metadata::LOCAL_PATH_KEY).toString():"";
115 }
116
117 void
118@@ -62,7 +65,7 @@
119 QString
120 Metadata::objectPath() const {
121 return (contains(Metadata::OBJECT_PATH_KEY))?
122- value(OBJECT_PATH_KEY).toString():"";
123+ value(Metadata::OBJECT_PATH_KEY).toString():"";
124 }
125
126 void
127@@ -75,6 +78,54 @@
128 return contains(Metadata::OBJECT_PATH_KEY);
129 }
130
131+QString
132+Metadata::title() const {
133+ return (contains(Metadata::TITLE_KEY))?
134+ value(Metadata::TITLE_KEY).toString():"";
135+}
136+
137+void
138+Metadata::setTitle(const QString& title) {
139+ insert(Metadata::TITLE_KEY, title);
140+}
141+
142+bool
143+Metadata::hasTitle() const {
144+ return contains(Metadata::TITLE_KEY);
145+}
146+
147+bool
148+Metadata::showInIndicator() const {
149+ return (contains(Metadata::SHOW_IN_INDICATOR_KEY))?
150+ value(Metadata::SHOW_IN_INDICATOR_KEY).toBool():true;
151+}
152+
153+void
154+Metadata::setShowInIndicator(bool shown) {
155+ insert(Metadata::SHOW_IN_INDICATOR_KEY, shown);
156+}
157+
158+bool
159+Metadata::hasShowInIndicator() const {
160+ return contains(Metadata::SHOW_IN_INDICATOR_KEY);
161+}
162+
163+QString
164+Metadata::clickPackage() const {
165+ return (contains(Metadata::CLICK_PACKAGE_KEY))?
166+ value(Metadata::CLICK_PACKAGE_KEY).toString():"";
167+}
168+
169+void
170+Metadata::setClickPackage(const QString& click) {
171+ insert(Metadata::CLICK_PACKAGE_KEY, click);
172+}
173+
174+bool
175+Metadata::hasClickPackage() const {
176+ return contains(Metadata::CLICK_PACKAGE_KEY);
177+}
178+
179 } // DownloadManager
180
181 } // Ubuntu
182
183=== modified file 'src/common/public/ubuntu/transfers/metadata.h'
184--- src/common/public/ubuntu/transfers/metadata.h 2014-03-26 10:00:28 +0000
185+++ src/common/public/ubuntu/transfers/metadata.h 2014-09-22 17:35:56 +0000
186@@ -34,6 +34,9 @@
187 static const QString COMMAND_FILE_KEY;
188 static const QString LOCAL_PATH_KEY;
189 static const QString OBJECT_PATH_KEY;
190+ static const QString TITLE_KEY;
191+ static const QString SHOW_IN_INDICATOR_KEY;
192+ static const QString CLICK_PACKAGE_KEY;
193
194 // accessors to simplify the use of the metadata
195 QString command() const;
196@@ -47,6 +50,18 @@
197 QString objectPath() const;
198 void setObjectPath(const QString& path);
199 bool hasObjectPath() const;
200+
201+ QString title() const;
202+ void setTitle(const QString& title);
203+ bool hasTitle() const;
204+
205+ bool showInIndicator() const;
206+ void setShowInIndicator(bool shown);
207+ bool hasShowInIndicator() const;
208+
209+ QString clickPackage() const;
210+ void setClickPackage(const QString& click);
211+ bool hasClickPackage() const;
212 };
213
214 } // DownloadManager
215
216=== modified file 'src/downloads/priv/ubuntu/downloads/download.cpp'
217--- src/downloads/priv/ubuntu/downloads/download.cpp 2014-07-16 08:41:38 +0000
218+++ src/downloads/priv/ubuntu/downloads/download.cpp 2014-09-22 17:35:56 +0000
219@@ -17,6 +17,7 @@
220 */
221
222 #include <QStringList>
223+#include "ubuntu/transfers/metadata.h"
224 #include "ubuntu/transfers/system/logger.h"
225 #include "download.h"
226
227@@ -57,6 +58,24 @@
228 emit error(errorStr);
229 }
230
231+QString
232+Download::clickPackage() const {
233+ return (_metadata.contains(Metadata::CLICK_PACKAGE_KEY))?
234+ _metadata.value(Metadata::CLICK_PACKAGE_KEY).toString():"";
235+}
236+
237+bool
238+Download::showInIndicator() const {
239+ return (_metadata.contains(Metadata::SHOW_IN_INDICATOR_KEY))?
240+ _metadata.value(Metadata::SHOW_IN_INDICATOR_KEY).toBool():true;
241+}
242+
243+QString
244+Download::title() const {
245+ return (_metadata.contains(Metadata::TITLE_KEY))?
246+ _metadata.value(Metadata::TITLE_KEY).toString():"";
247+}
248+
249 } // Daemon
250
251 } // DownloadManager
252
253=== modified file 'src/downloads/priv/ubuntu/downloads/download.h'
254--- src/downloads/priv/ubuntu/downloads/download.h 2014-07-16 08:41:38 +0000
255+++ src/downloads/priv/ubuntu/downloads/download.h 2014-09-22 17:35:56 +0000
256@@ -41,6 +41,9 @@
257
258 class Download : public Transfer {
259 Q_OBJECT
260+ Q_PROPERTY(QString ClickPackage READ clickPackage)
261+ Q_PROPERTY(bool ShowInIndicator READ showInIndicator)
262+ Q_PROPERTY(QString Title READ title)
263
264 public:
265 Download(const QString& id,
266@@ -95,9 +98,14 @@
267
268 protected:
269 virtual void emitError(const QString& error);
270+ virtual QString clickPackage() const;
271+ virtual bool showInIndicator() const;
272+ virtual QString title() const;
273+
274+ protected:
275+ QVariantMap _metadata;
276
277 private:
278- QVariantMap _metadata;
279 QMap<QString, QString> _headers;
280 QObject* _adaptor = nullptr;
281 };
282
283=== modified file 'src/downloads/priv/ubuntu/downloads/download_adaptor.cpp'
284--- src/downloads/priv/ubuntu/downloads/download_adaptor.cpp 2014-06-18 11:10:18 +0000
285+++ src/downloads/priv/ubuntu/downloads/download_adaptor.cpp 2014-09-22 17:35:56 +0000
286@@ -2,7 +2,7 @@
287 * This file was generated by qdbusxml2cpp version 0.8
288 * Command line was: qdbusxml2cpp -c DownloadAdaptor -a download_adaptor.h:download_adaptor.cpp com.canonical.applications.download.xml
289 *
290- * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
291+ * qdbusxml2cpp is Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
292 *
293 * This is an auto-generated file.
294 * Do not edit! All changes made to it will be lost.
295@@ -33,6 +33,24 @@
296 // destructor
297 }
298
299+QString DownloadAdaptor::clickPackage() const
300+{
301+ // get the value of property ClickPackage
302+ return qvariant_cast< QString >(parent()->property("ClickPackage"));
303+}
304+
305+bool DownloadAdaptor::showInIndicator() const
306+{
307+ // get the value of property ShowInIndicator
308+ return qvariant_cast< bool >(parent()->property("ShowInIndicator"));
309+}
310+
311+QString DownloadAdaptor::title() const
312+{
313+ // get the value of property Title
314+ return qvariant_cast< QString >(parent()->property("Title"));
315+}
316+
317 void DownloadAdaptor::allowGSMDownload(bool allowed)
318 {
319 // handle method call com.canonical.applications.Download.allowGSMDownload
320
321=== modified file 'src/downloads/priv/ubuntu/downloads/download_adaptor.h'
322--- src/downloads/priv/ubuntu/downloads/download_adaptor.h 2014-06-18 11:10:18 +0000
323+++ src/downloads/priv/ubuntu/downloads/download_adaptor.h 2014-09-22 17:35:56 +0000
324@@ -2,7 +2,7 @@
325 * This file was generated by qdbusxml2cpp version 0.8
326 * Command line was: qdbusxml2cpp -c DownloadAdaptor -a download_adaptor.h:download_adaptor.cpp com.canonical.applications.download.xml
327 *
328- * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
329+ * qdbusxml2cpp is Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
330 *
331 * This is an auto-generated file.
332 * This file may have been hand-edited. Look for HAND-EDIT comments
333@@ -44,6 +44,9 @@
334 " <annotation value=\"QVariantMap\" name=\"org.qtproject.QtDBus.QtTypeName.Out0\"/>\n"
335 " <arg direction=\"out\" type=\"a{sv}\" name=\"data\"/>\n"
336 " </method>\n"
337+" <method name=\"throttle\">\n"
338+" <arg direction=\"out\" type=\"t\" name=\"speed\"/>\n"
339+" </method>\n"
340 " <method name=\"setThrottle\">\n"
341 " <arg direction=\"in\" type=\"t\" name=\"speed\"/>\n"
342 " </method>\n"
343@@ -55,9 +58,6 @@
344 " <annotation value=\"StringMap\" name=\"org.qtproject.QtDBus.QtTypeName.In0\"/>\n"
345 " <arg direction=\"in\" type=\"a{ss}\" name=\"headers\"/>\n"
346 " </method>\n"
347-" <method name=\"throttle\">\n"
348-" <arg direction=\"out\" type=\"t\" name=\"speed\"/>\n"
349-" </method>\n"
350 " <method name=\"setDestinationDir\">\n"
351 " <arg direction=\"in\" type=\"s\" name=\"path\"/>\n"
352 " </method>\n"
353@@ -112,6 +112,9 @@
354 " <signal name=\"processing\">\n"
355 " <arg direction=\"out\" type=\"s\" name=\"path\"/>\n"
356 " </signal>\n"
357+" <property access=\"read\" type=\"b\" name=\"ShowInIndicator\"/>\n"
358+" <property access=\"read\" type=\"s\" name=\"Title\"/>\n"
359+" <property access=\"read\" type=\"s\" name=\"ClickPackage\"/>\n"
360 " </interface>\n"
361 "")
362 public:
363@@ -119,6 +122,15 @@
364 virtual ~DownloadAdaptor();
365
366 public: // PROPERTIES
367+ Q_PROPERTY(QString ClickPackage READ clickPackage)
368+ QString clickPackage() const;
369+
370+ Q_PROPERTY(bool ShowInIndicator READ showInIndicator)
371+ bool showInIndicator() const;
372+
373+ Q_PROPERTY(QString Title READ title)
374+ QString title() const;
375+
376 public Q_SLOTS: // METHODS
377 void allowGSMDownload(bool allowed);
378 void cancel();
379
380=== modified file 'src/downloads/priv/ubuntu/downloads/file_download.cpp'
381--- src/downloads/priv/ubuntu/downloads/file_download.cpp 2014-08-05 14:38:52 +0000
382+++ src/downloads/priv/ubuntu/downloads/file_download.cpp 2014-09-22 17:35:56 +0000
383@@ -532,7 +532,7 @@
384 // file path that will be used by the download, do not do it if the app is
385 // unconfined
386 if ((_reply->hasRawHeader(CONTENT_DISPOSITION) && (
387- isConfined() || !metadata().contains(Metadata::LOCAL_PATH_KEY)))) {
388+ isConfined() || !_metadata.contains(Metadata::LOCAL_PATH_KEY)))) {
389 QString contentDisposition = _reply->rawHeader(CONTENT_DISPOSITION);
390 DOWN_LOG(INFO) << "Content-Disposition header" << contentDisposition;
391
392@@ -579,7 +579,7 @@
393 // means we are done here else we execute the command AND raise the
394 // finish signals once the command was done (or an error occurred in
395 // the command execution.
396- if (metadata().contains(Metadata::COMMAND_KEY)) {
397+ if (_metadata.contains(Metadata::COMMAND_KEY)) {
398 // just emit processing if we DO NOT have a hash because else we
399 // already emitted it.
400 if (_hash.isEmpty()) {
401@@ -587,7 +587,7 @@
402 }
403 // toStringList will return an empty list if it cannot be converted
404 QStringList commandData =
405- metadata()[Metadata::COMMAND_KEY].toStringList();
406+ _metadata[Metadata::COMMAND_KEY].toStringList();
407 if (commandData.count() == 0) {
408 DOWN_LOG(ERROR) << "COMMAND DATA MISSING";
409 emitError(COMMAND_ERROR);
410@@ -746,6 +746,11 @@
411 _connected = networkInfo->isOnline();
412 _downloading = false;
413
414+ // applications that are confined are not allowed to set the click metadata.
415+ if (isConfined() && _metadata.contains(Metadata::CLICK_PACKAGE_KEY)) {
416+ _metadata.remove(Metadata::CLICK_PACKAGE_KEY);
417+ }
418+
419 // connect to the network changed signals
420 CHECK(connect(networkInfo, &SystemNetworkInfo::onlineStateChanged,
421 this, &FileDownload::onOnlineStateChanged))
422@@ -815,10 +820,8 @@
423 _basename = UuidUtils::getDBusString(uuidFactory->createUuid());
424 }
425
426- auto metadataMap = metadata();
427-
428- if (!isConfined() && metadataMap.contains(Metadata::LOCAL_PATH_KEY)) {
429- _filePath = metadataMap[Metadata::LOCAL_PATH_KEY].toString();
430+ if (!isConfined() && _metadata.contains(Metadata::LOCAL_PATH_KEY)) {
431+ _filePath = _metadata[Metadata::LOCAL_PATH_KEY].toString();
432 _tempFilePath = _fileNameMutex->lockFileName(
433 _filePath + TEMP_EXTENSION);
434
435@@ -862,7 +865,7 @@
436
437 void
438 FileDownload::unlockFilePath() {
439- if (!isConfined() && metadata().contains(Metadata::LOCAL_PATH_KEY)) {
440+ if (!isConfined() && _metadata.contains(Metadata::LOCAL_PATH_KEY)) {
441 _fileNameMutex->unlockFileName(_tempFilePath);
442 } else {
443 _fileNameMutex->unlockFileName(_filePath);
444
445=== modified file 'src/downloads/priv/ubuntu/downloads/mms_file_download.cpp'
446--- src/downloads/priv/ubuntu/downloads/mms_file_download.cpp 2014-04-15 12:37:16 +0000
447+++ src/downloads/priv/ubuntu/downloads/mms_file_download.cpp 2014-09-22 17:35:56 +0000
448@@ -39,6 +39,8 @@
449 metadata, headers, parent){
450 _requestFactory = new ApnRequestFactory(proxy);
451 setAddToQueue(false);
452+ // mms downloads should by default not be shown in the indicator.
453+ _metadata[Ubuntu::Transfers::Metadata::SHOW_IN_INDICATOR_KEY] = false;
454 }
455
456 MmsFileDownload::~MmsFileDownload() {
457
458=== modified file 'tests/downloads/client/test_client_manager.cpp'
459--- tests/downloads/client/test_client_manager.cpp 2014-07-03 09:01:01 +0000
460+++ tests/downloads/client/test_client_manager.cpp 2014-09-22 17:35:56 +0000
461@@ -318,7 +318,7 @@
462 }
463 // ensure that all of the are created
464 QVERIFY(managerSpy.ensureSignalEmitted());
465- QTRY_COMPARE(count + metadataCount, managerSpy.count());
466+ QTRY_COMPARE_WITH_TIMEOUT(count + metadataCount, managerSpy.count(), 10000);
467 _man->getAllDownloadsWithMetadata(key, value, cb, cb);
468
469 QVERIFY(listSpy.ensureSignalEmitted());
470
471=== modified file 'tests/downloads/daemon/test_download.cpp'
472--- tests/downloads/daemon/test_download.cpp 2014-07-30 09:19:10 +0000
473+++ tests/downloads/daemon/test_download.cpp 2014-09-22 17:35:56 +0000
474@@ -20,6 +20,7 @@
475 #include <QNetworkRequest>
476 #include <QSslError>
477 #include <ubuntu/download_manager/metatypes.h>
478+#include <ubuntu/transfers/metadata.h>
479 #include <ubuntu/transfers/system/hash_algorithm.h>
480 #include <ubuntu/transfers/system/uuid_utils.h>
481 #include <network_reply.h>
482@@ -176,6 +177,34 @@
483 }
484
485 void
486+TestDownload::testConfinedNoClickMetadata() {
487+ QVariantMap metadata;
488+ metadata[Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY] = "click";
489+
490+ EXPECT_CALL(*_networkInfo, isOnline())
491+ .WillRepeatedly(Return(true));
492+
493+ QScopedPointer<FileDownload> download(new FileDownload(_id, _appId, _path,
494+ true, _rootPath, _url, metadata, _headers));
495+ auto downMetadata = download->metadata();
496+ QVERIFY(!downMetadata.contains(Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY));
497+}
498+
499+void
500+TestDownload::testUnconfinedWithClickMetadata() {
501+ QVariantMap metadata;
502+ metadata[Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY] = "click";
503+
504+ EXPECT_CALL(*_networkInfo, isOnline())
505+ .WillRepeatedly(Return(true));
506+
507+ QScopedPointer<FileDownload> download(new FileDownload(_id, _appId, _path,
508+ false, _rootPath, _url, metadata, _headers));
509+ auto downMetadata = download->metadata();
510+ QVERIFY(downMetadata.contains(Ubuntu::Transfers::Metadata::CLICK_PACKAGE_KEY));
511+}
512+
513+void
514 TestDownload::testPath_data() {
515 // create a number of rows with a diff path to ensure that
516 // the accessor does return the correct one
517
518=== modified file 'tests/downloads/daemon/test_download.h'
519--- tests/downloads/daemon/test_download.h 2014-07-16 11:46:55 +0000
520+++ tests/downloads/daemon/test_download.h 2014-09-22 17:35:56 +0000
521@@ -54,6 +54,8 @@
522 // constructors tests
523 void testNoHashConstructor();
524 void testHashConstructor();
525+ void testConfinedNoClickMetadata();
526+ void testUnconfinedWithClickMetadata();
527
528 // data function to be used for the accessor tests
529 void testNoHashConstructor_data();
530
531=== modified file 'tests/downloads/daemon/test_metadata.cpp'
532--- tests/downloads/daemon/test_metadata.cpp 2014-07-03 09:01:01 +0000
533+++ tests/downloads/daemon/test_metadata.cpp 2014-09-22 17:35:56 +0000
534@@ -120,7 +120,8 @@
535 QVERIFY(!metadata.hasLocalPath());
536 }
537
538-void TestMetadata::testObjectPath_data() {
539+void
540+TestMetadata::testObjectPath_data() {
541 QTest::addColumn<QString>("objectPath");
542
543 QTest::newRow("/com/canonica/si") << "/com/canonical/si";
544@@ -128,7 +129,8 @@
545 QTest::newRow("/com/data/download") << "/com/data/download";
546 }
547
548-void TestMetadata::testObjectPath() {
549+void
550+TestMetadata::testObjectPath() {
551 QFETCH(QString, objectPath);
552
553 Metadata metadata;
554@@ -136,7 +138,8 @@
555 QCOMPARE(objectPath, metadata.objectPath());
556 }
557
558-void TestMetadata::testSetObjectPath_data() {
559+void
560+TestMetadata::testSetObjectPath_data() {
561 QTest::addColumn<QString>("objectPath");
562
563 QTest::newRow("/com/canonica/si") << "/com/canonical/si";
564@@ -144,7 +147,8 @@
565 QTest::newRow("/com/data/download") << "/com/data/download";
566 }
567
568-void TestMetadata::testSetObjectPath() {
569+void
570+TestMetadata::testSetObjectPath() {
571 QFETCH(QString, objectPath);
572
573 Metadata metadata;
574@@ -152,17 +156,166 @@
575 QCOMPARE(metadata[Metadata::OBJECT_PATH_KEY].toString(), objectPath);
576 }
577
578-void TestMetadata::testHasObjectPathTrue() {
579+void
580+TestMetadata::testHasObjectPathTrue() {
581 Metadata metadata;
582 metadata.setObjectPath("command");
583
584 QVERIFY(metadata.hasObjectPath());
585 }
586
587-void TestMetadata::testHasObjectPathFalse() {
588+void
589+TestMetadata::testHasObjectPathFalse() {
590 Metadata metadata;
591 QVERIFY(!metadata.hasObjectPath());
592 }
593
594+void
595+TestMetadata::testTitle_data() {
596+ QTest::addColumn<QString>("title");
597+
598+ QTest::newRow("Profile image") << "Profile image";
599+ QTest::newRow("Americana.mp3") << "Americana.mp3";
600+ QTest::newRow("Test title") << "Test title";
601+}
602+
603+void
604+TestMetadata::testTitle() {
605+ QFETCH(QString, title);
606+
607+ Metadata metadata;
608+ metadata[Metadata::TITLE_KEY] = title;
609+ QCOMPARE(title, metadata.title());
610+}
611+
612+void
613+TestMetadata::testSetTitle_data() {
614+ QTest::addColumn<QString>("title");
615+
616+ QTest::newRow("Profile image") << "Profile image";
617+ QTest::newRow("Americana.mp3") << "Americana.mp3";
618+ QTest::newRow("Test title") << "Test title";
619+}
620+
621+void
622+TestMetadata::testSetTitle() {
623+ QFETCH(QString, title);
624+
625+ Metadata metadata;
626+ metadata.setTitle(title);
627+ QCOMPARE(metadata[Metadata::TITLE_KEY].toString(), title);
628+}
629+
630+void
631+TestMetadata::testHasTitleTrue() {
632+ Metadata metadata;
633+ metadata.setTitle("tlte");
634+
635+ QVERIFY(metadata.hasTitle());
636+}
637+
638+void
639+TestMetadata::testHasTitleFalse() {
640+ Metadata metadata;
641+ QVERIFY(!metadata.hasTitle());
642+}
643+
644+void
645+TestMetadata::testIndicator_data() {
646+ QTest::addColumn<bool>("show");
647+
648+ QTest::newRow("True") << true;
649+ QTest::newRow("False") << false;
650+}
651+
652+void
653+TestMetadata::testIndicator() {
654+ QFETCH(bool, show);
655+
656+ Metadata metadata;
657+ metadata[Metadata::SHOW_IN_INDICATOR_KEY] = show;
658+ QCOMPARE(show, metadata.showInIndicator());
659+}
660+
661+void
662+TestMetadata::testSetIndicator_data() {
663+ QTest::addColumn<bool>("show");
664+
665+ QTest::newRow("True") << true;
666+ QTest::newRow("False") << false;
667+}
668+
669+void
670+TestMetadata::testSetIndicator() {
671+ QFETCH(bool, show);
672+
673+ Metadata metadata;
674+ metadata.setShowInIndicator(show);
675+ QCOMPARE(metadata[Metadata::SHOW_IN_INDICATOR_KEY].toBool(), show);
676+}
677+
678+void
679+TestMetadata::testHasIndicatorTrue() {
680+ Metadata metadata;
681+ metadata.setShowInIndicator(true);
682+
683+ QVERIFY(metadata.hasShowInIndicator());
684+}
685+
686+void
687+TestMetadata::testHasIndicatorFasle() {
688+ Metadata metadata;
689+ QVERIFY(!metadata.hasShowInIndicator());
690+}
691+
692+void
693+TestMetadata::testClick_data() {
694+ QTest::addColumn<QString>("click");
695+
696+ QTest::newRow("My click") << "My click";
697+ QTest::newRow("Maps") << "Maps";
698+ QTest::newRow("Test") << "Test";
699+}
700+
701+void
702+TestMetadata::testClick() {
703+ QFETCH(QString, click);
704+
705+ Metadata metadata;
706+ metadata[Metadata::CLICK_PACKAGE_KEY] = click;
707+ QCOMPARE(click, metadata.clickPackage());
708+}
709+
710+void
711+TestMetadata::testSetClick_data() {
712+ QTest::addColumn<QString>("click");
713+
714+ QTest::newRow("My click") << "My click";
715+ QTest::newRow("Maps") << "Maps";
716+ QTest::newRow("Test") << "Test";
717+}
718+
719+void
720+TestMetadata::testSetClick() {
721+ QFETCH(QString, click);
722+
723+ Metadata metadata;
724+ metadata.setClickPackage(click);
725+ QCOMPARE(metadata[Metadata::CLICK_PACKAGE_KEY].toString(), click);
726+}
727+
728+void
729+TestMetadata::testHasClickTrue() {
730+ Metadata metadata;
731+ metadata.setClickPackage("test");
732+ QVERIFY(metadata.hasClickPackage());
733+}
734+
735+void
736+TestMetadata::testHasClickFalse() {
737+ Metadata metadata;
738+ QVERIFY(!metadata.hasClickPackage());
739+}
740+
741 QTEST_MAIN(TestMetadata)
742 #include "moc_test_metadata.cpp"
743
744=== modified file 'tests/downloads/daemon/test_metadata.h'
745--- tests/downloads/daemon/test_metadata.h 2014-07-03 09:01:01 +0000
746+++ tests/downloads/daemon/test_metadata.h 2014-09-22 17:35:56 +0000
747@@ -49,6 +49,24 @@
748 void testSetObjectPath();
749 void testHasObjectPathTrue();
750 void testHasObjectPathFalse();
751+ void testTitle_data();
752+ void testTitle();
753+ void testSetTitle_data();
754+ void testSetTitle();
755+ void testHasTitleTrue();
756+ void testHasTitleFalse();
757+ void testIndicator_data();
758+ void testIndicator();
759+ void testSetIndicator_data();
760+ void testSetIndicator();
761+ void testHasIndicatorTrue();
762+ void testHasIndicatorFasle();
763+ void testClick_data();
764+ void testClick();
765+ void testSetClick_data();
766+ void testSetClick();
767+ void testHasClickTrue();
768+ void testHasClickFalse();
769 };
770
771 #endif // TEST_METADATA_H
772
773=== modified file 'tests/downloads/daemon/test_mms_download.cpp'
774--- tests/downloads/daemon/test_mms_download.cpp 2014-07-03 09:01:01 +0000
775+++ tests/downloads/daemon/test_mms_download.cpp 2014-09-22 17:35:56 +0000
776@@ -69,4 +69,29 @@
777 QVERIFY(!down->addToQueue());
778 }
779
780+void
781+TestMmsDownload::testShowInIndicator() {
782+ QString id = "id of the download";
783+ QString appId = "MY APP";
784+ QString path = "my-file";
785+ bool isConfined = false;
786+ QString rootPath = "/root/path/to/use";
787+ QUrl url("http://example.com");
788+ QVariantMap metadata;
789+ metadata[Ubuntu::Transfers::Metadata::SHOW_IN_INDICATOR_KEY] = true;
790+ QMap<QString, QString> headers;
791+ QString hostname = "http://example.com";
792+ int port = 80;
793+ QString username = "username";
794+ QString password = "password";
795+ QNetworkProxy proxy(QNetworkProxy::HttpProxy, hostname,
796+ port, username, password);
797+
798+ QScopedPointer<PublicMmsFileDownload> down(
799+ new PublicMmsFileDownload(id, appId, path, isConfined, rootPath,
800+ url, metadata, headers, proxy));
801+ auto downMetadata = down->metadata();
802+ QVERIFY(!downMetadata[Ubuntu::Transfers::Metadata::SHOW_IN_INDICATOR_KEY].toBool());
803+}
804+
805 QTEST_MAIN(TestMmsDownload)
806
807=== modified file 'tests/downloads/daemon/test_mms_download.h'
808--- tests/downloads/daemon/test_mms_download.h 2014-07-03 09:01:01 +0000
809+++ tests/downloads/daemon/test_mms_download.h 2014-09-22 17:35:56 +0000
810@@ -61,6 +61,7 @@
811
812 void testNetworkAccessManager();
813 void testAddToQueue();
814+ void testShowInIndicator();
815
816 };
817

Subscribers

People subscribed via source and target branches