Changeset View
Changeset View
Standalone View
Standalone View
tests/units/akonadi/akonadiserializertest.cpp
Show First 20 Lines • Show All 133 Lines • ▼ Show 20 Line(s) | 44 | private slots: | |||
---|---|---|---|---|---|
134 | 134 | | |||
135 | void shouldCreateDataSourceFromCollection_data() | 135 | void shouldCreateDataSourceFromCollection_data() | ||
136 | { | 136 | { | ||
137 | QTest::addColumn<QString>("name"); | 137 | QTest::addColumn<QString>("name"); | ||
138 | QTest::addColumn<QString>("iconName"); | 138 | QTest::addColumn<QString>("iconName"); | ||
139 | QTest::addColumn<QStringList>("mimeTypes"); | 139 | QTest::addColumn<QStringList>("mimeTypes"); | ||
140 | QTest::addColumn<bool>("hasSelectedAttribute"); | 140 | QTest::addColumn<bool>("hasSelectedAttribute"); | ||
141 | QTest::addColumn<bool>("isSelected"); | 141 | QTest::addColumn<bool>("isSelected"); | ||
142 | QTest::addColumn<bool>("isReferenced"); | | |||
143 | QTest::addColumn<bool>("isEnabled"); | | |||
144 | 142 | | |||
145 | const auto noteMimeTypes = QStringList() << QStringLiteral("text/x-vnd.akonadi.note"); | 143 | const auto noteMimeTypes = QStringList() << QStringLiteral("text/x-vnd.akonadi.note"); | ||
146 | const auto taskMimeTypes = QStringList() << QStringLiteral("application/x-vnd.akonadi.calendar.todo"); | 144 | const auto taskMimeTypes = QStringList() << QStringLiteral("application/x-vnd.akonadi.calendar.todo"); | ||
147 | const auto bogusMimeTypes = QStringList() << QStringLiteral("foo/bar"); | 145 | const auto bogusMimeTypes = QStringList() << QStringLiteral("foo/bar"); | ||
148 | const auto allMimeTypes = noteMimeTypes + taskMimeTypes + bogusMimeTypes; | 146 | const auto allMimeTypes = noteMimeTypes + taskMimeTypes + bogusMimeTypes; | ||
149 | 147 | | |||
150 | QTest::newRow("nominal case") << "name" << "icon" << allMimeTypes << true << false << false << true; | 148 | QTest::newRow("nominal case") << "name" << "icon" << allMimeTypes << true << false; | ||
151 | 149 | | |||
152 | QTest::newRow("only notes") << "name" << "icon" << noteMimeTypes << true << false << false << true; | 150 | QTest::newRow("only notes") << "name" << "icon" << noteMimeTypes << true << false; | ||
153 | QTest::newRow("only tasks") << "name" << "icon" << taskMimeTypes << true << false << false << true; | 151 | QTest::newRow("only tasks") << "name" << "icon" << taskMimeTypes << true << false; | ||
154 | QTest::newRow("only bogus") << "name" << "icon" << bogusMimeTypes << true << false << false << true; | 152 | QTest::newRow("only bogus") << "name" << "icon" << bogusMimeTypes << true << false; | ||
155 | | ||||
156 | QTest::newRow("no selected attribute") << "name" << "icon" << allMimeTypes << false << false << false << true; | | |||
157 | QTest::newRow("selected attribute (false)") << "name" << "icon" << allMimeTypes << true << false << false << true; | | |||
158 | QTest::newRow("selected attribute (true)") << "name" << "icon" << allMimeTypes << true << true << false << true; | | |||
159 | | ||||
160 | QTest::newRow("enabled and referenced") << "name" << "icon" << allMimeTypes << true << false << true << true; | | |||
161 | QTest::newRow("enabled and !referenced") << "name" << "icon" << allMimeTypes << true << false << true << false; | | |||
162 | QTest::newRow("!enabled and referenced") << "name" << "icon" << allMimeTypes << true << false << false << true; | | |||
163 | QTest::newRow("!enabled and !referenced") << "name" << "icon" << allMimeTypes << true << false << false << false; | | |||
164 | 153 | | |||
165 | QTest::newRow("empty case") << QString() << QString() << QStringList() << false << false << false << true; | 154 | QTest::newRow("no selected attribute") << "name" << "icon" << allMimeTypes << false << false; | ||
155 | QTest::newRow("selected attribute (false)") << "name" << "icon" << allMimeTypes << true << false; | ||||
156 | QTest::newRow("selected attribute (true)") << "name" << "icon" << allMimeTypes << true << true; | ||||
157 | | ||||
158 | QTest::newRow("empty case") << QString() << QString() << QStringList() << false << false; | ||||
166 | } | 159 | } | ||
167 | 160 | | |||
168 | void shouldCreateDataSourceFromCollection() | 161 | void shouldCreateDataSourceFromCollection() | ||
169 | { | 162 | { | ||
170 | // GIVEN | 163 | // GIVEN | ||
171 | 164 | | |||
172 | // Data... | 165 | // Data... | ||
173 | QFETCH(QString, name); | 166 | QFETCH(QString, name); | ||
174 | QFETCH(QString, iconName); | 167 | QFETCH(QString, iconName); | ||
175 | QFETCH(QStringList, mimeTypes); | 168 | QFETCH(QStringList, mimeTypes); | ||
176 | QFETCH(bool, hasSelectedAttribute); | 169 | QFETCH(bool, hasSelectedAttribute); | ||
177 | QFETCH(bool, isSelected); | 170 | QFETCH(bool, isSelected); | ||
178 | QFETCH(bool, isReferenced); | | |||
179 | QFETCH(bool, isEnabled); | | |||
180 | 171 | | |||
181 | Domain::DataSource::ContentTypes expectedContentTypes; | 172 | Domain::DataSource::ContentTypes expectedContentTypes; | ||
182 | if (mimeTypes.contains(QStringLiteral("text/x-vnd.akonadi.note"))) { | 173 | if (mimeTypes.contains(QStringLiteral("text/x-vnd.akonadi.note"))) { | ||
183 | expectedContentTypes |= Domain::DataSource::Notes; | 174 | expectedContentTypes |= Domain::DataSource::Notes; | ||
184 | } | 175 | } | ||
185 | if (mimeTypes.contains(QStringLiteral("application/x-vnd.akonadi.calendar.todo"))) { | 176 | if (mimeTypes.contains(QStringLiteral("application/x-vnd.akonadi.calendar.todo"))) { | ||
186 | expectedContentTypes |= Domain::DataSource::Tasks; | 177 | expectedContentTypes |= Domain::DataSource::Tasks; | ||
187 | } | 178 | } | ||
188 | 179 | | |||
189 | // ... stored in a collection | 180 | // ... stored in a collection | ||
190 | Akonadi::Collection collection(42); | 181 | Akonadi::Collection collection(42); | ||
191 | collection.setContentMimeTypes(mimeTypes); | 182 | collection.setContentMimeTypes(mimeTypes); | ||
192 | collection.setName(name); | 183 | collection.setName(name); | ||
193 | collection.setReferenced(isReferenced); | | |||
194 | collection.setEnabled(isEnabled); | | |||
195 | auto displayAttribute = new Akonadi::EntityDisplayAttribute; | 184 | auto displayAttribute = new Akonadi::EntityDisplayAttribute; | ||
196 | displayAttribute->setIconName(iconName); | 185 | displayAttribute->setIconName(iconName); | ||
197 | collection.addAttribute(displayAttribute); | 186 | collection.addAttribute(displayAttribute); | ||
198 | if (hasSelectedAttribute) { | 187 | if (hasSelectedAttribute) { | ||
199 | auto selectedAttribute = new Akonadi::ApplicationSelectedAttribute; | 188 | auto selectedAttribute = new Akonadi::ApplicationSelectedAttribute; | ||
200 | selectedAttribute->setSelected(isSelected); | 189 | selectedAttribute->setSelected(isSelected); | ||
201 | collection.addAttribute(selectedAttribute); | 190 | collection.addAttribute(selectedAttribute); | ||
202 | } | 191 | } | ||
203 | 192 | | |||
204 | // WHEN | 193 | // WHEN | ||
205 | Akonadi::Serializer serializer; | 194 | Akonadi::Serializer serializer; | ||
206 | auto dataSource = serializer.createDataSourceFromCollection(collection, Akonadi::SerializerInterface::BaseName); | 195 | auto dataSource = serializer.createDataSourceFromCollection(collection, Akonadi::SerializerInterface::BaseName); | ||
207 | 196 | | |||
208 | // THEN | 197 | // THEN | ||
209 | QCOMPARE(dataSource->name(), name); | 198 | QCOMPARE(dataSource->name(), name); | ||
210 | QCOMPARE(dataSource->iconName(), iconName); | 199 | QCOMPARE(dataSource->iconName(), iconName); | ||
211 | QCOMPARE(dataSource->contentTypes(), expectedContentTypes); | 200 | QCOMPARE(dataSource->contentTypes(), expectedContentTypes); | ||
212 | QCOMPARE(dataSource->isSelected(), !hasSelectedAttribute || isSelected); | 201 | QCOMPARE(dataSource->isSelected(), !hasSelectedAttribute || isSelected); | ||
213 | QCOMPARE(dataSource->property("collectionId").value<Akonadi::Collection::Id>(), collection.id()); | 202 | QCOMPARE(dataSource->property("collectionId").value<Akonadi::Collection::Id>(), collection.id()); | ||
214 | QCOMPARE((dataSource->listStatus() & Domain::DataSource::Listed) != 0, isReferenced || isEnabled); | | |||
215 | QCOMPARE((dataSource->listStatus() == Domain::DataSource::Bookmarked), isEnabled); | | |||
216 | } | 203 | } | ||
217 | 204 | | |||
218 | void shouldCreateNullDataSourceFromInvalidCollection() | 205 | void shouldCreateNullDataSourceFromInvalidCollection() | ||
219 | { | 206 | { | ||
220 | // GIVEN | 207 | // GIVEN | ||
221 | Akonadi::Collection collection; | 208 | Akonadi::Collection collection; | ||
222 | 209 | | |||
223 | // WHEN | 210 | // WHEN | ||
▲ Show 20 Lines • Show All 100 Lines • ▼ Show 20 Line(s) | |||||
324 | } | 311 | } | ||
325 | 312 | | |||
326 | void shouldCreateCollectionFromDataSource_data() | 313 | void shouldCreateCollectionFromDataSource_data() | ||
327 | { | 314 | { | ||
328 | QTest::addColumn<QString>("name"); | 315 | QTest::addColumn<QString>("name"); | ||
329 | QTest::addColumn<QString>("iconName"); | 316 | QTest::addColumn<QString>("iconName"); | ||
330 | QTest::addColumn<Domain::DataSource::ContentTypes>("contentTypes"); | 317 | QTest::addColumn<Domain::DataSource::ContentTypes>("contentTypes"); | ||
331 | QTest::addColumn<bool>("isSelected"); | 318 | QTest::addColumn<bool>("isSelected"); | ||
332 | QTest::addColumn<Domain::DataSource::ListStatus>("listStatus"); | | |||
333 | 319 | | |||
334 | const auto noType = Domain::DataSource::ContentTypes(Domain::DataSource::NoContent); | 320 | const auto noType = Domain::DataSource::ContentTypes(Domain::DataSource::NoContent); | ||
335 | const auto taskType = Domain::DataSource::ContentTypes(Domain::DataSource::Tasks); | 321 | const auto taskType = Domain::DataSource::ContentTypes(Domain::DataSource::Tasks); | ||
336 | const auto noteType = Domain::DataSource::ContentTypes(Domain::DataSource::Notes); | 322 | const auto noteType = Domain::DataSource::ContentTypes(Domain::DataSource::Notes); | ||
337 | const auto allTypes = taskType | noteType; | 323 | const auto allTypes = taskType | noteType; | ||
338 | 324 | | |||
339 | const auto unlisted = Domain::DataSource::Unlisted; | 325 | QTest::newRow("nominal case") << "name" << "icon-name" << allTypes << true; | ||
340 | const auto listed = Domain::DataSource::Listed; | | |||
341 | const auto bookmarked = Domain::DataSource::Bookmarked; | | |||
342 | | ||||
343 | QTest::newRow("nominal case") << "name" << "icon-name" << allTypes << true << unlisted; | | |||
344 | | ||||
345 | QTest::newRow("only notes") << "name" << "icon-name" << noteType << true << unlisted; | | |||
346 | QTest::newRow("only tasks") << "name" << "icon-name" << taskType << true << unlisted; | | |||
347 | QTest::newRow("only nothing ;)") << "name" << "icon-name" << noType << true << unlisted; | | |||
348 | 326 | | |||
349 | QTest::newRow("not selected") << "name" << "icon-name" << allTypes << false << unlisted; | 327 | QTest::newRow("only notes") << "name" << "icon-name" << noteType << true; | ||
350 | QTest::newRow("selected") << "name" << "icon-name" << allTypes << true << unlisted; | 328 | QTest::newRow("only tasks") << "name" << "icon-name" << taskType << true; | ||
329 | QTest::newRow("only nothing ;)") << "name" << "icon-name" << noType << true; | ||||
351 | 330 | | |||
352 | QTest::newRow("unlisted") << "name" << "icon-name" << allTypes << true << unlisted; | 331 | QTest::newRow("not selected") << "name" << "icon-name" << allTypes << false; | ||
353 | QTest::newRow("listed") << "name" << "icon-name" << allTypes << true << listed; | 332 | QTest::newRow("selected") << "name" << "icon-name" << allTypes << true; | ||
354 | QTest::newRow("bookmarked") << "name" << "icon-name" << allTypes << true << bookmarked; | | |||
355 | 333 | | |||
356 | QTest::newRow("empty case") << QString() << QString() << noType << true << unlisted; | 334 | QTest::newRow("empty case") << QString() << QString() << noType << true; | ||
357 | } | 335 | } | ||
358 | 336 | | |||
359 | void shouldCreateCollectionFromDataSource() | 337 | void shouldCreateCollectionFromDataSource() | ||
360 | { | 338 | { | ||
361 | // GIVEN | 339 | // GIVEN | ||
362 | const auto timestamp = QDateTime::currentMSecsSinceEpoch(); | 340 | const auto timestamp = QDateTime::currentMSecsSinceEpoch(); | ||
363 | 341 | | |||
364 | // Data... | 342 | // Data... | ||
365 | QFETCH(QString, name); | 343 | QFETCH(QString, name); | ||
366 | QFETCH(QString, iconName); | 344 | QFETCH(QString, iconName); | ||
367 | QFETCH(Domain::DataSource::ContentTypes, contentTypes); | 345 | QFETCH(Domain::DataSource::ContentTypes, contentTypes); | ||
368 | QFETCH(bool, isSelected); | 346 | QFETCH(bool, isSelected); | ||
369 | QFETCH(Domain::DataSource::ListStatus, listStatus); | | |||
370 | 347 | | |||
371 | QStringList mimeTypes; | 348 | QStringList mimeTypes; | ||
372 | if (contentTypes & Domain::DataSource::Tasks) | 349 | if (contentTypes & Domain::DataSource::Tasks) | ||
373 | mimeTypes << QStringLiteral("application/x-vnd.akonadi.calendar.todo"); | 350 | mimeTypes << QStringLiteral("application/x-vnd.akonadi.calendar.todo"); | ||
374 | if (contentTypes & Domain::DataSource::Notes) | 351 | if (contentTypes & Domain::DataSource::Notes) | ||
375 | mimeTypes << QStringLiteral("text/x-vnd.akonadi.note"); | 352 | mimeTypes << QStringLiteral("text/x-vnd.akonadi.note"); | ||
376 | 353 | | |||
377 | 354 | | |||
378 | // ... stored in a data source | 355 | // ... stored in a data source | ||
379 | auto source = Domain::DataSource::Ptr::create(); | 356 | auto source = Domain::DataSource::Ptr::create(); | ||
380 | source->setName(name); | 357 | source->setName(name); | ||
381 | source->setIconName(iconName); | 358 | source->setIconName(iconName); | ||
382 | source->setContentTypes(contentTypes); | 359 | source->setContentTypes(contentTypes); | ||
383 | source->setListStatus(listStatus); | | |||
384 | source->setSelected(isSelected); | 360 | source->setSelected(isSelected); | ||
385 | source->setProperty("collectionId", 42); | 361 | source->setProperty("collectionId", 42); | ||
386 | 362 | | |||
387 | // WHEN | 363 | // WHEN | ||
388 | Akonadi::Serializer serializer; | 364 | Akonadi::Serializer serializer; | ||
389 | auto collection = serializer.createCollectionFromDataSource(source); | 365 | auto collection = serializer.createCollectionFromDataSource(source); | ||
390 | 366 | | |||
391 | // THEN | 367 | // THEN | ||
392 | QCOMPARE(collection.id(), source->property("collectionId").value<Akonadi::Collection::Id>()); | 368 | QCOMPARE(collection.id(), source->property("collectionId").value<Akonadi::Collection::Id>()); | ||
393 | QVERIFY(collection.hasAttribute<Akonadi::ApplicationSelectedAttribute>()); | 369 | QVERIFY(collection.hasAttribute<Akonadi::ApplicationSelectedAttribute>()); | ||
394 | QCOMPARE(collection.attribute<Akonadi::ApplicationSelectedAttribute>()->isSelected(), isSelected); | 370 | QCOMPARE(collection.attribute<Akonadi::ApplicationSelectedAttribute>()->isSelected(), isSelected); | ||
395 | QVERIFY(collection.hasAttribute<Akonadi::TimestampAttribute>()); | 371 | QVERIFY(collection.hasAttribute<Akonadi::TimestampAttribute>()); | ||
396 | QVERIFY(collection.attribute<Akonadi::TimestampAttribute>()->timestamp() >= timestamp); | 372 | QVERIFY(collection.attribute<Akonadi::TimestampAttribute>()->timestamp() >= timestamp); | ||
397 | | ||||
398 | switch (listStatus) { | | |||
399 | case Domain::DataSource::Unlisted: | | |||
400 | QVERIFY(!collection.referenced()); | | |||
401 | QVERIFY(!collection.enabled()); | | |||
402 | break; | | |||
403 | case Domain::DataSource::Listed: | | |||
404 | QVERIFY(collection.referenced()); | | |||
405 | QVERIFY(!collection.enabled()); | | |||
406 | break; | | |||
407 | case Domain::DataSource::Bookmarked: | | |||
408 | QVERIFY(collection.enabled()); | | |||
409 | break; | | |||
410 | default: | | |||
411 | qFatal("Shouldn't happen"); | | |||
412 | break; | | |||
413 | } | | |||
414 | } | | |||
415 | | ||||
416 | void shouldVerifyIfCollectionIsListed_data() | | |||
417 | { | | |||
418 | QTest::addColumn<bool>("isEnabled"); | | |||
419 | QTest::addColumn<bool>("isReferenced"); | | |||
420 | QTest::addColumn<bool>("expectedListed"); | | |||
421 | | ||||
422 | QTest::newRow("enabled and referenced") << true << true << true; | | |||
423 | QTest::newRow("enabled and !referenced") << true << false << true; | | |||
424 | QTest::newRow("!enabled and referenced") << false << true << true; | | |||
425 | QTest::newRow("!enabled and !referenced") << false << false << false; | | |||
426 | } | | |||
427 | | ||||
428 | void shouldVerifyIfCollectionIsListed() | | |||
429 | { | | |||
430 | // GIVEN | | |||
431 | QFETCH(bool, isEnabled); | | |||
432 | QFETCH(bool, isReferenced); | | |||
433 | | ||||
434 | // ... stored in a collection | | |||
435 | Akonadi::Collection collection(42); | | |||
436 | collection.setReferenced(isReferenced); | | |||
437 | collection.setEnabled(isEnabled); | | |||
438 | | ||||
439 | // WHEN | | |||
440 | Akonadi::Serializer serializer; | | |||
441 | | ||||
442 | // THEN | | |||
443 | QFETCH(bool, expectedListed); | | |||
444 | QCOMPARE(serializer.isListedCollection(collection), expectedListed); | | |||
445 | } | 373 | } | ||
446 | 374 | | |||
447 | void shouldVerifyIfCollectionIsSelected_data() | 375 | void shouldVerifyIfCollectionIsSelected_data() | ||
448 | { | 376 | { | ||
449 | QTest::addColumn<QStringList>("mimeTypes"); | 377 | QTest::addColumn<QStringList>("mimeTypes"); | ||
450 | QTest::addColumn<bool>("hasSelectedAttribute"); | 378 | QTest::addColumn<bool>("hasSelectedAttribute"); | ||
451 | QTest::addColumn<bool>("isSelected"); | 379 | QTest::addColumn<bool>("isSelected"); | ||
452 | QTest::addColumn<bool>("isReferenced"); | | |||
453 | QTest::addColumn<bool>("isEnabled"); | | |||
454 | QTest::addColumn<bool>("expectedSelected"); | 380 | QTest::addColumn<bool>("expectedSelected"); | ||
455 | 381 | | |||
456 | const auto noteMimeTypes = QStringList() << QStringLiteral("text/x-vnd.akonadi.note"); | 382 | const auto noteMimeTypes = QStringList() << QStringLiteral("text/x-vnd.akonadi.note"); | ||
457 | const auto taskMimeTypes = QStringList() << QStringLiteral("application/x-vnd.akonadi.calendar.todo"); | 383 | const auto taskMimeTypes = QStringList() << QStringLiteral("application/x-vnd.akonadi.calendar.todo"); | ||
458 | const auto bogusMimeTypes = QStringList() << QStringLiteral("foo/bar"); | 384 | const auto bogusMimeTypes = QStringList() << QStringLiteral("foo/bar"); | ||
459 | const auto allMimeTypes = noteMimeTypes + taskMimeTypes + bogusMimeTypes; | 385 | const auto allMimeTypes = noteMimeTypes + taskMimeTypes + bogusMimeTypes; | ||
460 | 386 | | |||
461 | QTest::newRow("nominal case") << allMimeTypes << true << false << false << true << false; | 387 | QTest::newRow("nominal case") << allMimeTypes << true << false << false; | ||
388 | | ||||
389 | QTest::newRow("only notes") << noteMimeTypes << true << false << false; | ||||
390 | QTest::newRow("only tasks") << taskMimeTypes << true << false << false; | ||||
391 | QTest::newRow("only bogus") << bogusMimeTypes << true << false << false; | ||||
392 | | ||||
393 | QTest::newRow("selected, only notes") << noteMimeTypes << true << true << true; | ||||
394 | QTest::newRow("selected, only tasks") << taskMimeTypes << true << true << true; | ||||
395 | QTest::newRow("selected, only bogus") << bogusMimeTypes << true << true << false; | ||||
462 | 396 | | |||
463 | QTest::newRow("only notes") << noteMimeTypes << true << false << false << true << false; | 397 | QTest::newRow("no selected attribute") << allMimeTypes << false << false << true; | ||
464 | QTest::newRow("only tasks") << taskMimeTypes << true << false << false << true << false; | 398 | QTest::newRow("selected attribute (false)") << allMimeTypes << true << false << false; | ||
465 | QTest::newRow("only bogus") << bogusMimeTypes << true << false << false << true << false; | 399 | QTest::newRow("selected attribute (true)") << allMimeTypes << true << true << true; | ||
466 | | ||||
467 | QTest::newRow("selected, only notes") << noteMimeTypes << true << true << false << true << true; | | |||
468 | QTest::newRow("selected, only tasks") << taskMimeTypes << true << true << false << true << true; | | |||
469 | QTest::newRow("selected, only bogus") << bogusMimeTypes << true << true << false << true << false; | | |||
470 | | ||||
471 | QTest::newRow("no selected attribute") << allMimeTypes << false << false << false << true << true; | | |||
472 | QTest::newRow("selected attribute (false)") << allMimeTypes << true << false << false << true << false; | | |||
473 | QTest::newRow("selected attribute (true)") << allMimeTypes << true << true << false << true << true; | | |||
474 | | ||||
475 | QTest::newRow("enabled and referenced") << allMimeTypes << true << false << true << true << false; | | |||
476 | QTest::newRow("enabled and !referenced") << allMimeTypes << true << false << true << false << false; | | |||
477 | QTest::newRow("!enabled and referenced") << allMimeTypes << true << false << false << true << false; | | |||
478 | QTest::newRow("!enabled and !referenced") << allMimeTypes << true << false << false << false << false; | | |||
479 | | ||||
480 | QTest::newRow("selected, enabled and referenced") << allMimeTypes << true << true << true << true << true; | | |||
481 | QTest::newRow("selected, enabled and !referenced") << allMimeTypes << true << true << true << false << true; | | |||
482 | QTest::newRow("selected, !enabled and referenced") << allMimeTypes << true << true << false << true << true; | | |||
483 | QTest::newRow("selected, !enabled and !referenced") << allMimeTypes << true << true << false << false << false; | | |||
484 | 400 | | |||
485 | QTest::newRow("empty case") << QStringList() << false << false << false << true << false; | 401 | QTest::newRow("empty case") << QStringList() << false << false << false; | ||
486 | } | 402 | } | ||
487 | 403 | | |||
488 | void shouldVerifyIfCollectionIsSelected() | 404 | void shouldVerifyIfCollectionIsSelected() | ||
489 | { | 405 | { | ||
490 | // GIVEN | 406 | // GIVEN | ||
491 | QFETCH(QStringList, mimeTypes); | 407 | QFETCH(QStringList, mimeTypes); | ||
492 | QFETCH(bool, hasSelectedAttribute); | 408 | QFETCH(bool, hasSelectedAttribute); | ||
493 | QFETCH(bool, isSelected); | 409 | QFETCH(bool, isSelected); | ||
494 | QFETCH(bool, isReferenced); | | |||
495 | QFETCH(bool, isEnabled); | | |||
496 | 410 | | |||
497 | Domain::DataSource::ContentTypes expectedContentTypes; | 411 | Domain::DataSource::ContentTypes expectedContentTypes; | ||
498 | if (mimeTypes.contains(QStringLiteral("text/x-vnd.akonadi.note"))) { | 412 | if (mimeTypes.contains(QStringLiteral("text/x-vnd.akonadi.note"))) { | ||
499 | expectedContentTypes |= Domain::DataSource::Notes; | 413 | expectedContentTypes |= Domain::DataSource::Notes; | ||
500 | } | 414 | } | ||
501 | if (mimeTypes.contains(QStringLiteral("application/x-vnd.akonadi.calendar.todo"))) { | 415 | if (mimeTypes.contains(QStringLiteral("application/x-vnd.akonadi.calendar.todo"))) { | ||
502 | expectedContentTypes |= Domain::DataSource::Tasks; | 416 | expectedContentTypes |= Domain::DataSource::Tasks; | ||
503 | } | 417 | } | ||
504 | 418 | | |||
505 | // ... stored in a collection | 419 | // ... stored in a collection | ||
506 | Akonadi::Collection collection(42); | 420 | Akonadi::Collection collection(42); | ||
507 | collection.setContentMimeTypes(mimeTypes); | 421 | collection.setContentMimeTypes(mimeTypes); | ||
508 | collection.setReferenced(isReferenced); | | |||
509 | collection.setEnabled(isEnabled); | | |||
510 | if (hasSelectedAttribute) { | 422 | if (hasSelectedAttribute) { | ||
511 | auto selectedAttribute = new Akonadi::ApplicationSelectedAttribute; | 423 | auto selectedAttribute = new Akonadi::ApplicationSelectedAttribute; | ||
512 | selectedAttribute->setSelected(isSelected); | 424 | selectedAttribute->setSelected(isSelected); | ||
513 | collection.addAttribute(selectedAttribute); | 425 | collection.addAttribute(selectedAttribute); | ||
514 | } | 426 | } | ||
515 | 427 | | |||
516 | // WHEN | 428 | // WHEN | ||
517 | Akonadi::Serializer serializer; | 429 | Akonadi::Serializer serializer; | ||
▲ Show 20 Lines • Show All 1976 Lines • Show Last 20 Lines |