Merge lp:~zsombi/ubuntu-ui-toolkit/alarm-dow-fix into lp:ubuntu-ui-toolkit/staging

Proposed by Zsombor Egri
Status: Merged
Approved by: Cris Dywan
Approved revision: 1056
Merged at revision: 1054
Proposed branch: lp:~zsombi/ubuntu-ui-toolkit/alarm-dow-fix
Merge into: lp:ubuntu-ui-toolkit/staging
Diff against target: 105 lines (+61/-5)
3 files modified
modules/Ubuntu/Components/plugin/ucalarm.cpp (+15/-4)
tests/resources/alarm/Alarms.qml (+1/-1)
tests/unit/tst_alarms/tst_alarms.cpp (+45/-0)
To merge this branch: bzr merge lp:~zsombi/ubuntu-ui-toolkit/alarm-dow-fix
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Cris Dywan Approve
Nekhelesh Ramananthan (community) device testing Approve
Review via email: mp+219637@code.launchpad.net

Commit message

One time alarms omit dayOfWeek value changes.

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

FAILED: Continuous integration, rev:1055
http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-ci/229/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-deb-autopilot-utopic-touch/230
    FAILURE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-utopic/210/console
    SUCCESS: http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-utopic-amd64-ci/61
    SUCCESS: http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-utopic-armhf-ci/61
        deb: http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-utopic-armhf-ci/61/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-utopic-i386-ci/61
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-deb-autopilot-runner-mako/722
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-utopic-armhf/482
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-utopic-armhf/482/artifact/work/output/*zip*/output.zip
    FAILURE: http://s-jenkins.ubuntu-ci:8080/job/touch-flash-device/7191/console
    FAILURE: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-utopic/193/console
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-utopic-amd64/261
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-utopic-amd64/261/artifact/work/output/*zip*/output.zip

Click here to trigger a rebuild:
http://s-jenkins.ubuntu-ci:8080/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-ci/229/rebuild

review: Needs Fixing (continuous-integration)
1056. By Zsombor Egri

setDate() does not change dayOfWeek value

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:1056
http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-ci/230/
Executed test runs:
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-deb-autopilot-utopic-touch/233
    FAILURE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-utopic/213/console
    SUCCESS: http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-utopic-amd64-ci/62
    SUCCESS: http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-utopic-armhf-ci/62
        deb: http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-utopic-armhf-ci/62/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-utopic-i386-ci/62
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-deb-autopilot-runner-mako/725
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-utopic-armhf/490
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-utopic-armhf/490/artifact/work/output/*zip*/output.zip
    SUCCESS: http://s-jenkins.ubuntu-ci:8080/job/touch-flash-device/7199
    FAILURE: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-utopic/195/console
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-utopic-amd64/267
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-utopic-amd64/267/artifact/work/output/*zip*/output.zip

Click here to trigger a rebuild:
http://s-jenkins.ubuntu-ci:8080/job/ubuntu-sdk-team-ubuntu-ui-toolkit-staging-ci/230/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Nekhelesh Ramananthan (nik90) wrote :

Tested on phone and laptop. It works as expected. The alarm days chosen by the user are respected.

review: Approve (device testing)
Revision history for this message
Cris Dywan (kalikiana) wrote :

Changes and tests look sensible, and pass for me. J seems to still fail randomly unrelated to this.

review: Approve
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
1=== modified file 'modules/Ubuntu/Components/plugin/ucalarm.cpp'
2--- modules/Ubuntu/Components/plugin/ucalarm.cpp 2014-04-23 08:50:20 +0000
3+++ modules/Ubuntu/Components/plugin/ucalarm.cpp 2014-05-15 09:54:25 +0000
4@@ -177,6 +177,21 @@
5 return result;
6 }
7
8+ // fix lp:1319401 - dayOfWeek omitted if set to other than AutoDetect
9+ int dayOfWeek = rawData.date.date().dayOfWeek();
10+ if (!isDaySet(dayOfWeek, rawData.days)) {
11+ // dayOfWeek has been set by the user, adjust the date to it
12+ int nextOccurrence = nextDayOfWeek(rawData.days, dayOfWeek);
13+ if (nextOccurrence < dayOfWeek) {
14+ // the starting date should be moved to the next week's occurrence
15+ rawData.date = rawData.date.addDays(7 - dayOfWeek + nextOccurrence);
16+ } else {
17+ // the starting date is still this week
18+ rawData.date = rawData.date.addDays(nextOccurrence - dayOfWeek);
19+ }
20+ rawData.changes |= AlarmData::Date;
21+ }
22+
23 // start date should be later then the current date/time
24 if (rawData.date <= AlarmData::normalizeDate(QDateTime::currentDateTime())) {
25 return UCAlarm::EarlyDate;
26@@ -370,10 +385,6 @@
27 d->rawData.date = AlarmData::normalizeDate(date);
28 d->rawData.changes |= AlarmData::Date;
29 Q_EMIT dateChanged();
30- if (d->rawData.type == UCAlarm::OneTime) {
31- // adjust dayOfWeek as well
32- setDaysOfWeek(UCAlarm::AutoDetect);
33- }
34 }
35
36 /*!
37
38=== modified file 'tests/resources/alarm/Alarms.qml'
39--- tests/resources/alarm/Alarms.qml 2014-04-23 08:50:20 +0000
40+++ tests/resources/alarm/Alarms.qml 2014-05-15 09:54:25 +0000
41@@ -113,7 +113,7 @@
42 id: days
43 text: "Occurence"
44 values: getValues()
45- visible: recurence.selectedIndex == 2
46+ visible: recurence.selectedIndex !== 1
47 onClicked: {
48 PopupUtils.open(Qt.resolvedUrl("AlarmDays.qml"), days, {"alarm": alarm});
49 }
50
51=== modified file 'tests/unit/tst_alarms/tst_alarms.cpp'
52--- tests/unit/tst_alarms/tst_alarms.cpp 2014-04-10 09:53:26 +0000
53+++ tests/unit/tst_alarms/tst_alarms.cpp 2014-05-15 09:54:25 +0000
54@@ -456,6 +456,51 @@
55 QVERIFY(srcDate.timeZone() != dstDate.timeZone());
56 }
57
58+ void test_oneTime_dow_data() {
59+ QTest::addColumn<QString>("message");
60+ QTest::addColumn<int>("dow");
61+
62+ QTest::newRow("Monday") << "Monday" << (int)UCAlarm::Monday;
63+ QTest::newRow("Tuesday") << "Tuesday" << (int)UCAlarm::Tuesday;
64+ QTest::newRow("Wednesday") << "Wednesday" << (int)UCAlarm::Wednesday;
65+ QTest::newRow("Thursday") << "Thursday" << (int)UCAlarm::Thursday;
66+ QTest::newRow("Friday") << "Friday" << (int)UCAlarm::Friday;
67+ QTest::newRow("Saturday") << "Saturday" << (int)UCAlarm::Saturday;
68+ QTest::newRow("Sunday") << "Sunday" << (int)UCAlarm::Sunday;
69+ }
70+ void test_oneTime_dow() {
71+ QFETCH(QString, message);
72+ QFETCH(int, dow);
73+
74+ UCAlarm alarm(QDateTime::currentDateTime().addSecs(3600), "test_oneTime_dow_" + message);
75+ alarm.setDaysOfWeek((UCAlarm::DaysOfWeek)dow);
76+ alarm.save();
77+ waitForRequest(&alarm);
78+ QCOMPARE(alarm.error(), (int)UCAlarm::NoError);
79+ QVERIFY(containsAlarm(&alarm));
80+ }
81+
82+ void test_oneTime_setDate_does_not_change_dow_data() {
83+ QTest::addColumn<QString>("message");
84+ QTest::addColumn<int>("dow");
85+
86+ QTest::newRow("Monday") << "Monday" << (int)UCAlarm::Monday;
87+ QTest::newRow("Tuesday") << "Tuesday" << (int)UCAlarm::Tuesday;
88+ QTest::newRow("Wednesday") << "Wednesday" << (int)UCAlarm::Wednesday;
89+ QTest::newRow("Thursday") << "Thursday" << (int)UCAlarm::Thursday;
90+ QTest::newRow("Friday") << "Friday" << (int)UCAlarm::Friday;
91+ QTest::newRow("Saturday") << "Saturday" << (int)UCAlarm::Saturday;
92+ QTest::newRow("Sunday") << "Sunday" << (int)UCAlarm::Sunday;
93+ }
94+ void test_oneTime_setDate_does_not_change_dow() {
95+ QFETCH(QString, message);
96+ QFETCH(int, dow);
97+
98+ UCAlarm alarm(QDateTime::currentDateTime(), "test_oneTime_setDate_does_not_change_dow_" + message);
99+ alarm.setDaysOfWeek((UCAlarm::DaysOfWeek)dow);
100+ alarm.setDate(QDateTime::currentDateTime().addSecs(3600));
101+ QCOMPARE((int)alarm.daysOfWeek(), dow);
102+ }
103 };
104
105 QTEST_MAIN(tst_UCAlarms)

Subscribers

People subscribed via source and target branches