Merge lp:~mandel/ubuntu-download-manager/finished-download-in-queue into lp:ubuntu-download-manager

Proposed by Manuel de la Peña
Status: Merged
Merged at revision: 76
Proposed branch: lp:~mandel/ubuntu-download-manager/finished-download-in-queue
Merge into: lp:ubuntu-download-manager
Diff against target: 133 lines (+48/-1)
7 files modified
libubuntudownloadmanager/download.cpp (+12/-0)
libubuntudownloadmanager/download.h (+1/-0)
libubuntudownloadmanager/download_queue.cpp (+1/-1)
ubuntu-download-manager-tests/fake_download.cpp (+7/-0)
ubuntu-download-manager-tests/fake_download.h (+3/-0)
ubuntu-download-manager-tests/test_download_queue.cpp (+23/-0)
ubuntu-download-manager-tests/test_download_queue.h (+1/-0)
To merge this branch: bzr merge lp:~mandel/ubuntu-download-manager/finished-download-in-queue
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Needs Fixing
Alejandro J. Cura (community) Approve
Diego Sarmentero (community) Approve
Review via email: mp+176014@code.launchpad.net

Commit message

Ensure that the q is correctly update when we have a finished download.

Description of the change

Ensure that the q is correctly update when we have a finished download.

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
Alejandro J. Cura (alecu) wrote :

This branch actually downloads more than one file. Good work!

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

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'libubuntudownloadmanager/download.cpp'
2--- libubuntudownloadmanager/download.cpp 2013-07-18 15:52:55 +0000
3+++ libubuntudownloadmanager/download.cpp 2013-07-20 15:56:29 +0000
4@@ -64,6 +64,7 @@
5 QString path() const;
6 QUrl url() const;
7 Download::State state();
8+ void setState(Download::State state);
9 QString filePath();
10 QString hash() const;
11 QCryptographicHash::Algorithm hashAlgorithm() const;
12@@ -347,6 +348,11 @@
13 return _state;
14 }
15
16+void DownloadPrivate::setState(Download::State state)
17+{
18+ _state = state;
19+}
20+
21 QString DownloadPrivate::filePath()
22 {
23 if (_currentData)
24@@ -688,6 +694,12 @@
25 return d->state();
26 }
27
28+void Download::setState(Download::State state)
29+{
30+ Q_D(Download);
31+ d->setState(state);
32+}
33+
34 QString Download::filePath()
35 {
36 Q_D(Download);
37
38=== modified file 'libubuntudownloadmanager/download.h'
39--- libubuntudownloadmanager/download.h 2013-07-18 15:52:55 +0000
40+++ libubuntudownloadmanager/download.h 2013-07-20 15:56:29 +0000
41@@ -58,6 +58,7 @@
42 QString path();
43 QUrl url();
44 Download::State state();
45+ void setState(Download::State state);
46 QString filePath();
47 QString hash();
48 QCryptographicHash::Algorithm hashAlgorithm();
49
50=== modified file 'libubuntudownloadmanager/download_queue.cpp'
51--- libubuntudownloadmanager/download_queue.cpp 2013-07-12 10:45:37 +0000
52+++ libubuntudownloadmanager/download_queue.cpp 2013-07-20 15:56:29 +0000
53@@ -145,7 +145,7 @@
54 break;
55 case Download::FINISHED:
56 // remove the registered object in dbus, remove the download and the adapter from the list
57- if (_current.isEmpty() && _current == sender->path())
58+ if (!_current.isEmpty() && _current == sender->path())
59 updateCurrentDownload();
60 break;
61 default:
62
63=== modified file 'ubuntu-download-manager-tests/fake_download.cpp'
64--- ubuntu-download-manager-tests/fake_download.cpp 2013-07-18 15:52:55 +0000
65+++ ubuntu-download-manager-tests/fake_download.cpp 2013-07-20 15:56:29 +0000
66@@ -114,3 +114,10 @@
67 }
68 }
69
70+void FakeDownload::emitFinished(const QString& path)
71+{
72+ setState(Download::FINISHED);
73+ emit stateChanged();
74+ emit finished(path);
75+}
76+
77
78=== modified file 'ubuntu-download-manager-tests/fake_download.h'
79--- ubuntu-download-manager-tests/fake_download.h 2013-07-20 14:08:52 +0000
80+++ ubuntu-download-manager-tests/fake_download.h 2013-07-20 15:56:29 +0000
81@@ -41,6 +41,9 @@
82 void pauseDownload() override;
83 void resumeDownload() override;
84 void startDownload() override;
85+
86+ // useful methods to emit signals
87+ void emitFinished(const QString& path);
88
89 private:
90 bool _canDownload;
91
92=== modified file 'ubuntu-download-manager-tests/test_download_queue.cpp'
93--- ubuntu-download-manager-tests/test_download_queue.cpp 2013-07-18 16:20:34 +0000
94+++ ubuntu-download-manager-tests/test_download_queue.cpp 2013-07-20 15:56:29 +0000
95@@ -478,3 +478,26 @@
96 QCOMPARE(downloads[_first->path()], _first);
97 QCOMPARE(downloads[_second->path()], _second);
98 }
99+
100+void TestDownloadQueue::testDownloadFinishedOtherReady()
101+{
102+ _first->record();
103+ _second->record();
104+
105+ _q->add(_first, _firstAdaptor);
106+ _q->add(_second, _firstAdaptor);
107+
108+ _first->start();
109+ _second->start();
110+ _first->emitFinished("");
111+
112+ QList<MethodData> calledMethods = _first->calledMethods();
113+ QCOMPARE(2, calledMethods.count());
114+ QCOMPARE(QString("canDownload"), calledMethods[0].methodName());
115+ QCOMPARE(QString("startDownload"), calledMethods[1].methodName());
116+
117+ calledMethods = _second->calledMethods();
118+ QCOMPARE(2, calledMethods.count());
119+ QCOMPARE(QString("canDownload"), calledMethods[0].methodName());
120+ QCOMPARE(QString("startDownload"), calledMethods[1].methodName());
121+}
122
123=== modified file 'ubuntu-download-manager-tests/test_download_queue.h'
124--- ubuntu-download-manager-tests/test_download_queue.h 2013-07-12 10:45:37 +0000
125+++ ubuntu-download-manager-tests/test_download_queue.h 2013-07-20 15:56:29 +0000
126@@ -52,6 +52,7 @@
127 void testCancelDownloadOtherReadyCannotDownload();
128 void testCancelDownloadNotStarted();
129 void testDownloads();
130+ void testDownloadFinishedOtherReady();
131
132 private:
133 FakeSystemNetworkInfo* _networkInfo;

Subscribers

People subscribed via source and target branches