diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-08-17 20:57:15 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-08-17 20:57:15 +0200 |
commit | d2c172089d932e01abc74b2ea562491f30c5c536 (patch) | |
tree | 2f9881264494fd8a745f7bae892520319b405fbb | |
parent | e2d079fe6ab395558360a94cf383e7cecd17ed5b (diff) | |
download | sink-d2c172089d932e01abc74b2ea562491f30c5c536.tar.gz sink-d2c172089d932e01abc74b2ea562491f30c5c536.zip |
Create a second collection
-rw-r--r-- | examples/caldavresource/CMakeLists.txt | 2 | ||||
-rw-r--r-- | examples/carddavresource/CMakeLists.txt | 2 | ||||
-rw-r--r-- | examples/carddavresource/tests/carddavtest.cpp | 57 | ||||
-rw-r--r-- | 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) | |||
2 | 2 | ||
3 | include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) | 3 | include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) |
4 | 4 | ||
5 | find_package(KPimKDAV2 REQUIRED) | 5 | find_package(KPimKDAV2 REQUIRED 0.2.0) |
6 | find_package(KF5CalendarCore REQUIRED) | 6 | find_package(KF5CalendarCore REQUIRED) |
7 | 7 | ||
8 | add_library(${PROJECT_NAME} SHARED caldavresource.cpp) | 8 | 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) | |||
2 | 2 | ||
3 | include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) | 3 | include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) |
4 | 4 | ||
5 | find_package(KPimKDAV2 REQUIRED) | 5 | find_package(KPimKDAV2 REQUIRED 0.2.0) |
6 | 6 | ||
7 | add_library(${PROJECT_NAME} SHARED carddavresource.cpp) | 7 | add_library(${PROJECT_NAME} SHARED carddavresource.cpp) |
8 | target_link_libraries(${PROJECT_NAME} sink_webdav_common sink Qt5::Core Qt5::Network KPim::KDAV2) | 8 | 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 @@ | |||
11 | #include <KDAV2/DavUrl> | 11 | #include <KDAV2/DavUrl> |
12 | #include <KDAV2/DavItemCreateJob> | 12 | #include <KDAV2/DavItemCreateJob> |
13 | #include <KDAV2/DavCollectionsFetchJob> | 13 | #include <KDAV2/DavCollectionsFetchJob> |
14 | #include <KDAV2/DavCollectionCreateJob> | ||
14 | #include <KDAV2/DavCollection> | 15 | #include <KDAV2/DavCollection> |
15 | #include <KContacts/Addressee> | 16 | #include <KContacts/Addressee> |
16 | #include <KContacts/VCardConverter> | 17 | #include <KContacts/VCardConverter> |
@@ -36,21 +37,22 @@ class CardDavTest : public QObject | |||
36 | 37 | ||
37 | QByteArray mResourceInstanceIdentifier; | 38 | QByteArray mResourceInstanceIdentifier; |
38 | 39 | ||
39 | void createContact(const QString &firstname, const QString &lastname) | 40 | void createContact(const QString &firstname, const QString &lastname, const QString &collectionName) |
40 | { | 41 | { |
41 | QUrl mainUrl(QStringLiteral("http://localhost/dav/addressbooks/user/doe")); | 42 | QUrl mainUrl(QStringLiteral("http://localhost/dav/addressbooks/user/doe")); |
42 | mainUrl.setUserName(QStringLiteral("doe")); | 43 | mainUrl.setUserName(QStringLiteral("doe")); |
43 | mainUrl.setPassword(QStringLiteral("doe")); | 44 | mainUrl.setPassword(QStringLiteral("doe")); |
44 | 45 | ||
45 | |||
46 | KDAV2::DavUrl davUrl(mainUrl, KDAV2::CardDav); | 46 | KDAV2::DavUrl davUrl(mainUrl, KDAV2::CardDav); |
47 | 47 | ||
48 | auto *job = new KDAV2::DavCollectionsFetchJob(davUrl); | 48 | auto *job = new KDAV2::DavCollectionsFetchJob(davUrl); |
49 | job->exec(); | 49 | job->exec(); |
50 | 50 | ||
51 | const auto collectionUrl = [&] { | 51 | const auto collectionUrl = [&] { |
52 | if (!job->collections().isEmpty()) { | 52 | for (const auto &col : job->collections()) { |
53 | return job->collections().first().url().url(); | 53 | if (col.displayName() == collectionName) { |
54 | return col.url().url(); | ||
55 | } | ||
54 | } | 56 | } |
55 | return QUrl{}; | 57 | return QUrl{}; |
56 | }(); | 58 | }(); |
@@ -68,6 +70,22 @@ class CardDavTest : public QObject | |||
68 | } | 70 | } |
69 | } | 71 | } |
70 | 72 | ||
73 | void createCollection(const QString &name) | ||
74 | { | ||
75 | QUrl mainUrl(QStringLiteral("http://localhost/dav/addressbooks/user/doe/") + name); | ||
76 | mainUrl.setUserName(QStringLiteral("doe")); | ||
77 | mainUrl.setPassword(QStringLiteral("doe")); | ||
78 | |||
79 | KDAV2::DavUrl davUrl(mainUrl, KDAV2::CardDav); | ||
80 | KDAV2::DavCollection collection{davUrl, name, KDAV2::DavCollection::Contacts}; | ||
81 | |||
82 | auto createJob = new KDAV2::DavCollectionCreateJob(collection); | ||
83 | createJob->exec(); | ||
84 | if (createJob->error()) { | ||
85 | qWarning() << createJob->errorString(); | ||
86 | } | ||
87 | } | ||
88 | |||
71 | void resetTestEnvironment() | 89 | void resetTestEnvironment() |
72 | { | 90 | { |
73 | system("resetmailbox.sh"); | 91 | system("resetmailbox.sh"); |
@@ -95,10 +113,25 @@ private slots: | |||
95 | VERIFYEXEC(Sink::ResourceControl::start(mResourceInstanceIdentifier)); | 113 | VERIFYEXEC(Sink::ResourceControl::start(mResourceInstanceIdentifier)); |
96 | } | 114 | } |
97 | 115 | ||
116 | void testSyncAddressbooks() | ||
117 | { | ||
118 | createCollection("addressbook2"); | ||
119 | |||
120 | Sink::SyncScope scope; | ||
121 | scope.setType<Addressbook>(); | ||
122 | scope.resourceFilter(mResourceInstanceIdentifier); | ||
123 | |||
124 | VERIFYEXEC(Sink::Store::synchronize(scope)); | ||
125 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); | ||
126 | const auto addressbooks = Sink::Store::read<Addressbook>(Sink::Query().resourceFilter(mResourceInstanceIdentifier)); | ||
127 | QCOMPARE(addressbooks.size(), 2); | ||
128 | } | ||
129 | |||
98 | void testSyncContacts() | 130 | void testSyncContacts() |
99 | { | 131 | { |
100 | createContact("john", "doe"); | 132 | //We want the extra collection from the previous test in this test. |
101 | createContact("jane", "doe"); | 133 | createContact("john", "doe", "personal"); |
134 | createContact("jane", "doe", "personal"); | ||
102 | Sink::SyncScope scope; | 135 | Sink::SyncScope scope; |
103 | scope.setType<Sink::ApplicationDomain::Contact>(); | 136 | scope.setType<Sink::ApplicationDomain::Contact>(); |
104 | scope.resourceFilter(mResourceInstanceIdentifier); | 137 | scope.resourceFilter(mResourceInstanceIdentifier); |
@@ -117,18 +150,6 @@ private slots: | |||
117 | } | 150 | } |
118 | } | 151 | } |
119 | 152 | ||
120 | void testSyncAddressbooks() | ||
121 | { | ||
122 | Sink::SyncScope scope; | ||
123 | scope.setType<Addressbook>(); | ||
124 | scope.resourceFilter(mResourceInstanceIdentifier); | ||
125 | |||
126 | VERIFYEXEC(Sink::Store::synchronize(scope)); | ||
127 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(mResourceInstanceIdentifier)); | ||
128 | const auto addressbooks = Sink::Store::read<Addressbook>(Sink::Query().resourceFilter(mResourceInstanceIdentifier)); | ||
129 | QCOMPARE(addressbooks.size(), 1); | ||
130 | } | ||
131 | |||
132 | void testAddContact() | 153 | void testAddContact() |
133 | { | 154 | { |
134 | Sink::SyncScope scope; | 155 | 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) | |||
2 | 2 | ||
3 | set(CMAKE_CXX_STANDARD 14) | 3 | set(CMAKE_CXX_STANDARD 14) |
4 | 4 | ||
5 | find_package(KPimKDAV2 REQUIRED) | 5 | find_package(KPimKDAV2 REQUIRED 0.2.0) |
6 | 6 | ||
7 | add_library(${PROJECT_NAME} STATIC webdav.cpp) | 7 | add_library(${PROJECT_NAME} STATIC webdav.cpp) |
8 | target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Network KPim::KDAV2 sink) | 8 | target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Network KPim::KDAV2 sink) |