File indexing completed on 2024-09-22 04:50:44
0001 /* 0002 SPDX-FileCopyrightText: 2014-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only 0005 */ 0006 0007 #include "statusbarlabeltoggledstatetest.h" 0008 #include "MessageComposer/StatusBarLabelToggledState" 0009 #include <QSignalSpy> 0010 #include <QTest> 0011 #include <qtestmouse.h> 0012 0013 QTEST_MAIN(StatusBarLabelToggledStateTest) 0014 0015 StatusBarLabelToggledStateTest::StatusBarLabelToggledStateTest(QObject *parent) 0016 : QObject(parent) 0017 { 0018 } 0019 0020 StatusBarLabelToggledStateTest::~StatusBarLabelToggledStateTest() = default; 0021 0022 void StatusBarLabelToggledStateTest::shouldHasDefaultValue() 0023 { 0024 MessageComposer::StatusBarLabelToggledState widget; 0025 widget.setStateString(QStringLiteral("toggle"), QStringLiteral("untoggle")); 0026 QVERIFY(!widget.toggleMode()); 0027 } 0028 0029 void StatusBarLabelToggledStateTest::shouldChangeState() 0030 { 0031 MessageComposer::StatusBarLabelToggledState widget; 0032 widget.setStateString(QStringLiteral("toggle"), QStringLiteral("untoggle")); 0033 widget.setToggleMode(true); 0034 QVERIFY(widget.toggleMode()); 0035 QVERIFY(!widget.text().isEmpty()); 0036 0037 widget.setToggleMode(true); 0038 QVERIFY(widget.toggleMode()); 0039 0040 widget.setToggleMode(false); 0041 QVERIFY(!widget.toggleMode()); 0042 } 0043 0044 void StatusBarLabelToggledStateTest::shouldEmitSignalWhenChangeState() 0045 { 0046 MessageComposer::StatusBarLabelToggledState widget; 0047 widget.setStateString(QStringLiteral("toggle"), QStringLiteral("untoggle")); 0048 QSignalSpy spy(&widget, &MessageComposer::StatusBarLabelToggledState::toggleModeChanged); 0049 widget.setToggleMode(true); 0050 QCOMPARE(spy.count(), 1); 0051 0052 widget.setToggleMode(false); 0053 QCOMPARE(spy.count(), 2); 0054 } 0055 0056 void StatusBarLabelToggledStateTest::shouldNotEmitSignalWhenWeDontChangeState() 0057 { 0058 MessageComposer::StatusBarLabelToggledState widget; 0059 widget.setStateString(QStringLiteral("toggle"), QStringLiteral("untoggle")); 0060 QSignalSpy spy(&widget, &MessageComposer::StatusBarLabelToggledState::toggleModeChanged); 0061 widget.setToggleMode(false); 0062 QCOMPARE(spy.count(), 0); 0063 0064 widget.setToggleMode(true); 0065 QCOMPARE(spy.count(), 1); 0066 0067 widget.setToggleMode(true); 0068 QCOMPARE(spy.count(), 1); 0069 } 0070 0071 void StatusBarLabelToggledStateTest::shouldEmitSignalWhenClickOnLabel() 0072 { 0073 MessageComposer::StatusBarLabelToggledState widget; 0074 widget.setStateString(QStringLiteral("toggle"), QStringLiteral("untoggle")); 0075 QSignalSpy spy(&widget, &MessageComposer::StatusBarLabelToggledState::toggleModeChanged); 0076 widget.show(); 0077 QVERIFY(QTest::qWaitForWindowExposed(&widget)); 0078 QTest::mouseClick(&widget, Qt::LeftButton); 0079 QCOMPARE(spy.count(), 1); 0080 0081 QTest::mouseClick(&widget, Qt::LeftButton); 0082 QCOMPARE(spy.count(), 2); 0083 } 0084 0085 void StatusBarLabelToggledStateTest::shouldChangeTestWhenStateChanged() 0086 { 0087 MessageComposer::StatusBarLabelToggledState widget; 0088 widget.setStateString(QStringLiteral("toggle"), QStringLiteral("untoggle")); 0089 const QString initialText = widget.text(); 0090 widget.setToggleMode(true); 0091 const QString newText = widget.text(); 0092 QVERIFY(initialText != newText); 0093 0094 widget.setToggleMode(false); 0095 QCOMPARE(widget.text(), initialText); 0096 0097 widget.setToggleMode(true); 0098 QCOMPARE(widget.text(), newText); 0099 } 0100 0101 #include "moc_statusbarlabeltoggledstatetest.cpp"