File indexing completed on 2024-05-12 05:10:37
0001 /* 0002 SPDX-FileCopyrightText: 2011-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 0013 namespace Akonadi 0014 { 0015 class ETMCalendar; 0016 } 0017 0018 class ETMCalendarTest : public QObject, KCalendarCore::Calendar::CalendarObserver 0019 { 0020 Q_OBJECT 0021 private Q_SLOTS: 0022 void initTestCase(); 0023 void cleanupTestCase(); 0024 void testCollectionChanged_data(); 0025 void testCollectionChanged(); 0026 void testIncidencesAdded(); 0027 void testIncidencesModified(); 0028 void testFilteredModel(); 0029 void testUnfilteredModel(); 0030 void testCheckableProxyModel(); 0031 void testIncidencesDeleted(); 0032 void testUnselectCollection(); 0033 void testSelectCollection(); 0034 void testSubTodos_data(); 0035 void testSubTodos(); 0036 void testNotifyObserverBug(); 0037 void testUidChange(); 0038 void testItem(); // tests item() 0039 void testShareETM(); 0040 void testFilterInvitations(); 0041 void testFilterInvitationsChanged(); 0042 0043 public Q_SLOTS: 0044 void calendarIncidenceAdded(const KCalendarCore::Incidence::Ptr &incidence) override; 0045 void calendarIncidenceChanged(const KCalendarCore::Incidence::Ptr &incidence) override; 0046 void calendarIncidenceDeleted(const KCalendarCore::Incidence::Ptr &incidence, const KCalendarCore::Calendar *cal) override; 0047 void handleCollectionsAdded(const Akonadi::Collection::List &collectionList); 0048 0049 private: 0050 // quiet --overloaded-virtual warning 0051 using KCalendarCore::Calendar::CalendarObserver::calendarIncidenceDeleted; 0052 0053 void deleteIncidence(const QString &uid); 0054 void createIncidence(const QString &uid); 0055 void createTodo(const QString &uid, const QString &parentUid); 0056 void fetchCollection(); 0057 void waitForIt(); 0058 void checkExitLoop(); 0059 0060 Akonadi::ETMCalendar *mCalendar = nullptr; 0061 Akonadi::Collection mCollection; 0062 int mIncidencesToAdd; 0063 int mIncidencesToDelete; 0064 int mIncidencesToChange; 0065 QString mLastDeletedUid; 0066 QString mLastChangedUid; 0067 };