Merge lp:~renatofilho/qtorganizer5-eds/fix-1285958 into lp:qtorganizer5-eds

Proposed by Renato Araujo Oliveira Filho
Status: Merged
Merged at revision: 41
Proposed branch: lp:~renatofilho/qtorganizer5-eds/fix-1285958
Merge into: lp:qtorganizer5-eds
Diff against target: 127 lines (+97/-2)
2 files modified
qorganizer/qorganizer-eds-engine.cpp (+14/-2)
tests/unittest/recurrence-test.cpp (+83/-0)
To merge this branch: bzr merge lp:~renatofilho/qtorganizer5-eds/fix-1285958
Reviewer Review Type Date Requested Status
Bill Filler (community) Approve
PS Jenkins bot continuous-integration Approve
Review via email: mp+209791@code.launchpad.net

Commit message

Fixed parse from icalrecurrencetype to QtOrganizer::QOrganizerRecurrenceRule for weekly recurrence.

Description of the change

Are there any related MPs required for this MP to build/function as expected? NO

Is your branch in sync with latest trunk (e.g. bzr pull lp:trunk -> no changes): YES

Did you perform an exploratory manual test run of your code change and any related functionality on device or emulator? YES

Did you successfully run all tests found in your component's Test Plan (https://wiki.ubuntu.com/Process/Merges/TestPlan/qtorganizer5-eds) on device or emulator? YES

If you changed the UI, was the change specified/approved by design? NO UI CHANGE

If you changed the packaging (debian), did you subscribe a core-dev to this MP? NO PACKAGE CHANGE

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
Bill Filler (bfiller) wrote :

I tested this. I can now set a recurring alarm for Sunday but can't enable it (: No alarms can be enabled anymore with this fix. Without it I can correctly enable alarms

review: Needs Fixing
Revision history for this message
Bill Filler (bfiller) wrote :

Actually, this MR is fine. The one that is causing the problem is https://code.launchpad.net/~renatofilho/qtorganizer5-eds/fix-1284375/+merge/208197

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'qorganizer/qorganizer-eds-engine.cpp'
--- qorganizer/qorganizer-eds-engine.cpp 2014-02-28 23:36:54 +0000
+++ qorganizer/qorganizer-eds-engine.cpp 2014-03-06 21:32:32 +0000
@@ -1147,15 +1147,27 @@
11471147
1148void QOrganizerEDSEngine::parseWeekRecurrence(struct icalrecurrencetype *rule, QtOrganizer::QOrganizerRecurrenceRule *qRule)1148void QOrganizerEDSEngine::parseWeekRecurrence(struct icalrecurrencetype *rule, QtOrganizer::QOrganizerRecurrenceRule *qRule)
1149{1149{
1150 static QMap<icalrecurrencetype_weekday, Qt::DayOfWeek> daysOfWeekMap;
1151 if (daysOfWeekMap.isEmpty()) {
1152 daysOfWeekMap.insert(ICAL_MONDAY_WEEKDAY, Qt::Monday);
1153 daysOfWeekMap.insert(ICAL_THURSDAY_WEEKDAY, Qt::Thursday);
1154 daysOfWeekMap.insert(ICAL_WEDNESDAY_WEEKDAY, Qt::Wednesday);
1155 daysOfWeekMap.insert(ICAL_TUESDAY_WEEKDAY, Qt::Tuesday);
1156 daysOfWeekMap.insert(ICAL_FRIDAY_WEEKDAY, Qt::Friday);
1157 daysOfWeekMap.insert(ICAL_SATURDAY_WEEKDAY, Qt::Saturday);
1158 daysOfWeekMap.insert(ICAL_SUNDAY_WEEKDAY, Qt::Sunday);
1159 }
1160
1150 qRule->setFrequency(QOrganizerRecurrenceRule::Weekly);1161 qRule->setFrequency(QOrganizerRecurrenceRule::Weekly);
11511162
1152 QSet<Qt::DayOfWeek> daysOfWeek;1163 QSet<Qt::DayOfWeek> daysOfWeek;
1153 for (int d=0; d < Qt::Sunday; d++) {1164 for (int d=0; d <= Qt::Sunday; d++) {
1154 short day = rule->by_day[d];1165 short day = rule->by_day[d];
1155 if (day != ICAL_RECURRENCE_ARRAY_MAX) {1166 if (day != ICAL_RECURRENCE_ARRAY_MAX) {
1156 daysOfWeek.insert(static_cast<Qt::DayOfWeek>(icalrecurrencetype_day_day_of_week(rule->by_day[d]) - 1));1167 daysOfWeek.insert(daysOfWeekMap[icalrecurrencetype_day_day_of_week(rule->by_day[d])]);
1157 }1168 }
1158 }1169 }
1170
1159 qRule->setDaysOfWeek(daysOfWeek);1171 qRule->setDaysOfWeek(daysOfWeek);
1160}1172}
11611173
11621174
=== modified file 'tests/unittest/recurrence-test.cpp'
--- tests/unittest/recurrence-test.cpp 2014-02-28 15:04:24 +0000
+++ tests/unittest/recurrence-test.cpp 2014-03-06 21:32:32 +0000
@@ -308,6 +308,89 @@
308 QCOMPARE(time.startDateTime(), expectedDates[i]);308 QCOMPARE(time.startDateTime(), expectedDates[i]);
309 }309 }
310 }310 }
311
312 void testCreateSunTueWedThuFriSatEvents()
313 {
314 static QString displayLabelValue = QStringLiteral("testCreateSunTueWedThuFriSatEvents test");
315 static QString descriptionValue = QStringLiteral("testCreateSunTueWedThuFriSatEvents description");
316
317 QOrganizerEvent ev;
318 ev.setCollectionId(m_collection.id());
319 ev.setStartDateTime(QDateTime(QDate(2014, 03, 1), QTime(0,0,0)));
320 ev.setEndDateTime(QDateTime(QDate(2014, 03, 1), QTime(0,30,0)));
321 ev.setDisplayLabel(displayLabelValue);
322 ev.setDescription(descriptionValue);
323
324 QOrganizerRecurrenceRule rule;
325 rule.setFrequency(QOrganizerRecurrenceRule::Weekly);
326 QSet<Qt::DayOfWeek> dasyOfWeek;
327 dasyOfWeek << Qt::Sunday
328 << Qt::Tuesday
329 << Qt::Wednesday
330 << Qt::Thursday
331 << Qt::Friday
332 << Qt::Saturday;
333
334 rule.setDaysOfWeek(dasyOfWeek);
335 ev.setRecurrenceRule(rule);
336
337 QtOrganizer::QOrganizerManager::Error error;
338 QMap<int, QtOrganizer::QOrganizerManager::Error> errorMap;
339 QList<QOrganizerItem> items;
340 items << ev;
341 bool saveResult = m_engine->saveItems(&items,
342 QList<QtOrganizer::QOrganizerItemDetail::DetailType>(),
343 &errorMap,
344 &error);
345 QVERIFY(saveResult);
346 QCOMPARE(error, QtOrganizer::QOrganizerManager::NoError);
347
348 // append new item to be removed after the test
349 QOrganizerItemId parentId = items[0].id();
350 appendToRemove(parentId);
351
352 QOrganizerItemSortOrder sort;
353 QOrganizerItemFetchHint hint;
354 QOrganizerItemFilter filter;
355
356 // check if the parent was saved correct
357 items = m_engine->items(QList<QOrganizerItemId>() << parentId, hint, &errorMap, &error);
358 QCOMPARE(items.size(), 1);
359 QOrganizerEvent result = items[0];
360 QCOMPARE(result.collectionId(), ev.collectionId());
361 QCOMPARE(result.startDateTime(), ev.startDateTime());
362 QCOMPARE(result.endDateTime(), ev.endDateTime());
363 QCOMPARE(result.displayLabel(), ev.displayLabel());
364 QCOMPARE(result.description(), ev.description());
365
366 QOrganizerRecurrenceRule savedRule = result.recurrenceRule();
367 QCOMPARE(savedRule.frequency(), rule.frequency());
368 QCOMPARE(savedRule.daysOfWeek(), rule.daysOfWeek());
369
370 items = m_engine->items(filter,
371 QDateTime(QDate(2014, 03, 1), QTime(0,0,0)),
372 QDateTime(QDate(2014, 03, 8), QTime(24,0,0)),
373 100,
374 sort,
375 hint,
376 &error);
377
378 QList<QDateTime> expectedDates;
379 expectedDates << QDateTime(QDate(2014, 03, 1), QTime(0,0,0))
380 << QDateTime(QDate(2014, 03, 2), QTime(0,0,0))
381 << QDateTime(QDate(2014, 03, 4), QTime(0,0,0))
382 << QDateTime(QDate(2014, 03, 5), QTime(0,0,0))
383 << QDateTime(QDate(2014, 03, 6), QTime(0,0,0))
384 << QDateTime(QDate(2014, 03, 7), QTime(0,0,0));
385
386 QCOMPARE(items.count(), expectedDates.size());
387 for(int i=0, iMax=expectedDates.size(); i < iMax; i++) {
388 QOrganizerItemParent itemParent = items[i].detail(QOrganizerItemDetail::TypeParent);
389 QOrganizerEventTime time = items[i].detail(QOrganizerItemDetail::TypeEventTime);
390 QCOMPARE(itemParent.parentId(), parentId);
391 QCOMPARE(time.startDateTime(), expectedDates[i]);
392 }
393 }
311};394};
312395
313const QString RecurrenceTest::defaultCollectionName = QStringLiteral("TEST_RECURRENCE_EVENT_COLLECTION");396const QString RecurrenceTest::defaultCollectionName = QStringLiteral("TEST_RECURRENCE_EVENT_COLLECTION");

Subscribers

People subscribed via source and target branches