From d2c172089d932e01abc74b2ea562491f30c5c536 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 17 Aug 2018 20:57:15 +0200 Subject: Create a second collection --- examples/caldavresource/CMakeLists.txt | 2 +- examples/carddavresource/CMakeLists.txt | 2 +- examples/carddavresource/tests/carddavtest.cpp | 57 ++++++++++++++++++-------- examples/webdavcommon/CMakeLists.txt | 2 +- 4 files changed, 42 insertions(+), 21 deletions(-) diff --git a/examples/caldavresource/CMakeLists.txt b/examples/caldavresource/CMakeLists.txt index d6e8408..00d1eb8 100644 --- a/examples/caldavresource/CMakeLists.txt +++ b/examples/caldavresource/CMakeLists.txt @@ -2,7 +2,7 @@ project(sink_resource_caldav) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -find_package(KPimKDAV2 REQUIRED) +find_package(KPimKDAV2 REQUIRED 0.2.0) find_package(KF5CalendarCore REQUIRED) add_library(${PROJECT_NAME} SHARED caldavresource.cpp) diff --git a/examples/carddavresource/CMakeLists.txt b/examples/carddavresource/CMakeLists.txt index 0632804..97208b1 100644 --- a/examples/carddavresource/CMakeLists.txt +++ b/examples/carddavresource/CMakeLists.txt @@ -2,7 +2,7 @@ project(sink_resource_carddav) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -find_package(KPimKDAV2 REQUIRED) +find_package(KPimKDAV2 REQUIRED 0.2.0) add_library(${PROJECT_NAME} SHARED carddavresource.cpp) target_link_libraries(${PROJECT_NAME} sink_webdav_common sink Qt5::Core Qt5::Network KPim::KDAV2) diff --git a/examples/carddavresource/tests/carddavtest.cpp b/examples/carddavresource/tests/carddavtest.cpp index 3da03a6..f75a30a 100644 --- a/examples/carddavresource/tests/carddavtest.cpp +++ b/examples/carddavresource/tests/carddavtest.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -36,21 +37,22 @@ class CardDavTest : public QObject QByteArray mResourceInstanceIdentifier; - void createContact(const QString &firstname, const QString &lastname) + void createContact(const QString &firstname, const QString &lastname, const QString &collectionName) { QUrl mainUrl(QStringLiteral("http://localhost/dav/addressbooks/user/doe")); mainUrl.setUserName(QStringLiteral("doe")); mainUrl.setPassword(QStringLiteral("doe")); - KDAV2::DavUrl davUrl(mainUrl, KDAV2::CardDav); auto *job = new KDAV2::DavCollectionsFetchJob(davUrl); job->exec(); const auto collectionUrl = [&] { - if (!job->collections().isEmpty()) { - return job->collections().first().url().url(); + for (const auto &col : job->collections()) { + if (col.displayName() == collectionName) { + return col.url().url(); + } } return QUrl{}; }(); @@ -68,6 +70,22 @@ class CardDavTest : public QObject } } + void createCollection(const QString &name) + { + QUrl mainUrl(QStringLiteral("http://localhost/dav/addressbooks/user/doe/") + name); + mainUrl.setUserName(QStringLiteral("doe")); + mainUrl.setPassword(QStringLiteral("doe")); + + KDAV2::DavUrl davUrl(mainUrl, KDAV2::CardDav); + KDAV2::DavCollection collection{davUrl, name, KDAV2::DavCollection::Contacts}; + + auto createJob = new KDAV2::DavCollectionCreateJob(collection); + createJob->exec(); + if (createJob->error()) { + qWarning() << createJob->errorString(); + } + } + void resetTestEnvironment() { system("resetmailbox.sh"); @@ -95,10 +113,25 @@ private slots: VERIFYEXEC(Sink::ResourceControl::start(mResourceInstanceIdentifier)); } + void testSyncAddressbooks() + { + createCollection("addressbook2"); + + Sink::SyncScope scope; + scope.setType(); + scope.resourceFilter(mResourceInstanceIdentifier); + + VERIFYEXEC(Sink::Store::synchronize(scope)); + VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); + const auto addressbooks = Sink::Store::read(Sink::Query().resourceFilter(mResourceInstanceIdentifier)); + QCOMPARE(addressbooks.size(), 2); + } + void testSyncContacts() { - createContact("john", "doe"); - createContact("jane", "doe"); + //We want the extra collection from the previous test in this test. + createContact("john", "doe", "personal"); + createContact("jane", "doe", "personal"); Sink::SyncScope scope; scope.setType(); scope.resourceFilter(mResourceInstanceIdentifier); @@ -117,18 +150,6 @@ private slots: } } - void testSyncAddressbooks() - { - Sink::SyncScope scope; - scope.setType(); - scope.resourceFilter(mResourceInstanceIdentifier); - - VERIFYEXEC(Sink::Store::synchronize(scope)); - VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); - const auto addressbooks = Sink::Store::read(Sink::Query().resourceFilter(mResourceInstanceIdentifier)); - QCOMPARE(addressbooks.size(), 1); - } - void testAddContact() { Sink::SyncScope scope; diff --git a/examples/webdavcommon/CMakeLists.txt b/examples/webdavcommon/CMakeLists.txt index c4e99f2..51bf151 100644 --- a/examples/webdavcommon/CMakeLists.txt +++ b/examples/webdavcommon/CMakeLists.txt @@ -2,7 +2,7 @@ project(sink_webdav_common) set(CMAKE_CXX_STANDARD 14) -find_package(KPimKDAV2 REQUIRED) +find_package(KPimKDAV2 REQUIRED 0.2.0) add_library(${PROJECT_NAME} STATIC webdav.cpp) target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Network KPim::KDAV2 sink) -- cgit v1.2.3