Changeset View
Changeset View
Standalone View
Standalone View
tests/units/akonadi/akonadiserializertest.cpp
Show All 28 Lines | |||||
29 | #include "akonadi/akonaditimestampattribute.h" | 29 | #include "akonadi/akonaditimestampattribute.h" | ||
30 | 30 | | |||
31 | #include <AkonadiCore/Collection> | 31 | #include <AkonadiCore/Collection> | ||
32 | #include <AkonadiCore/EntityDisplayAttribute> | 32 | #include <AkonadiCore/EntityDisplayAttribute> | ||
33 | #include <AkonadiCore/Item> | 33 | #include <AkonadiCore/Item> | ||
34 | #include <Akonadi/Notes/NoteUtils> | 34 | #include <Akonadi/Notes/NoteUtils> | ||
35 | #include <AkonadiCore/Tag> | 35 | #include <AkonadiCore/Tag> | ||
36 | #include <KCalCore/Todo> | 36 | #include <KCalCore/Todo> | ||
37 | #include <kcalcore_version.h> | ||||
37 | #include <KMime/Message> | 38 | #include <KMime/Message> | ||
38 | 39 | | |||
39 | Q_DECLARE_METATYPE(Akonadi::Item*) | 40 | Q_DECLARE_METATYPE(Akonadi::Item*) | ||
40 | 41 | | |||
42 | #if KCALCORE_VERSION >= QT_VERSION_CHECK(5, 6, 80) | ||||
43 | #define KDateTime QDateTime | ||||
44 | #endif | ||||
45 | | ||||
46 | | ||||
47 | static void setTodoDates(KCalCore::Todo::Ptr todo, const QDateTime &start, const QDateTime &due) { | ||||
48 | #if KCALCORE_VERSION >= QT_VERSION_CHECK(5, 6, 80) | ||||
49 | todo->setDtStart(start); | ||||
50 | todo->setDtDue(due); | ||||
51 | #else | ||||
52 | todo->setDtStart(KDateTime(start, KDateTime::UTC)); | ||||
53 | todo->setDtDue(KDateTime(due, KDateTime::UTC)); | ||||
54 | #endif | ||||
55 | } | ||||
56 | | ||||
41 | class AkonadiSerializerTest : public QObject | 57 | class AkonadiSerializerTest : public QObject | ||
42 | { | 58 | { | ||
43 | Q_OBJECT | 59 | Q_OBJECT | ||
44 | private slots: | 60 | private slots: | ||
45 | void shouldKnowWhenAnObjectRepresentsACollection() | 61 | void shouldKnowWhenAnObjectRepresentsACollection() | ||
46 | { | 62 | { | ||
47 | // GIVEN | 63 | // GIVEN | ||
48 | Akonadi::Serializer serializer; | 64 | Akonadi::Serializer serializer; | ||
▲ Show 20 Lines • Show All 497 Lines • ▼ Show 20 Line(s) | 542 | { | |||
546 | todo->setSummary(summary); | 562 | todo->setSummary(summary); | ||
547 | todo->setDescription(content); | 563 | todo->setDescription(content); | ||
548 | 564 | | |||
549 | if (isDone) | 565 | if (isDone) | ||
550 | todo->setCompleted(KDateTime(doneDate)); | 566 | todo->setCompleted(KDateTime(doneDate)); | ||
551 | else | 567 | else | ||
552 | todo->setCompleted(isDone); | 568 | todo->setCompleted(isDone); | ||
553 | 569 | | |||
554 | todo->setDtStart(KDateTime(startDate, KDateTime::UTC)); | 570 | setTodoDates(todo, startDate, dueDate); | ||
555 | todo->setDtDue(KDateTime(dueDate, KDateTime::UTC)); | | |||
556 | todo->setRelatedTo(QStringLiteral("my-uid")); | 571 | todo->setRelatedTo(QStringLiteral("my-uid")); | ||
557 | if (!delegateName.isEmpty() || !delegateEmail.isEmpty()) { | 572 | if (!delegateName.isEmpty() || !delegateEmail.isEmpty()) { | ||
558 | KCalCore::Attendee::Ptr attendee(new KCalCore::Attendee(delegateName, | 573 | KCalCore::Attendee::Ptr attendee(new KCalCore::Attendee(delegateName, | ||
559 | delegateEmail, | 574 | delegateEmail, | ||
560 | true, | 575 | true, | ||
561 | KCalCore::Attendee::Accepted)); | 576 | KCalCore::Attendee::Accepted)); | ||
562 | todo->addAttendee(attendee); | 577 | todo->addAttendee(attendee); | ||
563 | } | 578 | } | ||
▲ Show 20 Lines • Show All 109 Lines • ▼ Show 20 Line(s) | |||||
673 | { | 688 | { | ||
674 | // GIVEN | 689 | // GIVEN | ||
675 | 690 | | |||
676 | // A todo... | 691 | // A todo... | ||
677 | KCalCore::Todo::Ptr originalTodo(new KCalCore::Todo); | 692 | KCalCore::Todo::Ptr originalTodo(new KCalCore::Todo); | ||
678 | originalTodo->setSummary(QStringLiteral("summary")); | 693 | originalTodo->setSummary(QStringLiteral("summary")); | ||
679 | originalTodo->setDescription(QStringLiteral("content")); | 694 | originalTodo->setDescription(QStringLiteral("content")); | ||
680 | originalTodo->setCompleted(false); | 695 | originalTodo->setCompleted(false); | ||
681 | originalTodo->setDtStart(KDateTime(QDate(2013, 11, 24), KDateTime::UTC)); | 696 | setTodoDates(originalTodo, QDateTime(QDate(2013, 11, 24)), QDateTime(QDate(2014, 03, 01))); | ||
682 | originalTodo->setDtDue(KDateTime(QDate(2014, 03, 01), KDateTime::UTC)); | 697 | | ||
683 | originalTodo->setRelatedTo(QStringLiteral("my-uid")); | 698 | originalTodo->setRelatedTo(QStringLiteral("my-uid")); | ||
684 | KCalCore::Attendee::Ptr originalAttendee(new KCalCore::Attendee(QStringLiteral("John Doe"), | 699 | KCalCore::Attendee::Ptr originalAttendee(new KCalCore::Attendee(QStringLiteral("John Doe"), | ||
685 | QStringLiteral("j@d.com"), | 700 | QStringLiteral("j@d.com"), | ||
686 | true, | 701 | true, | ||
687 | KCalCore::Attendee::Accepted)); | 702 | KCalCore::Attendee::Accepted)); | ||
688 | originalTodo->addAttendee(originalAttendee); | 703 | originalTodo->addAttendee(originalAttendee); | ||
689 | 704 | | |||
690 | // ... as payload of an item... | 705 | // ... as payload of an item... | ||
Show All 40 Lines | |||||
731 | updatedTodo->setSummary(updatedSummary); | 746 | updatedTodo->setSummary(updatedSummary); | ||
732 | updatedTodo->setDescription(updatedContent); | 747 | updatedTodo->setDescription(updatedContent); | ||
733 | 748 | | |||
734 | if (updatedDone) | 749 | if (updatedDone) | ||
735 | updatedTodo->setCompleted(KDateTime(updatedDoneDate)); | 750 | updatedTodo->setCompleted(KDateTime(updatedDoneDate)); | ||
736 | else | 751 | else | ||
737 | updatedTodo->setCompleted(updatedDone); | 752 | updatedTodo->setCompleted(updatedDone); | ||
738 | 753 | | |||
739 | updatedTodo->setDtStart(KDateTime(updatedStartDate, KDateTime::UTC)); | 754 | setTodoDates(updatedTodo, updatedStartDate, updatedDueDate); | ||
740 | updatedTodo->setDtDue(KDateTime(updatedDueDate, KDateTime::UTC)); | | |||
741 | updatedTodo->setRelatedTo(updatedRelated); | 755 | updatedTodo->setRelatedTo(updatedRelated); | ||
742 | 756 | | |||
743 | if (updatedRecurs) | 757 | if (updatedRecurs) | ||
744 | updatedTodo->recurrence()->setDaily(1); | 758 | updatedTodo->recurrence()->setDaily(1); | ||
745 | 759 | | |||
746 | for (int i = 0; i < updatedAttachmentData.size(); i++) { | 760 | for (int i = 0; i < updatedAttachmentData.size(); i++) { | ||
747 | KCalCore::Attachment::Ptr attachment(new KCalCore::Attachment(QByteArray())); | 761 | KCalCore::Attachment::Ptr attachment(new KCalCore::Attachment(QByteArray())); | ||
748 | if (!updatedAttachmentData.at(i).isEmpty()) | 762 | if (!updatedAttachmentData.at(i).isEmpty()) | ||
▲ Show 20 Lines • Show All 151 Lines • ▼ Show 20 Line(s) | 911 | { | |||
900 | // Data... | 914 | // Data... | ||
901 | const QDateTime today(QDate::currentDate(), QTime(0, 0), Qt::UTC); | 915 | const QDateTime today(QDate::currentDate(), QTime(0, 0), Qt::UTC); | ||
902 | const QDateTime doneDate(QDate(2013, 11, 20), QTime(0, 0), Qt::UTC); | 916 | const QDateTime doneDate(QDate(2013, 11, 20), QTime(0, 0), Qt::UTC); | ||
903 | const QDateTime startDate(QDate(2013, 11, 10), QTime(0, 0), Qt::UTC); | 917 | const QDateTime startDate(QDate(2013, 11, 10), QTime(0, 0), Qt::UTC); | ||
904 | 918 | | |||
905 | // ... stored in a todo... | 919 | // ... stored in a todo... | ||
906 | KCalCore::Todo::Ptr todo(new KCalCore::Todo); | 920 | KCalCore::Todo::Ptr todo(new KCalCore::Todo); | ||
907 | todo->setSummary(QStringLiteral("summary")); | 921 | todo->setSummary(QStringLiteral("summary")); | ||
922 | #if KCALCORE_VERSION >= QT_VERSION_CHECK(5, 6, 80) | ||||
923 | todo->setDtStart(startDate); | ||||
924 | #else | ||||
908 | todo->setDtStart(KDateTime(startDate, KDateTime::UTC)); | 925 | todo->setDtStart(KDateTime(startDate, KDateTime::UTC)); | ||
926 | #endif | ||||
909 | todo->recurrence()->setMonthly(1); | 927 | todo->recurrence()->setMonthly(1); | ||
910 | 928 | | |||
911 | // ... as payload of an item... | 929 | // ... as payload of an item... | ||
912 | Akonadi::Item item; | 930 | Akonadi::Item item; | ||
913 | item.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | 931 | item.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | ||
914 | item.setPayload<KCalCore::Todo::Ptr>(todo); | 932 | item.setPayload<KCalCore::Todo::Ptr>(todo); | ||
915 | 933 | | |||
916 | // ... deserialized as a task | 934 | // ... deserialized as a task | ||
Show All 35 Lines | 958 | { | |||
952 | KCalCore::Todo::Ptr originalTodo(new KCalCore::Todo); | 970 | KCalCore::Todo::Ptr originalTodo(new KCalCore::Todo); | ||
953 | originalTodo->setSummary(summary); | 971 | originalTodo->setSummary(summary); | ||
954 | originalTodo->setDescription(content); | 972 | originalTodo->setDescription(content); | ||
955 | 973 | | |||
956 | if (originalTodo) | 974 | if (originalTodo) | ||
957 | originalTodo->setCompleted(KDateTime(doneDate)); | 975 | originalTodo->setCompleted(KDateTime(doneDate)); | ||
958 | else | 976 | else | ||
959 | originalTodo->setCompleted(isDone); | 977 | originalTodo->setCompleted(isDone); | ||
960 | 978 | setTodoDates(originalTodo, startDate, dueDate); | |||
961 | originalTodo->setDtStart(KDateTime(startDate, KDateTime::UTC)); | | |||
962 | originalTodo->setDtDue(KDateTime(dueDate, KDateTime::UTC)); | | |||
963 | 979 | | |||
964 | // ... as payload of an item... | 980 | // ... as payload of an item... | ||
965 | Akonadi::Item originalItem; | 981 | Akonadi::Item originalItem; | ||
966 | originalItem.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | 982 | originalItem.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | ||
967 | originalItem.setPayload<KCalCore::Todo::Ptr>(originalTodo); | 983 | originalItem.setPayload<KCalCore::Todo::Ptr>(originalTodo); | ||
968 | 984 | | |||
969 | // ... deserialized as a task | 985 | // ... deserialized as a task | ||
970 | Akonadi::Serializer serializer; | 986 | Akonadi::Serializer serializer; | ||
Show All 40 Lines | 1015 | { | |||
1011 | KCalCore::Todo::Ptr originalTodo(new KCalCore::Todo); | 1027 | KCalCore::Todo::Ptr originalTodo(new KCalCore::Todo); | ||
1012 | originalTodo->setSummary(summary); | 1028 | originalTodo->setSummary(summary); | ||
1013 | originalTodo->setDescription(content); | 1029 | originalTodo->setDescription(content); | ||
1014 | 1030 | | |||
1015 | if (originalTodo) | 1031 | if (originalTodo) | ||
1016 | originalTodo->setCompleted(KDateTime(doneDate)); | 1032 | originalTodo->setCompleted(KDateTime(doneDate)); | ||
1017 | else | 1033 | else | ||
1018 | originalTodo->setCompleted(isDone); | 1034 | originalTodo->setCompleted(isDone); | ||
1019 | 1035 | setTodoDates(originalTodo, startDate, dueDate); | |||
1020 | originalTodo->setDtStart(KDateTime(startDate, KDateTime::UTC)); | | |||
1021 | originalTodo->setDtDue(KDateTime(dueDate, KDateTime::UTC)); | | |||
1022 | 1036 | | |||
1023 | // ... as payload of an item... | 1037 | // ... as payload of an item... | ||
1024 | Akonadi::Item originalItem; | 1038 | Akonadi::Item originalItem; | ||
1025 | originalItem.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | 1039 | originalItem.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | ||
1026 | originalItem.setPayload<KCalCore::Todo::Ptr>(originalTodo); | 1040 | originalItem.setPayload<KCalCore::Todo::Ptr>(originalTodo); | ||
1027 | 1041 | | |||
1028 | // ... deserialized as a task | 1042 | // ... deserialized as a task | ||
1029 | Akonadi::Serializer serializer; | 1043 | Akonadi::Serializer serializer; | ||
▲ Show 20 Lines • Show All 208 Lines • ▼ Show 20 Line(s) | 1192 | { | |||
1238 | if (parentCollectionId > 0) { | 1252 | if (parentCollectionId > 0) { | ||
1239 | QCOMPARE(item.parentCollection().id(), parentCollectionId); | 1253 | QCOMPARE(item.parentCollection().id(), parentCollectionId); | ||
1240 | } | 1254 | } | ||
1241 | 1255 | | |||
1242 | auto todo = item.payload<KCalCore::Todo::Ptr>(); | 1256 | auto todo = item.payload<KCalCore::Todo::Ptr>(); | ||
1243 | QCOMPARE(todo->summary(), summary); | 1257 | QCOMPARE(todo->summary(), summary); | ||
1244 | QCOMPARE(todo->description(), content); | 1258 | QCOMPARE(todo->description(), content); | ||
1245 | QCOMPARE(todo->isCompleted(), isDone); | 1259 | QCOMPARE(todo->isCompleted(), isDone); | ||
1260 | #if KCALCORE_VERSION >= QT_VERSION_CHECK(5, 6, 80) | ||||
1261 | QCOMPARE(todo->completed().toUTC(), doneDate); | ||||
1262 | QCOMPARE(todo->dtStart().toUTC(), startDate); | ||||
1263 | QCOMPARE(todo->dtDue().toUTC(), dueDate); | ||||
1264 | if (todo->dtStart().isValid()) { | ||||
1265 | QCOMPARE(int(todo->dtStart().timeSpec()), int(Qt::UTC)); | ||||
1266 | } | ||||
1267 | QVERIFY(todo->allDay()); // this is always true currently... | ||||
1268 | #else | ||||
1246 | QCOMPARE(todo->completed().dateTime().toUTC(), doneDate); | 1269 | QCOMPARE(todo->completed().dateTime().toUTC(), doneDate); | ||
1247 | QCOMPARE(todo->dtStart().dateTime().toUTC(), startDate); | 1270 | QCOMPARE(todo->dtStart().dateTime().toUTC(), startDate); | ||
1248 | QCOMPARE(todo->dtDue().dateTime().toUTC(), dueDate); | 1271 | QCOMPARE(todo->dtDue().dateTime().toUTC(), dueDate); | ||
1249 | if (todo->dtStart().isValid()) { | 1272 | if (todo->dtStart().isValid()) { | ||
1250 | QCOMPARE(int(todo->dtStart().timeType()), int(KDateTime::UTC)); | 1273 | QCOMPARE(int(todo->dtStart().timeType()), int(KDateTime::UTC)); | ||
1251 | } | 1274 | } | ||
1252 | QCOMPARE(todo->dtStart().isDateOnly(), todo->allDay()); | 1275 | QCOMPARE(todo->dtStart().isDateOnly(), todo->allDay()); | ||
1253 | 1276 | | |||
1277 | #endif | ||||
1254 | const ushort expectedRecurrence = recurrence == Domain::Task::NoRecurrence ? KCalCore::Recurrence::rNone | 1278 | const ushort expectedRecurrence = recurrence == Domain::Task::NoRecurrence ? KCalCore::Recurrence::rNone | ||
1255 | : recurrence == Domain::Task::RecursDaily ? KCalCore::Recurrence::rDaily | 1279 | : recurrence == Domain::Task::RecursDaily ? KCalCore::Recurrence::rDaily | ||
1256 | : recurrence == Domain::Task::RecursWeekly ? KCalCore::Recurrence::rWeekly | 1280 | : recurrence == Domain::Task::RecursWeekly ? KCalCore::Recurrence::rWeekly | ||
1257 | : recurrence == Domain::Task::RecursMonthly ? KCalCore::Recurrence::rMonthlyDay | 1281 | : recurrence == Domain::Task::RecursMonthly ? KCalCore::Recurrence::rMonthlyDay | ||
1258 | : KCalCore::Recurrence::rNone; // Shouldn't happen though | 1282 | : KCalCore::Recurrence::rNone; // Shouldn't happen though | ||
1259 | QCOMPARE(todo->recurrence()->recurrenceType(), expectedRecurrence); | 1283 | QCOMPARE(todo->recurrence()->recurrenceType(), expectedRecurrence); | ||
1260 | if (recurrence != Domain::Task::NoRecurrence) | 1284 | if (recurrence != Domain::Task::NoRecurrence) | ||
1261 | QCOMPARE(todo->recurrence()->frequency(), 1); | 1285 | QCOMPARE(todo->recurrence()->frequency(), 1); | ||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Line(s) | 1313 | { | |||
1314 | childTodo->setSummary(summary); | 1338 | childTodo->setSummary(summary); | ||
1315 | childTodo->setDescription(content); | 1339 | childTodo->setDescription(content); | ||
1316 | 1340 | | |||
1317 | if (isDone) | 1341 | if (isDone) | ||
1318 | childTodo->setCompleted(KDateTime(doneDate)); | 1342 | childTodo->setCompleted(KDateTime(doneDate)); | ||
1319 | else | 1343 | else | ||
1320 | childTodo->setCompleted(isDone); | 1344 | childTodo->setCompleted(isDone); | ||
1321 | 1345 | | |||
1322 | childTodo->setDtStart(KDateTime(startDate, KDateTime::UTC)); | 1346 | setTodoDates(childTodo, startDate, dueDate); | ||
1323 | childTodo->setDtDue(KDateTime(dueDate, KDateTime::UTC)); | | |||
1324 | 1347 | | |||
1325 | Akonadi::Item childItem; | 1348 | Akonadi::Item childItem; | ||
1326 | childItem.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | 1349 | childItem.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | ||
1327 | childItem.setPayload<KCalCore::Todo::Ptr>(childTodo); | 1350 | childItem.setPayload<KCalCore::Todo::Ptr>(childTodo); | ||
1328 | 1351 | | |||
1329 | QTest::newRow("without parent") << task << childItem << false; | 1352 | QTest::newRow("without parent") << task << childItem << false; | ||
1330 | 1353 | | |||
1331 | // Create Child Item with parent | 1354 | // Create Child Item with parent | ||
1332 | KCalCore::Todo::Ptr childTodo2(new KCalCore::Todo); | 1355 | KCalCore::Todo::Ptr childTodo2(new KCalCore::Todo); | ||
1333 | childTodo2->setSummary(summary); | 1356 | childTodo2->setSummary(summary); | ||
1334 | childTodo2->setDescription(content); | 1357 | childTodo2->setDescription(content); | ||
1335 | 1358 | | |||
1336 | if (isDone) | 1359 | if (isDone) | ||
1337 | childTodo2->setCompleted(KDateTime(doneDate)); | 1360 | childTodo2->setCompleted(KDateTime(doneDate)); | ||
1338 | else | 1361 | else | ||
1339 | childTodo2->setCompleted(isDone); | 1362 | childTodo2->setCompleted(isDone); | ||
1340 | 1363 | setTodoDates(childTodo2, startDate, dueDate); | |||
1341 | childTodo2->setDtStart(KDateTime(startDate, KDateTime::UTC)); | | |||
1342 | childTodo2->setDtDue(KDateTime(dueDate, KDateTime::UTC)); | | |||
1343 | childTodo2->setRelatedTo(QStringLiteral("1")); | 1364 | childTodo2->setRelatedTo(QStringLiteral("1")); | ||
1344 | 1365 | | |||
1345 | Akonadi::Item childItem2; | 1366 | Akonadi::Item childItem2; | ||
1346 | childItem2.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | 1367 | childItem2.setMimeType(QStringLiteral("application/x-vnd.akonadi.calendar.todo")); | ||
1347 | childItem2.setPayload<KCalCore::Todo::Ptr>(childTodo2); | 1368 | childItem2.setPayload<KCalCore::Todo::Ptr>(childTodo2); | ||
1348 | 1369 | | |||
1349 | QTest::newRow("with parent") << task << childItem2 << true; | 1370 | QTest::newRow("with parent") << task << childItem2 << true; | ||
1350 | 1371 | | |||
▲ Show 20 Lines • Show All 1309 Lines • ▼ Show 20 Line(s) | 2672 | { | |||
2660 | QVERIFY(!dateOnly.time().isNull()); // same as above | 2681 | QVERIFY(!dateOnly.time().isNull()); // same as above | ||
2661 | 2682 | | |||
2662 | // GIVEN a QDateTime at midnight | 2683 | // GIVEN a QDateTime at midnight | ||
2663 | QDateTime atMidnight(QDate(2016, 6, 12), QTime(0, 0, 0)); | 2684 | QDateTime atMidnight(QDate(2016, 6, 12), QTime(0, 0, 0)); | ||
2664 | // THEN we can detect that a time information was present | 2685 | // THEN we can detect that a time information was present | ||
2665 | QVERIFY(atMidnight.time().isValid()); | 2686 | QVERIFY(atMidnight.time().isValid()); | ||
2666 | QVERIFY(!atMidnight.time().isNull()); | 2687 | QVERIFY(!atMidnight.time().isNull()); | ||
2667 | 2688 | | |||
2689 | #if 0 | ||||
2668 | // GIVEN a KDateTime without time information | 2690 | // GIVEN a KDateTime without time information | ||
2669 | KDateTime kdOnly(QDate(2016, 6, 12)); | 2691 | KDateTime kdOnly(QDate(2016, 6, 12)); | ||
2670 | // THEN we can detect that there was no time information, i.e. all day event | 2692 | // THEN we can detect that there was no time information, i.e. all day event | ||
2671 | QVERIFY(kdOnly.isDateOnly()); | 2693 | QVERIFY(kdOnly.isDateOnly()); | ||
2694 | #endif | ||||
2672 | } | 2695 | } | ||
2673 | }; | 2696 | }; | ||
2674 | 2697 | | |||
2675 | ZANSHIN_TEST_MAIN(AkonadiSerializerTest) | 2698 | ZANSHIN_TEST_MAIN(AkonadiSerializerTest) | ||
2676 | 2699 | | |||
2677 | #include "akonadiserializertest.moc" | 2700 | #include "akonadiserializertest.moc" |