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 };