File indexing completed on 2024-05-12 05:10:40
0001 /* 0002 SPDX-FileCopyrightText: 2013 Sérgio Martins <iamsergio@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <Akonadi/Collection> 0010 #include <KCalendarCore/Calendar> 0011 #include <QObject> 0012 #include <QString> 0013 0014 namespace Akonadi 0015 { 0016 class ETMCalendar; 0017 class TodoPurger; 0018 } 0019 0020 class TodoPurgerTest : public QObject, KCalendarCore::Calendar::CalendarObserver 0021 { 0022 Q_OBJECT 0023 private Q_SLOTS: 0024 void initTestCase(); 0025 void cleanupTestCase(); 0026 void testPurge(); 0027 0028 public: 0029 void calendarIncidenceAdded(const KCalendarCore::Incidence::Ptr &incidence) override; 0030 void calendarIncidenceDeleted(const KCalendarCore::Incidence::Ptr &incidence, const KCalendarCore::Calendar *calendar) override; 0031 0032 public Q_SLOTS: 0033 void onTodosPurged(bool success, int numDeleted, int numIgnored); 0034 0035 private: 0036 void createTree(); 0037 void createTodo(const QString &uid, const QString &parentUid, bool completed, bool recurring = false); 0038 void fetchCollection(); 0039 0040 Akonadi::ETMCalendar *m_calendar = nullptr; 0041 Akonadi::Collection m_collection; 0042 int m_pendingCreations; 0043 int m_pendingDeletions; 0044 bool m_pendingPurgeSignal = false; 0045 0046 int m_numDeleted; 0047 int m_numIgnored; 0048 0049 Akonadi::TodoPurger *m_todoPurger = nullptr; 0050 };