File indexing completed on 2024-05-12 05:10:38
0001 /* 0002 SPDX-FileCopyrightText: 2011 Sérgio Martins <iamsergio@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "../src/history.h" 0010 #include "../src/history_p.h" 0011 #include "../src/incidencechanger.h" 0012 #include "unittestbase.h" 0013 0014 enum SignalType { DeletionSignal, CreationSignal, ModificationSignal, UndoSignal, RedoSignal, NumSignals }; 0015 0016 class HistoryTest : public UnitTestBase 0017 { 0018 Q_OBJECT 0019 History *mHistory = nullptr; 0020 QHash<SignalType, int> mPendingSignals; 0021 QHash<int, Akonadi::Item> mItemByChangeId; 0022 QList<int> mKnownChangeIds; 0023 0024 private Q_SLOTS: 0025 void initTestCase(); 0026 0027 void testCreation_data(); 0028 void testCreation(); 0029 0030 void testDeletion_data(); 0031 void testDeletion(); 0032 0033 void testModification_data(); 0034 void testModification(); 0035 0036 void testAtomicOperations_data(); 0037 void testAtomicOperations(); 0038 0039 // Tests a sequence of various create/delete/modify operations that are not part 0040 // of an atomic-operation. 0041 void testMix_data(); 0042 void testMix(); 0043 0044 private: 0045 void waitForSignals(); 0046 0047 public Q_SLOTS: 0048 void 0049 deleteFinished(int changeId, const QList<Akonadi::Item::Id> &deletedIds, Akonadi::IncidenceChanger::ResultCode resultCode, const QString &errorMessage); 0050 0051 void createFinished(int changeId, const Akonadi::Item &item, Akonadi::IncidenceChanger::ResultCode resultCode, const QString &errorString); 0052 0053 void modifyFinished(int changeId, const Akonadi::Item &item, Akonadi::IncidenceChanger::ResultCode resultCode, const QString &errorString); 0054 0055 void handleRedone(Akonadi::History::ResultCode result); 0056 void handleUndone(Akonadi::History::ResultCode result); 0057 void maybeQuitEventLoop(); 0058 };