1 /* Copyright (C) 2006 - 2014 Jan Kundrát <jkt@flaska.net>
3 This file is part of the Trojita Qt IMAP e-mail client,
4 http://trojita.flaska.net/
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License as
8 published by the Free Software Foundation; either version 2 of
9 the License or (at your option) version 3 or any later version
10 accepted by the membership of KDE e.V. (or its successor approved
11 by the membership of KDE e.V.), which shall act as a proxy
12 defined in Section 14 of version 3 of the license.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #ifndef TEST_IMAP_THREADING
24 #define TEST_IMAP_THREADING
26 #include "Utils/LibMailboxSync.h"
28 typedef QMap
<QString
, int> Mapping
;
29 typedef QMap
<QString
, QPersistentModelIndex
> IndexMapping
;
31 /** @short Test the THREAD response processing and the ThreadingMsgListModel's correctness */
32 class ImapModelThreadingTest
: public LibMailboxSync
36 void testStaticThreading();
37 void testStaticThreading_data();
38 void testDynamicThreading();
39 void testThreadDeletionsAdditions();
40 void testThreadDeletionsAdditions_data();
41 void testDynamicSorting();
42 void testDynamicSortingContext();
43 void testDynamicSearch();
44 void testIncrementalThreading();
45 void testRemovingRootWithThreadingInFlight();
46 void testMultipleExpunges();
47 void testVanishedHierarchyReplacement();
48 void testDataChangedUnknownUid();
49 void testThreadingPerformance();
50 void testSortingPerformance();
51 void testSearchingPerformance();
52 void testFlatThreadDeletionPerformance();
53 void testESearchResults();
55 void helper_multipleExpunges();
59 void complexMapping(Mapping
&m
, QByteArray
&response
);
60 static QByteArray
prepareHugeUntaggedThread(const uint num
);
62 void verifyMapping(const Mapping
&mapping
);
63 QModelIndex
findItem(const QString
&where
);
64 IndexMapping
buildIndexMap(const Mapping
&mapping
);
65 void verifyIndexMap(const IndexMapping
&indexMap
, const Mapping
&map
);
66 QByteArray
treeToThreading(QModelIndex index
);
67 QByteArray
numListToString(const Imap::Uids
&seq
);
69 QPersistentModelIndex helper_indexMultipleExpunges_1
;
70 int helper_multipleExpunges_hit
;