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

Proposed by Renato Araujo Oliveira Filho
Status: Merged
Approved by: Robert Bruce Park
Approved revision: 37
Merged at revision: 26
Proposed branch: lp:~renatofilho/qtorganizer5-eds/fix-1262296
Merge into: lp:qtorganizer5-eds
Diff against target: 193 lines (+70/-16)
3 files modified
qorganizer/qorganizer-eds-engine.cpp (+22/-14)
qorganizer/qorganizer-eds-saverequestdata.cpp (+4/-1)
tests/unittest/event-test.cpp (+44/-1)
To merge this branch: bzr merge lp:~renatofilho/qtorganizer5-eds/fix-1262296
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Gustavo Pichorim Boiko (community) Approve
Review via email: mp+200435@code.launchpad.net

Commit message

Fixed create items without collection id.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Gustavo Pichorim Boiko (boiko) wrote :

Looks good!

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

The jenkins failure looks like a merge conflict, can you rebase this on trunk?

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
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
=== modified file 'qorganizer/qorganizer-eds-engine.cpp'
--- qorganizer/qorganizer-eds-engine.cpp 2014-01-05 18:18:32 +0000
+++ qorganizer/qorganizer-eds-engine.cpp 2014-01-07 12:59:42 +0000
@@ -162,6 +162,7 @@
162162
163 GSList *events = 0;163 GSList *events = 0;
164 events = g_slist_append(events, comp);164 events = g_slist_append(events, comp);
165
165 data->appendResults(data->parent()->parseEvents(data->collection(), events, false));166 data->appendResults(data->parent()->parseEvents(data->collection(), events, false));
166 g_slist_free(events);167 g_slist_free(events);
167}168}
@@ -243,11 +244,9 @@
243 QOrganizerManager::Error *error)244 QOrganizerManager::Error *error)
244{245{
245 qDebug() << Q_FUNC_INFO;246 qDebug() << Q_FUNC_INFO;
246 QOrganizerItemIdFilter filter;
247 filter.setIds(itemIds);
248247
249 QOrganizerItemFetchRequest *req = new QOrganizerItemFetchRequest(this);248 QOrganizerItemFetchByIdRequest *req = new QOrganizerItemFetchByIdRequest(this);
250 req->setFilter(filter);249 req->setIds(itemIds);
251 req->setFetchHint(fetchHint);250 req->setFetchHint(fetchHint);
252251
253 startRequest(req);252 startRequest(req);
@@ -256,9 +255,9 @@
256 if (error) {255 if (error) {
257 *error = req->error();256 *error = req->error();
258 }257 }
259 // TODO implement correct reply for errorMap258
260 if (errorMap) {259 if (errorMap) {
261 *errorMap = QMap<int, QOrganizerManager::Error>();260 *errorMap = req->errorMap();
262 }261 }
263 req->deleteLater();262 req->deleteLater();
264 return req->items();263 return req->items();
@@ -346,7 +345,7 @@
346 qDebug() << Q_FUNC_INFO;345 qDebug() << Q_FUNC_INFO;
347 QString collectionId = data->nextCollection();346 QString collectionId = data->nextCollection();
348347
349 if (collectionId.isEmpty() && data->end()) {348 if (collectionId.isNull() && data->end()) {
350 data->finish();349 data->finish();
351 delete data;350 delete data;
352 return;351 return;
@@ -357,17 +356,20 @@
357 createItems = false;356 createItems = false;
358 items = data->takeItemsToUpdate();357 items = data->takeItemsToUpdate();
359 }358 }
359
360 if (items.isEmpty()) {360 if (items.isEmpty()) {
361 saveItemsAsyncStart(data);361 saveItemsAsyncStart(data);
362 return;
362 }363 }
363364
364 if (collectionId.isNull() && createItems) {365 if (collectionId.isEmpty() && createItems) {
365 collectionId = data->parent()->d->m_sourceRegistry->defaultCollection().id().toString();366 collectionId = data->parent()->d->m_sourceRegistry->defaultCollection().id().toString();
367 qDebug() << "Use default collection to save item with empty collection:" << collectionId;
366 }368 }
367369
368 EClient *client = data->parent()->d->m_sourceRegistry->client(collectionId);370 EClient *client = data->parent()->d->m_sourceRegistry->client(collectionId);
369 if (!client) {371 if (!client) {
370 qWarning() << "Trying to save items with invalid collection";372 qWarning() << "Trying to save items with invalid collection" << collectionId;
371 Q_FOREACH(const QOrganizerItem &i, items) {373 Q_FOREACH(const QOrganizerItem &i, items) {
372 data->appendResult(i, QOrganizerManager::InvalidCollectionError);374 data->appendResult(i, QOrganizerManager::InvalidCollectionError);
373 }375 }
@@ -454,18 +456,22 @@
454 data->appendResult(i, QOrganizerManager::UnspecifiedError);456 data->appendResult(i, QOrganizerManager::UnspecifiedError);
455 }457 }
456 } else {458 } else {
459 QString currentCollectionId = data->currentCollection();
460 if (currentCollectionId.isEmpty()) {
461 currentCollectionId = data->parent()->defaultCollection(0).id().toString();
462 }
457 QList<QOrganizerItem> items = data->workingItems();463 QList<QOrganizerItem> items = data->workingItems();
458 for(uint i=0, iMax=g_slist_length(uids); i < iMax; i++) {464 for(uint i=0, iMax=g_slist_length(uids); i < iMax; i++) {
459 QOrganizerItem &item = items[i];465 QOrganizerItem &item = items[i];
460 const gchar *uid = static_cast<const gchar*>(g_slist_nth_data(uids, i));466 const gchar *uid = static_cast<const gchar*>(g_slist_nth_data(uids, i));
461467
462 QOrganizerEDSCollectionEngineId *edsCollectionId = new QOrganizerEDSCollectionEngineId(data->currentCollection());468 QOrganizerEDSEngineId *eid = new QOrganizerEDSEngineId(currentCollectionId,
463 item.setCollectionId(QOrganizerCollectionId(edsCollectionId));
464
465 QOrganizerEDSEngineId *eid = new QOrganizerEDSEngineId(data->currentCollection(),
466 QString::fromUtf8(uid));469 QString::fromUtf8(uid));
467 item.setId(QOrganizerItemId(eid));470 item.setId(QOrganizerItemId(eid));
468 item.setGuid(QString::fromUtf8(uid));471 item.setGuid(QString::fromUtf8(uid));
472
473 QOrganizerEDSCollectionEngineId *edsCollectionId = new QOrganizerEDSCollectionEngineId(currentCollectionId);
474 item.setCollectionId(QOrganizerCollectionId(edsCollectionId));
469 }475 }
470 g_slist_free_full(uids, g_free);476 g_slist_free_full(uids, g_free);
471 data->appendResults(items);477 data->appendResults(items);
@@ -589,7 +595,9 @@
589QOrganizerCollection QOrganizerEDSEngine::defaultCollection(QOrganizerManager::Error* error)595QOrganizerCollection QOrganizerEDSEngine::defaultCollection(QOrganizerManager::Error* error)
590{596{
591 qDebug() << Q_FUNC_INFO;597 qDebug() << Q_FUNC_INFO;
592 *error = QOrganizerManager::NoError;598 if (error) {
599 *error = QOrganizerManager::NoError;
600 }
593 return d->m_sourceRegistry->defaultCollection();601 return d->m_sourceRegistry->defaultCollection();
594}602}
595603
596604
=== modified file 'qorganizer/qorganizer-eds-saverequestdata.cpp'
--- qorganizer/qorganizer-eds-saverequestdata.cpp 2013-12-11 13:16:50 +0000
+++ qorganizer/qorganizer-eds-saverequestdata.cpp 2014-01-07 12:59:42 +0000
@@ -31,6 +31,9 @@
31 // map items by collection31 // map items by collection
32 Q_FOREACH(const QOrganizerItem &i, request<QOrganizerItemSaveRequest>()->items()) {32 Q_FOREACH(const QOrganizerItem &i, request<QOrganizerItemSaveRequest>()->items()) {
33 QString collectionId = i.collectionId().toString();33 QString collectionId = i.collectionId().toString();
34 if (collectionId == QStringLiteral("qtorganizer:::")) {
35 collectionId = QStringLiteral("");
36 }
34 QList<QOrganizerItem> li = m_items[collectionId];37 QList<QOrganizerItem> li = m_items[collectionId];
35 li << i;38 li << i;
36 m_items.insert(collectionId, li);39 m_items.insert(collectionId, li);
@@ -62,7 +65,7 @@
62QString SaveRequestData::nextCollection()65QString SaveRequestData::nextCollection()
63{66{
64 if (m_items.isEmpty()) {67 if (m_items.isEmpty()) {
65 m_currentCollection = QString();68 m_currentCollection = QString(QString::null);
66 m_currentItems.clear();69 m_currentItems.clear();
67 } else {70 } else {
68 m_currentCollection = m_items.keys().first();71 m_currentCollection = m_items.keys().first();
6972
=== modified file 'tests/unittest/event-test.cpp'
--- tests/unittest/event-test.cpp 2014-01-05 18:18:32 +0000
+++ tests/unittest/event-test.cpp 2014-01-07 12:59:42 +0000
@@ -271,6 +271,45 @@
271 QCOMPARE(items.count(), 0);271 QCOMPARE(items.count(), 0);
272 }272 }
273273
274 void testCreateEventWithoutCollection()
275 {
276 static QString displayLabelValue = QStringLiteral("event without collection");
277 static QString descriptionValue = QStringLiteral("event without collection");
278
279 QOrganizerEvent event;
280 event.setStartDateTime(QDateTime(QDate(2013, 9, 3), QTime(0,30,0)));
281 event.setDisplayLabel(displayLabelValue);
282 event.setDescription(descriptionValue);
283
284 QtOrganizer::QOrganizerManager::Error error;
285 QMap<int, QtOrganizer::QOrganizerManager::Error> errorMap;
286 QList<QOrganizerItem> items;
287 items << event;
288 bool saveResult = m_engine->saveItems(&items,
289 QList<QtOrganizer::QOrganizerItemDetail::DetailType>(),
290 &errorMap,
291 &error);
292
293 QVERIFY(saveResult);
294 QCOMPARE(error, QOrganizerManager::NoError);
295 QVERIFY(errorMap.isEmpty());
296 QVERIFY(!items[0].id().isNull());
297
298 // append new item to be removed after the test
299 appendToRemove(items[0].id());
300
301 // check if item was created on the default collection
302 QOrganizerItemFetchHint hint;
303
304 QList<QOrganizerItemId> ids;
305 ids << items[0].id();
306 qDebug() << "Check for item id:" << ids;
307 items = m_engine->items(ids, hint, 0, 0);
308 QCOMPARE(items.count(), 1);
309 QOrganizerCollection collection = m_engine->defaultCollection(0);
310 QCOMPARE(items[0].collectionId(), collection.id());
311 }
312
274 void testCreateMultipleItemsWithSameCollection()313 void testCreateMultipleItemsWithSameCollection()
275 {314 {
276 static QString displayLabelValue = QStringLiteral("Multiple Item:%1");315 static QString displayLabelValue = QStringLiteral("Multiple Item:%1");
@@ -363,7 +402,11 @@
363402
364 // This item will cause error, because the collection ID is invalid403 // This item will cause error, because the collection ID is invalid
365 QOrganizerEvent ev;404 QOrganizerEvent ev;
366 ev.setCollectionId(QOrganizerCollectionId::fromString("1386259057.30874.6@qorganizer"));405 QOrganizerEDSCollectionEngineId *edsCollectionId = new QOrganizerEDSCollectionEngineId("XXXXXX");
406 QOrganizerCollectionId cid(edsCollectionId);
407 QVERIFY(!cid.isNull());
408 QCOMPARE(cid.toString(), QStringLiteral("qtorganizer:eds::XXXXXX"));
409 ev.setCollectionId(cid);
367 ev.setStartDateTime(QDateTime(QDate(2013, 10, 2), QTime(0,30,0)));410 ev.setStartDateTime(QDateTime(QDate(2013, 10, 2), QTime(0,30,0)));
368 ev.setDisplayLabel(displayLabelValue.arg(2));411 ev.setDisplayLabel(displayLabelValue.arg(2));
369 ev.setDescription(descriptionValue.arg(2));412 ev.setDescription(descriptionValue.arg(2));

Subscribers

People subscribed via source and target branches