1 /* SPDX-License-Identifier: LGPL-2.0-or-later
2
3 SPDX-FileCopyrightText: 2019 Christoph Cullmann <cullmann@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7
8 #include "sessions_action_test.h"
9 #include "kateapp.h"
10 #include "katesessionmanager.h"
11 #include "katesessionsaction.h"
12
13 #include <QActionGroup>
14 #include <QCommandLineParser>
15 #include <QTemporaryDir>
16 #include <QtTestWidgets>
17
QTEST_MAIN(KateSessionsActionTest)18 QTEST_MAIN(KateSessionsActionTest)
19
20 void KateSessionsActionTest::initTestCase()
21 {
22 /**
23 * init resources from our static lib
24 */
25 Q_INIT_RESOURCE(kate);
26
27 // we need an application object, as session loading will trigger modifications to that
28 m_app = new KateApp(QCommandLineParser());
29 m_app->sessionManager()->activateAnonymousSession();
30 }
31
cleanupTestCase()32 void KateSessionsActionTest::cleanupTestCase()
33 {
34 delete m_app;
35 }
36
init()37 void KateSessionsActionTest::init()
38 {
39 m_tempdir = new QTemporaryDir;
40 QVERIFY(m_tempdir->isValid());
41
42 m_manager = new KateSessionManager(this, m_tempdir->path());
43 m_ac = new KateSessionsAction(QStringLiteral("menu"), this, m_manager);
44 }
45
cleanup()46 void KateSessionsActionTest::cleanup()
47 {
48 delete m_ac;
49 delete m_manager;
50 delete m_tempdir;
51 }
basic()52 void KateSessionsActionTest::basic()
53 {
54 m_ac->slotAboutToShow();
55 QCOMPARE(m_ac->isEnabled(), false);
56
57 QList<QAction *> actions = m_ac->sessionsGroup->actions();
58 QCOMPARE(actions.size(), 0);
59 }
60
limit()61 void KateSessionsActionTest::limit()
62 {
63 for (int i = 0; i < 14; i++) {
64 m_manager->activateSession(QStringLiteral("session %1").arg(i));
65 }
66
67 QCOMPARE(m_manager->activeSession()->isAnonymous(), false);
68 QCOMPARE(m_manager->sessionList().size(), 14);
69 QCOMPARE(m_ac->isEnabled(), true);
70
71 m_ac->slotAboutToShow();
72
73 QList<QAction *> actions = m_ac->sessionsGroup->actions();
74 QCOMPARE(actions.size(), 10);
75 }
76
timesorted()77 void KateSessionsActionTest::timesorted()
78 {
79 /*
80 m_manager->activateSession("one", false, false);
81 m_manager->saveActiveSession();
82 m_manager->activateSession("two", false, false);
83 m_manager->saveActiveSession();
84 m_manager->activateSession("three", false, false);
85 m_manager->saveActiveSession();
86
87 KateSessionList list = m_manager->sessionList();
88 QCOMPARE(list.size(), 3);
89
90 TODO: any idea how to test this simply and not calling utime()?
91 */
92 }
93