summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Nicole <nicole@kolabsystems.com>2018-05-14 11:11:46 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2018-05-14 11:11:51 +0200
commitd135fa0387672c10bad70b44867470affe1a3232 (patch)
treeedef34603b1ed684ed4cbcc1cbd6dc5fafb59b2d
parent837509658df9e0827348dd905552160181932f13 (diff)
downloadsink-d135fa0387672c10bad70b44867470affe1a3232.tar.gz
sink-d135fa0387672c10bad70b44867470affe1a3232.zip
Fix CalDAV test in Docker + add Calendar and Todo in the database layout
Summary: Like the title says. Also removed a "/" that got doubled between the collection URI and the item path, because it made Cyrus freak out (returning unauthorized errors) Reviewers: cmollekopf Tags: #sink Differential Revision: https://phabricator.kde.org/D12755
-rw-r--r--common/storage/entitystore.cpp2
-rw-r--r--examples/caldavresource/tests/caldavtest.cpp30
-rw-r--r--examples/webdavcommon/webdav.cpp3
3 files changed, 13 insertions, 22 deletions
diff --git a/common/storage/entitystore.cpp b/common/storage/entitystore.cpp
index d5a7c5f..baea388 100644
--- a/common/storage/entitystore.cpp
+++ b/common/storage/entitystore.cpp
@@ -85,7 +85,9 @@ static Sink::Storage::DbLayout dbLayout(const QByteArray &instanceId)
85 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Folder>::typeDatabases()); 85 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Folder>::typeDatabases());
86 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Contact>::typeDatabases()); 86 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Contact>::typeDatabases());
87 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Addressbook>::typeDatabases()); 87 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Addressbook>::typeDatabases());
88 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Calendar>::typeDatabases());
88 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Event>::typeDatabases()); 89 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Event>::typeDatabases());
90 mergeImpl(map, ApplicationDomain::TypeImplementation<ApplicationDomain::Todo>::typeDatabases());
89 return merge(baseDbs(), map); 91 return merge(baseDbs(), map);
90 }(); 92 }();
91 return {instanceId, databases}; 93 return {instanceId, databases};
diff --git a/examples/caldavresource/tests/caldavtest.cpp b/examples/caldavresource/tests/caldavtest.cpp
index 2ea5a1a..68ecfff 100644
--- a/examples/caldavresource/tests/caldavtest.cpp
+++ b/examples/caldavresource/tests/caldavtest.cpp
@@ -29,8 +29,7 @@ class CalDavTest : public QObject
29{ 29{
30 Q_OBJECT 30 Q_OBJECT
31 31
32 // This test assumes a calendar MyCalendar with one event and one todo in 32 // This test assumes a calendar "personal".
33 // it.
34 33
35 const QString baseUrl = "http://localhost/dav/calendars/user/doe"; 34 const QString baseUrl = "http://localhost/dav/calendars/user/doe";
36 const QString username = "doe"; 35 const QString username = "doe";
@@ -72,24 +71,15 @@ private slots:
72 VERIFYEXEC(Sink::ResourceControl::start(mResourceInstanceIdentifier)); 71 VERIFYEXEC(Sink::ResourceControl::start(mResourceInstanceIdentifier));
73 } 72 }
74 73
75 void testSyncCal()
76 {
77 VERIFYEXEC(Sink::Store::synchronize(Sink::Query().resourceFilter(mResourceInstanceIdentifier)));
78 // Check in the logs that it doesn't synchronize events again because same CTag
79 VERIFYEXEC(Sink::Store::synchronize(Sink::Query().resourceFilter(mResourceInstanceIdentifier)));
80 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier));
81 //FIXME this is not a test.
82 }
83
84 void testSyncCalEmpty() 74 void testSyncCalEmpty()
85 { 75 {
86 VERIFYEXEC(Sink::Store::synchronize(Sink::Query().resourceFilter(mResourceInstanceIdentifier))); 76 VERIFYEXEC(Sink::Store::synchronize(Sink::Query().resourceFilter(mResourceInstanceIdentifier)));
87 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); 77 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier));
88 78
89 auto eventJob = Sink::Store::fetchAll<Event>(Sink::Query().request<Event::Uid>()) 79 auto eventJob = Sink::Store::fetchAll<Event>(Sink::Query().request<Event::Uid>())
90 .then([](const QList<Event::Ptr> &events) { QCOMPARE(events.size(), 1); }); 80 .then([](const QList<Event::Ptr> &events) { QCOMPARE(events.size(), 0); });
91 auto todoJob = Sink::Store::fetchAll<Todo>(Sink::Query().request<Todo::Uid>()) 81 auto todoJob = Sink::Store::fetchAll<Todo>(Sink::Query().request<Todo::Uid>())
92 .then([](const QList<Todo::Ptr> &todos) { QCOMPARE(todos.size(), 1); }); 82 .then([](const QList<Todo::Ptr> &todos) { QCOMPARE(todos.size(), 0); });
93 83
94 VERIFYEXEC(eventJob); 84 VERIFYEXEC(eventJob);
95 VERIFYEXEC(todoJob); 85 VERIFYEXEC(todoJob);
@@ -98,7 +88,7 @@ private slots:
98 .then([](const QList<Calendar::Ptr> &calendars) { 88 .then([](const QList<Calendar::Ptr> &calendars) {
99 QCOMPARE(calendars.size(), 1); 89 QCOMPARE(calendars.size(), 1);
100 for (const auto &calendar : calendars) { 90 for (const auto &calendar : calendars) {
101 QVERIFY(calendar->getName() == "MyCalendar"); 91 QVERIFY(calendar->getName() == "personal");
102 } 92 }
103 }); 93 });
104 VERIFYEXEC(calendarJob); 94 VERIFYEXEC(calendarJob);
@@ -135,7 +125,7 @@ private slots:
135 125
136 auto verifyEventCountJob = 126 auto verifyEventCountJob =
137 Sink::Store::fetchAll<Event>(Sink::Query().request<Event::Uid>()).then([](const QList<Event::Ptr> &events) { 127 Sink::Store::fetchAll<Event>(Sink::Query().request<Event::Uid>()).then([](const QList<Event::Ptr> &events) {
138 QCOMPARE(events.size(), 2); 128 QCOMPARE(events.size(), 1);
139 }); 129 });
140 VERIFYEXEC(verifyEventCountJob); 130 VERIFYEXEC(verifyEventCountJob);
141 131
@@ -173,7 +163,7 @@ private slots:
173 163
174 auto verifyTodoCountJob = 164 auto verifyTodoCountJob =
175 Sink::Store::fetchAll<Todo>(Sink::Query().request<Todo::Uid>()).then([](const QList<Todo::Ptr> &todos) { 165 Sink::Store::fetchAll<Todo>(Sink::Query().request<Todo::Uid>()).then([](const QList<Todo::Ptr> &todos) {
176 QCOMPARE(todos.size(), 2); 166 QCOMPARE(todos.size(), 1);
177 }); 167 });
178 VERIFYEXEC(verifyTodoCountJob); 168 VERIFYEXEC(verifyTodoCountJob);
179 169
@@ -211,7 +201,7 @@ private slots:
211 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); 201 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier));
212 202
213 auto verifyEventCountJob = Sink::Store::fetchAll<Event>({}).then( 203 auto verifyEventCountJob = Sink::Store::fetchAll<Event>({}).then(
214 [](const QList<Event::Ptr> &events) { QCOMPARE(events.size(), 2); }); 204 [](const QList<Event::Ptr> &events) { QCOMPARE(events.size(), 1); });
215 VERIFYEXEC(verifyEventCountJob); 205 VERIFYEXEC(verifyEventCountJob);
216 206
217 auto verifyEventJob = 207 auto verifyEventJob =
@@ -248,7 +238,7 @@ private slots:
248 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); 238 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier));
249 239
250 auto verifyTodoCountJob = Sink::Store::fetchAll<Todo>({}).then( 240 auto verifyTodoCountJob = Sink::Store::fetchAll<Todo>({}).then(
251 [](const QList<Todo::Ptr> &todos) { QCOMPARE(todos.size(), 2); }); 241 [](const QList<Todo::Ptr> &todos) { QCOMPARE(todos.size(), 1); });
252 VERIFYEXEC(verifyTodoCountJob); 242 VERIFYEXEC(verifyTodoCountJob);
253 243
254 auto verifyTodoJob = 244 auto verifyTodoJob =
@@ -350,7 +340,7 @@ private slots:
350 VERIFYEXEC(Sink::ResourceControl::flushReplayQueue(mResourceInstanceIdentifier)); 340 VERIFYEXEC(Sink::ResourceControl::flushReplayQueue(mResourceInstanceIdentifier));
351 341
352 auto verifyEventCountJob = Sink::Store::fetchAll<Event>({}).then( 342 auto verifyEventCountJob = Sink::Store::fetchAll<Event>({}).then(
353 [](const QList<Event::Ptr> &events) { QCOMPARE(events.size(), 1); }); 343 [](const QList<Event::Ptr> &events) { QCOMPARE(events.size(), 0); });
354 VERIFYEXEC(verifyEventCountJob); 344 VERIFYEXEC(verifyEventCountJob);
355 } 345 }
356 346
@@ -370,7 +360,7 @@ private slots:
370 VERIFYEXEC(Sink::ResourceControl::flushReplayQueue(mResourceInstanceIdentifier)); 360 VERIFYEXEC(Sink::ResourceControl::flushReplayQueue(mResourceInstanceIdentifier));
371 361
372 auto verifyTodoCountJob = Sink::Store::fetchAll<Todo>({}).then( 362 auto verifyTodoCountJob = Sink::Store::fetchAll<Todo>({}).then(
373 [](const QList<Todo::Ptr> &todos) { QCOMPARE(todos.size(), 1); }); 363 [](const QList<Todo::Ptr> &todos) { QCOMPARE(todos.size(), 0); });
374 VERIFYEXEC(verifyTodoCountJob); 364 VERIFYEXEC(verifyTodoCountJob);
375 } 365 }
376}; 366};
diff --git a/examples/webdavcommon/webdav.cpp b/examples/webdavcommon/webdav.cpp
index e5f4fab..e13d121 100644
--- a/examples/webdavcommon/webdav.cpp
+++ b/examples/webdavcommon/webdav.cpp
@@ -295,14 +295,13 @@ KDAV2::DavUrl WebDavSynchronizer::urlOf(const QByteArray &remoteId)
295 auto davurl = serverUrl(); 295 auto davurl = serverUrl();
296 auto url = davurl.url(); 296 auto url = davurl.url();
297 url.setPath(remoteId); 297 url.setPath(remoteId);
298 SinkLog() << "Returning URL:" << url.toEncoded();
299 davurl.setUrl(url); 298 davurl.setUrl(url);
300 return davurl; 299 return davurl;
301} 300}
302 301
303KDAV2::DavUrl WebDavSynchronizer::urlOf(const QByteArray &collectionRemoteId, const QString &itemPath) 302KDAV2::DavUrl WebDavSynchronizer::urlOf(const QByteArray &collectionRemoteId, const QString &itemPath)
304{ 303{
305 return urlOf(collectionRemoteId + "/" + itemPath.toUtf8()); 304 return urlOf(collectionRemoteId + itemPath.toUtf8());
306} 305}
307 306
308bool WebDavSynchronizer::unchanged(const KDAV2::DavCollection &collection) 307bool WebDavSynchronizer::unchanged(const KDAV2::DavCollection &collection)