1 /*
2  *  SPDX-FileCopyrightText: 2021 Waqar Ahmed <waqar.17a@gmail.com>
3  *
4  *  SPDX-License-Identifier: LGPL-2.0-or-later
5  */
6 #include "kmultitabbartest.h"
7 
8 #include <QSignalSpy>
9 #include <QTest>
10 
11 #include <KMultiTabBar>
12 
KMultiTabBarTest(QObject * parent)13 KMultiTabBarTest::KMultiTabBarTest(QObject *parent)
14     : QObject(parent)
15 {
16 }
17 
testTabsAppendAndRemove()18 void KMultiTabBarTest::testTabsAppendAndRemove()
19 {
20     KMultiTabBar tb;
21 
22     int id1 = 1;
23     int id2 = 2;
24 
25     tb.appendTab(QIcon(), id1);
26     tb.appendTab(QIcon(), id2);
27 
28     // verify that tabs were appended
29     QVERIFY(tb.tab(id1));
30     QVERIFY(tb.tab(id2));
31 
32     tb.removeTab(id1);
33     tb.removeTab(id2);
34 
35     // verify that tabs were removed
36     QVERIFY(!tb.tab(id1));
37     QVERIFY(!tb.tab(id2));
38 }
39 
testTabStyleChanged()40 void KMultiTabBarTest::testTabStyleChanged()
41 {
42     KMultiTabBar tb;
43     QCOMPARE(tb.tabStyle(), KMultiTabBar::VSNET);
44 
45     tb.setStyle(KMultiTabBar::KDEV3ICON);
46     QCOMPARE(tb.tabStyle(), KMultiTabBar::KDEV3ICON);
47 }
48 
testTabRaised()49 void KMultiTabBarTest::testTabRaised()
50 {
51     KMultiTabBar tb;
52 
53     tb.appendTab(QIcon(), /*id : */ 1);
54     tb.appendTab(QIcon(), /*id : */ 2);
55 
56     // set id = 1 as active tab
57     tb.setTab(1, true);
58 
59     QVERIFY(tb.isTabRaised(1));
60     QVERIFY(tb.tab(1)->isChecked());
61     QVERIFY(!tb.isTabRaised(2));
62 }
63 
shouldEmitClicked()64 void KMultiTabBarTest::shouldEmitClicked()
65 {
66     KMultiTabBar tb;
67     int id1 = 1;
68     tb.appendTab(QIcon(), id1);
69     KMultiTabBarTab *tab = tb.tab(id1);
70     QVERIFY(tab);
71 
72     QSignalSpy spy(tab, &KMultiTabBarTab::clicked);
73 
74     QTest::mouseClick(tab, Qt::LeftButton);
75 
76     QCOMPARE(spy.count(), 1);
77 }
78 
79 QTEST_MAIN(KMultiTabBarTest)
80