Changeset View
Changeset View
Standalone View
Standalone View
tests/units/akonadi/akonadiserializertest.cpp
Show All 25 Lines | |||||
26 | 26 | | |||
27 | #include "akonadi/akonadiserializer.h" | 27 | #include "akonadi/akonadiserializer.h" | ||
28 | #include "akonadi/akonadiapplicationselectedattribute.h" | 28 | #include "akonadi/akonadiapplicationselectedattribute.h" | ||
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> | | |||
35 | #include <AkonadiCore/Tag> | 34 | #include <AkonadiCore/Tag> | ||
36 | #include <KCalCore/Todo> | 35 | #include <KCalCore/Todo> | ||
37 | #include <KMime/Message> | | |||
38 | 36 | | |||
39 | Q_DECLARE_METATYPE(Akonadi::Item*) | 37 | Q_DECLARE_METATYPE(Akonadi::Item*) | ||
40 | 38 | | |||
41 | static void setTodoDates(KCalCore::Todo::Ptr todo, const QDate &start, const QDate &due) { | 39 | static void setTodoDates(KCalCore::Todo::Ptr todo, const QDate &start, const QDate &due) { | ||
42 | todo->setDtStart(QDateTime(start)); | 40 | todo->setDtStart(QDateTime(start)); | ||
43 | todo->setDtDue(QDateTime(due)); | 41 | todo->setDtDue(QDateTime(due)); | ||
44 | } | 42 | } | ||
45 | 43 | | |||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Line(s) | 101 | { | |||
109 | todo1->setUid(QString()); | 107 | todo1->setUid(QString()); | ||
110 | item1.setPayload<KCalCore::Todo::Ptr>(todo1); | 108 | item1.setPayload<KCalCore::Todo::Ptr>(todo1); | ||
111 | 109 | | |||
112 | Akonadi::Item item2; | 110 | Akonadi::Item item2; | ||
113 | KCalCore::Todo::Ptr todo2(new KCalCore::Todo); | 111 | KCalCore::Todo::Ptr todo2(new KCalCore::Todo); | ||
114 | todo2->setUid(QStringLiteral("1")); | 112 | todo2->setUid(QStringLiteral("1")); | ||
115 | item2.setPayload<KCalCore::Todo::Ptr>(todo2); | 113 | item2.setPayload<KCalCore::Todo::Ptr>(todo2); | ||
116 | 114 | | |||
117 | Akonadi::Item item3; | | |||
118 | KMime::Message::Ptr message(new KMime::Message); | | |||
119 | message->subject(true)->fromUnicodeString(QStringLiteral("foo"), "utf-8"); | | |||
120 | message->mainBodyPart()->fromUnicodeString(QStringLiteral("bar")); | | |||
121 | item3.setMimeType(Akonadi::NoteUtils::noteMimeType()); | | |||
122 | item3.setPayload<KMime::Message::Ptr>(message); | | |||
123 | | ||||
124 | QTest::newRow("task without uid") << item1 << QString(); | 115 | QTest::newRow("task without uid") << item1 << QString(); | ||
125 | QTest::newRow("task with uid") << item2 << "1"; | 116 | QTest::newRow("task with uid") << item2 << "1"; | ||
126 | QTest::newRow("note") << item3 << QString(); | | |||
127 | } | 117 | } | ||
128 | 118 | | |||
129 | void shouldKnowTaskItemUid() | 119 | void shouldKnowTaskItemUid() | ||
130 | { | 120 | { | ||
131 | // GIVEN | 121 | // GIVEN | ||
132 | QFETCH(Akonadi::Item, item); | 122 | QFETCH(Akonadi::Item, item); | ||
133 | QFETCH(QString, expectedUid); | 123 | QFETCH(QString, expectedUid); | ||
134 | 124 | | |||
▲ Show 20 Lines • Show All 1474 Lines • ▼ Show 20 Line(s) | 1592 | { | |||
1609 | Akonadi::Serializer serializer; | 1599 | Akonadi::Serializer serializer; | ||
1610 | serializer.updateItemProject(item, parent); | 1600 | serializer.updateItemProject(item, parent); | ||
1611 | 1601 | | |||
1612 | // THEN | 1602 | // THEN | ||
1613 | if (item.hasPayload<KCalCore::Todo::Ptr>()) { | 1603 | if (item.hasPayload<KCalCore::Todo::Ptr>()) { | ||
1614 | auto todo = item.payload<KCalCore::Todo::Ptr>(); | 1604 | auto todo = item.payload<KCalCore::Todo::Ptr>(); | ||
1615 | const QString relatedUid = todo->relatedTo(); | 1605 | const QString relatedUid = todo->relatedTo(); | ||
1616 | QCOMPARE(relatedUid, expectedRelatedToUid); | 1606 | QCOMPARE(relatedUid, expectedRelatedToUid); | ||
1617 | } else if (item.hasPayload<KMime::Message::Ptr>()) { | | |||
1618 | auto note = item.payload<KMime::Message::Ptr>(); | | |||
1619 | const auto relatedHeader = note->headerByType("X-Zanshin-RelatedProjectUid"); | | |||
1620 | const QString relatedUid = relatedHeader ? relatedHeader->asUnicodeString() : QString(); | | |||
1621 | QCOMPARE(relatedUid, expectedRelatedToUid); | | |||
1622 | if (!expectedRelatedToUid.isEmpty()) | | |||
1623 | QVERIFY(note->encodedContent().contains(QStringLiteral("X-Zanshin-RelatedProjectUid: %1").arg(expectedRelatedToUid).toUtf8())); | | |||
1624 | else | | |||
1625 | QVERIFY(!note->encodedContent().contains("X-Zanshin-RelatedProjectUid:")); | | |||
1626 | } | 1607 | } | ||
1627 | } | 1608 | } | ||
1628 | 1609 | | |||
1629 | void shouldFilterChildrenItem_data() | 1610 | void shouldFilterChildrenItem_data() | ||
1630 | { | 1611 | { | ||
1631 | QTest::addColumn<Akonadi::Item>("item"); | 1612 | QTest::addColumn<Akonadi::Item>("item"); | ||
1632 | QTest::addColumn<Akonadi::Item::List>("items"); | 1613 | QTest::addColumn<Akonadi::Item::List>("items"); | ||
1633 | QTest::addColumn<int>("size"); | 1614 | QTest::addColumn<int>("size"); | ||
▲ Show 20 Lines • Show All 411 Lines • Show Last 20 Lines |