Merge lp:~diegosarmentero/unity8/app-error-handling into lp:unity8

Proposed by Diego Sarmentero
Status: Merged
Approved by: Michał Sawicz
Approved revision: 342
Merged at revision: 351
Proposed branch: lp:~diegosarmentero/unity8/app-error-handling
Merge into: lp:unity8
Diff against target: 123 lines (+62/-2)
3 files modified
Dash/Apps/AppPreview.qml (+4/-0)
tests/mocks/Ubuntu/DownloadDaemonListener/MockDownloadTracker.cpp (+5/-0)
tests/qmltests/Dash/Apps/tst_AppPreview.qml (+53/-2)
To merge this branch: bzr merge lp:~diegosarmentero/unity8/app-error-handling
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Michał Sawicz Approve
Roberto Alsina (community) Approve
Review via email: mp+187240@code.launchpad.net

Commit message

- Handling error signal from the DownloadTracker plugin (BUG: #1229744).

Description of the change

When the DownloadManager finds an error a signal is emitted to the DownloadTracker, and this one propagate that signal. AppPreview will take the error signal and trigger the proper action in the scope.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

PASSED: Continuous integration, rev:341
http://jenkins.qa.ubuntu.com/job/unity8-ci/1098/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/3929
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1508
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1838
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/122
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1099
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1099/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1098
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/261
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/3992
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/3992/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1510
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1510/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1276
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1287

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1098/rebuild

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

PASSED: Continuous integration, rev:342
http://jenkins.qa.ubuntu.com/job/unity8-ci/1123/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4010
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1619
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1870
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/146
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1123
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1123/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1122
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/326
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4102
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4102/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1621
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1621/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1360
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1372

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1123/rebuild

review: Approve (continuous-integration)
Revision history for this message
Roberto Alsina (ralsina) :
review: Approve
Revision history for this message
Michał Sawicz (saviq) :
review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Autolanding.
More details in the following jenkins job:
http://jenkins.qa.ubuntu.com/job/unity8-autolanding/492/
Executed test runs:
    SUCCESS: http://s-jenkins:8080/job/generic-cleanup-mbs/2481
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4032
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1645
    FAILURE: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1881/console
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-autolanding/78
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-autolanding/496
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-autolanding/496/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-autolanding/497
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/344
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4128
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4128/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1647
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1647/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1380
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1392

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

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Dash/Apps/AppPreview.qml'
--- Dash/Apps/AppPreview.qml 2013-09-05 10:02:00 +0000
+++ Dash/Apps/AppPreview.qml 2013-09-25 19:59:58 +0000
@@ -110,6 +110,10 @@
110 onFinished: {110 onFinished: {
111 root.previewData.execute(progressBar.model[0].id, { })111 root.previewData.execute(progressBar.model[0].id, { })
112 }112 }
113
114 onError: {
115 root.previewData.execute(progressBar.model[1].id, { "error": error });
116 }
113 }117 }
114118
115 }119 }
116120
=== modified file 'tests/mocks/Ubuntu/DownloadDaemonListener/MockDownloadTracker.cpp'
--- tests/mocks/Ubuntu/DownloadDaemonListener/MockDownloadTracker.cpp 2013-08-13 08:50:50 +0000
+++ tests/mocks/Ubuntu/DownloadDaemonListener/MockDownloadTracker.cpp 2013-09-25 19:59:58 +0000
@@ -63,5 +63,10 @@
63 if(!m_service.isEmpty() && !m_dbusPath.isEmpty()) {63 if(!m_service.isEmpty() && !m_dbusPath.isEmpty()) {
64 m_active = true;64 m_active = true;
65 Q_EMIT serviceReadyChanged(m_active);65 Q_EMIT serviceReadyChanged(m_active);
66 if(m_dbusPath == "finish") {
67 Q_EMIT finished("downloadComplete");
68 }else if(m_dbusPath == "error") {
69 Q_EMIT error("DOWNLOAD ERROR");
70 }
66 }71 }
67}72}
6873
=== modified file 'tests/qmltests/Dash/Apps/tst_AppPreview.qml'
--- tests/qmltests/Dash/Apps/tst_AppPreview.qml 2013-08-19 16:55:28 +0000
+++ tests/qmltests/Dash/Apps/tst_AppPreview.qml 2013-09-25 19:59:58 +0000
@@ -45,6 +45,8 @@
45 ["Unity User", 10, "10/02/2013", root.commentary],45 ["Unity User", 10, "10/02/2013", root.commentary],
46 ]46 ]
47 }47 }
48 QtObject { id: showProgress; property bool value: true }
49 QtObject { id: progressSource; property string value: "service" }
4850
49 QtObject {51 QtObject {
50 id: data52 id: data
@@ -66,8 +68,30 @@
66 ]68 ]
67 }69 }
6870
71 QtObject {
72 id: dataProgress
73 property string title: "Unity App"
74 property string appIcon: "fake_image.png"
75 property string description: "This is an Application description"
76 property real rating: rating.value
77 property int numRatings: reviews.value
78 property var execute: root.fake_call
79 property var infoMap: {
80 "show_progressbar": showProgress,
81 "more-screenshots": screenshots,
82 "rated": rated,
83 "comments": comments,
84 "progressbar_source": progressSource
85 }
86 property var actions: [
87 { "id": 123, "displayName": "action1" },
88 { "id": 456, "displayName": "action2" },
89 { "id": 789, "displayName": "action3" },
90 ]
91 }
92
69 function fake_call(id, data){93 function fake_call(id, data){
70 root.calls[root.calls.length] = id;94 root.calls[root.calls.length] = [id, data];
71 }95 }
7296
73 // The component under test97 // The component under test
@@ -89,6 +113,7 @@
89 reviewField.focus = false;113 reviewField.focus = false;
90 reviewField.text = "";114 reviewField.text = "";
91 data.rating = rating.value;115 data.rating = rating.value;
116 dataProgress.infoMap["progressbar_source"].value = "service";
92 }117 }
93118
94 function test_actions() {119 function test_actions() {
@@ -102,7 +127,7 @@
102127
103 var actions = data.actions;128 var actions = data.actions;
104 for(var i = 0; i < actions.length; i++) {129 for(var i = 0; i < actions.length; i++) {
105 compare(root.calls[i], actions[i].id, "Id of action not found.");130 compare(root.calls[i][0], actions[i].id, "Id of action not found.");
106 }131 }
107 }132 }
108133
@@ -162,5 +187,31 @@
162 verify(buttons.visible == true);187 verify(buttons.visible == true);
163 }188 }
164189
190 function test_progress_show() {
191 appPreview.previewData = dataProgress;
192 var progress = findChild(appPreview, "progressBar");
193 verify(progress.visible == true);
194 }
195
196 function test_progress_download_finish() {
197 appPreview.previewData = dataProgress;
198 var progress = findChild(appPreview, "progressBar");
199 dataProgress.infoMap["progressbar_source"].value = "finish";
200
201 var actions = dataProgress.actions;
202 compare(root.calls[0][0], actions[0].id, "Id of action not found.");
203 compare(root.calls[0][1], {}, "Data of action not found.");
204 }
205
206 function test_progress_download_error() {
207 appPreview.previewData = dataProgress;
208 var progress = findChild(appPreview, "progressBar");
209 dataProgress.infoMap["progressbar_source"].value = "error";
210
211 var actions = dataProgress.actions;
212 compare(root.calls[0][0], actions[1].id, "Id of action not found.");
213 compare(root.calls[0][1], {"error": "DOWNLOAD ERROR"}, "Data of action not found.");
214 }
215
165 }216 }
166}217}

Subscribers

People subscribed via source and target branches