Merge lp:~mandel/ubuntu-download-manager/empty-group into lp:ubuntu-download-manager

Proposed by Manuel de la Peña
Status: Merged
Approved by: Manuel de la Peña
Approved revision: 166
Merged at revision: 166
Proposed branch: lp:~mandel/ubuntu-download-manager/empty-group
Merge into: lp:ubuntu-download-manager
Diff against target: 76 lines (+32/-6)
3 files modified
libubuntudownloadmanager/downloads/group_download.cpp (+11/-6)
ubuntu-download-manager-tests/downloads/test_group_download.cpp (+18/-0)
ubuntu-download-manager-tests/downloads/test_group_download.h (+3/-0)
To merge this branch: bzr merge lp:~mandel/ubuntu-download-manager/empty-group
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Diego Sarmentero (community) Approve
Review via email: mp+194169@code.launchpad.net

Commit message

Ensure that finished is raised when the group download is empty.

Description of the change

Ensure that finished is raised when the group download is empty.

To post a comment you must log in.
Revision history for this message
Diego Sarmentero (diegosarmentero) wrote :

+1

review: Approve
Revision history for this message
Ying-Chun Liu (paulliu) wrote :

LGTM +1

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'libubuntudownloadmanager/downloads/group_download.cpp'
2--- libubuntudownloadmanager/downloads/group_download.cpp 2013-10-25 11:44:53 +0000
3+++ libubuntudownloadmanager/downloads/group_download.cpp 2013-11-06 15:17:05 +0000
4@@ -174,14 +174,19 @@
5
6 void startDownload() {
7 Q_Q(GroupDownload);
8- foreach(FileDownload* download, _downloads) {
9- Download::State state = download->state();
10- if (state == Download::IDLE) {
11- download->start();
12- download->startDownload();
13+ if (_downloads.count() > 0) {
14+ foreach(FileDownload* download, _downloads) {
15+ Download::State state = download->state();
16+ if (state == Download::IDLE) {
17+ download->start();
18+ download->startDownload();
19+ }
20 }
21+ emit q->started(true);
22+ } else {
23+ emit q->started(true);
24+ emit q->finished(_finishedDownloads);
25 }
26- emit q->started(true);
27 }
28
29 qulonglong progress() {
30
31=== modified file 'ubuntu-download-manager-tests/downloads/test_group_download.cpp'
32--- ubuntu-download-manager-tests/downloads/test_group_download.cpp 2013-10-30 11:04:37 +0000
33+++ ubuntu-download-manager-tests/downloads/test_group_download.cpp 2013-11-06 15:17:05 +0000
34@@ -16,6 +16,7 @@
35 * Boston, MA 02110-1301, USA.
36 */
37
38+#include <QScopedPointer>
39 #include <QSignalSpy>
40 #include <downloads/group_download.h>
41 #include <system/uuid_utils.h>
42@@ -903,3 +904,20 @@
43
44 QVERIFY(group->isValid());
45 }
46+
47+void
48+TestGroupDownload::testEmptyGroupRaisesFinish() {
49+ QList<GroupDownloadStruct> downloadsStruct;
50+ QScopedPointer<GroupDownload> group(new GroupDownload(_id, _path, false, _rootPath,
51+ downloadsStruct, "md5", _isGSMDownloadAllowed, _metadata, _headers,
52+ QSharedPointer<SystemNetworkInfo>(_networkInfo),
53+ QSharedPointer<Factory>(_downloadFactory),
54+ QSharedPointer<FileManager>(_fileManager)));
55+
56+ QSignalSpy startedSpy(group.data(), SIGNAL(started(bool)));
57+ QSignalSpy finishedSpy(group.data(), SIGNAL(finished(QStringList)));
58+
59+ group->startDownload();
60+ QCOMPARE(startedSpy.count(), 1);
61+ QCOMPARE(finishedSpy.count(), 1);
62+}
63
64=== modified file 'ubuntu-download-manager-tests/downloads/test_group_download.h'
65--- ubuntu-download-manager-tests/downloads/test_group_download.h 2013-10-30 11:04:37 +0000
66+++ ubuntu-download-manager-tests/downloads/test_group_download.h 2013-11-06 15:17:05 +0000
67@@ -78,6 +78,9 @@
68 void testInvalidFilePresent();
69 void testValidFileNotPresent();
70
71+ // empty group tests
72+ void testEmptyGroupRaisesFinish();
73+
74 private:
75 QString _id;
76 QString _path;

Subscribers

People subscribed via source and target branches