File indexing completed on 2025-02-16 04:56:03
0001 /* 0002 SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only 0005 */ 0006 0007 #include "sieveeditormenubartest.h" 0008 #include "../sieveeditormenubar.h" 0009 #include <QSignalSpy> 0010 #include <QTest> 0011 #include <qtestmouse.h> 0012 0013 SieveEditorMenuBarTest::SieveEditorMenuBarTest(QObject *parent) 0014 : QObject(parent) 0015 { 0016 } 0017 0018 SieveEditorMenuBarTest::~SieveEditorMenuBarTest() = default; 0019 0020 void SieveEditorMenuBarTest::shouldDisableActions() 0021 { 0022 KSieveUi::SieveEditorMenuBar bar; 0023 QVERIFY(bar.goToLineAction()->isEnabled()); 0024 QVERIFY(bar.findAction()->isEnabled()); 0025 QVERIFY(bar.replaceAction()->isEnabled()); 0026 QVERIFY(bar.pasteAction()->isEnabled()); 0027 QVERIFY(bar.zoomInAction()->isEnabled()); 0028 QVERIFY(bar.zoomOutAction()->isEnabled()); 0029 QVERIFY(bar.zoomResetAction()->isEnabled()); 0030 QVERIFY(bar.editorMenu()->isEnabled()); 0031 QVERIFY(bar.toolsMenu()->isEnabled()); 0032 QVERIFY(bar.fileMenu()->isEnabled()); 0033 QVERIFY(bar.commentCodeAction()->isEnabled()); 0034 QVERIFY(bar.uncommentCodeAction()->isEnabled()); 0035 QVERIFY(bar.debugSieveScriptAction()->isEnabled()); 0036 QVERIFY(!bar.undoAction()->isEnabled()); 0037 QVERIFY(!bar.redoAction()->isEnabled()); 0038 QVERIFY(!bar.copyAction()->isEnabled()); 0039 QVERIFY(bar.pasteAction()->isEnabled()); 0040 QVERIFY(!bar.cutAction()->isEnabled()); 0041 QVERIFY(bar.selectAllAction()->isEnabled()); 0042 QVERIFY(bar.wordWrapAction()->isEnabled()); 0043 QVERIFY(bar.printAction()->isEnabled()); 0044 QVERIFY(bar.printPreviewAction()->isEnabled()); 0045 0046 bar.setEditorMode(false); 0047 QVERIFY(!bar.goToLineAction()->isEnabled()); 0048 QVERIFY(!bar.findAction()->isEnabled()); 0049 QVERIFY(!bar.replaceAction()->isEnabled()); 0050 QVERIFY(!bar.pasteAction()->isEnabled()); 0051 QVERIFY(!bar.zoomInAction()->isEnabled()); 0052 QVERIFY(!bar.zoomOutAction()->isEnabled()); 0053 QVERIFY(!bar.zoomResetAction()->isEnabled()); 0054 QVERIFY(!bar.selectAllAction()->isEnabled()); 0055 QVERIFY(bar.editorMenu()->isEnabled()); 0056 QVERIFY(bar.toolsMenu()->isEnabled()); 0057 QVERIFY(bar.fileMenu()->isEnabled()); 0058 QVERIFY(!bar.commentCodeAction()->isEnabled()); 0059 QVERIFY(!bar.uncommentCodeAction()->isEnabled()); 0060 QVERIFY(!bar.debugSieveScriptAction()->isEnabled()); 0061 QVERIFY(!bar.undoAction()->isEnabled()); 0062 QVERIFY(!bar.redoAction()->isEnabled()); 0063 QVERIFY(!bar.copyAction()->isEnabled()); 0064 QVERIFY(!bar.pasteAction()->isEnabled()); 0065 QVERIFY(!bar.cutAction()->isEnabled()); 0066 QVERIFY(!bar.selectAllAction()->isEnabled()); 0067 QVERIFY(!bar.wordWrapAction()->isEnabled()); 0068 QVERIFY(!bar.printAction()->isEnabled()); 0069 QVERIFY(!bar.printPreviewAction()->isEnabled()); 0070 0071 bar.setEditorMode(true); 0072 QVERIFY(bar.goToLineAction()->isEnabled()); 0073 QVERIFY(bar.findAction()->isEnabled()); 0074 QVERIFY(bar.replaceAction()->isEnabled()); 0075 QVERIFY(bar.pasteAction()->isEnabled()); 0076 QVERIFY(bar.zoomInAction()->isEnabled()); 0077 QVERIFY(bar.zoomOutAction()->isEnabled()); 0078 QVERIFY(bar.zoomResetAction()->isEnabled()); 0079 QVERIFY(bar.selectAllAction()->isEnabled()); 0080 QVERIFY(bar.editorMenu()->isEnabled()); 0081 QVERIFY(bar.toolsMenu()->isEnabled()); 0082 QVERIFY(bar.fileMenu()->isEnabled()); 0083 QVERIFY(bar.commentCodeAction()->isEnabled()); 0084 QVERIFY(bar.uncommentCodeAction()->isEnabled()); 0085 QVERIFY(bar.debugSieveScriptAction()->isEnabled()); 0086 QVERIFY(bar.undoAction()->isEnabled()); 0087 QVERIFY(bar.redoAction()->isEnabled()); 0088 QVERIFY(bar.copyAction()->isEnabled()); 0089 QVERIFY(bar.pasteAction()->isEnabled()); 0090 QVERIFY(bar.cutAction()->isEnabled()); 0091 QVERIFY(bar.selectAllAction()->isEnabled()); 0092 QVERIFY(bar.wordWrapAction()->isEnabled()); 0093 QVERIFY(bar.printAction()->isEnabled()); 0094 QVERIFY(bar.printPreviewAction()->isEnabled()); 0095 } 0096 0097 void SieveEditorMenuBarTest::shouldHaveDefaultValue() 0098 { 0099 KSieveUi::SieveEditorMenuBar bar; 0100 QVERIFY(bar.goToLineAction()); 0101 QVERIFY(bar.findAction()); 0102 QVERIFY(bar.replaceAction()); 0103 QVERIFY(bar.undoAction()); 0104 QVERIFY(bar.redoAction()); 0105 QVERIFY(bar.copyAction()); 0106 QVERIFY(bar.pasteAction()); 0107 QVERIFY(bar.cutAction()); 0108 QVERIFY(bar.zoomInAction()); 0109 QVERIFY(bar.zoomOutAction()); 0110 QVERIFY(bar.zoomResetAction()); 0111 QVERIFY(bar.selectAllAction()); 0112 QVERIFY(bar.editorMenu()); 0113 QVERIFY(bar.toolsMenu()); 0114 QVERIFY(bar.fileMenu()); 0115 QVERIFY(bar.viewMenu()); 0116 QVERIFY(bar.commentCodeAction()); 0117 QVERIFY(bar.uncommentCodeAction()); 0118 QVERIFY(bar.debugSieveScriptAction()); 0119 QVERIFY(bar.wordWrapAction()); 0120 QVERIFY(bar.printAction()); 0121 QVERIFY(bar.printPreviewAction()); 0122 QCOMPARE(bar.actions().count(), 4); 0123 QCOMPARE(bar.editorMenu()->actions().count(), 18); 0124 QCOMPARE(bar.fileMenu()->actions().count(), 2); 0125 QCOMPARE(bar.toolsMenu()->actions().count(), 1); 0126 QCOMPARE(bar.viewMenu()->actions().count(), 4); 0127 0128 QVERIFY(bar.findAction()->isEnabled()); 0129 QVERIFY(bar.replaceAction()->isEnabled()); 0130 QVERIFY(!bar.undoAction()->isEnabled()); 0131 QVERIFY(!bar.redoAction()->isEnabled()); 0132 QVERIFY(!bar.copyAction()->isEnabled()); 0133 QVERIFY(bar.pasteAction()->isEnabled()); 0134 QVERIFY(!bar.cutAction()->isEnabled()); 0135 QVERIFY(bar.selectAllAction()->isEnabled()); 0136 } 0137 0138 void SieveEditorMenuBarTest::shouldEmitSignals() 0139 { 0140 KSieveUi::SieveEditorMenuBar bar; 0141 bar.setEditorMode(true); 0142 QSignalSpy spyComment(&bar, &KSieveUi::SieveEditorMenuBar::comment); 0143 bar.commentCodeAction()->trigger(); 0144 0145 QSignalSpy spyUnComment(&bar, &KSieveUi::SieveEditorMenuBar::uncomment); 0146 bar.uncommentCodeAction()->trigger(); 0147 0148 QSignalSpy spyCut(&bar, &KSieveUi::SieveEditorMenuBar::cut); 0149 bar.cutAction()->trigger(); 0150 0151 QSignalSpy spyGotoLine(&bar, &KSieveUi::SieveEditorMenuBar::gotoLine); 0152 bar.goToLineAction()->trigger(); 0153 0154 QSignalSpy spyCopy(&bar, &KSieveUi::SieveEditorMenuBar::copy); 0155 bar.copyAction()->trigger(); 0156 0157 QSignalSpy spyPaste(&bar, &KSieveUi::SieveEditorMenuBar::paste); 0158 bar.pasteAction()->trigger(); 0159 0160 QSignalSpy spyUndo(&bar, &KSieveUi::SieveEditorMenuBar::undo); 0161 bar.undoAction()->trigger(); 0162 0163 QSignalSpy spyRedo(&bar, &KSieveUi::SieveEditorMenuBar::redo); 0164 bar.redoAction()->trigger(); 0165 0166 QSignalSpy spySelectAll(&bar, &KSieveUi::SieveEditorMenuBar::selectAll); 0167 bar.selectAllAction()->trigger(); 0168 0169 QSignalSpy spyFind(&bar, &KSieveUi::SieveEditorMenuBar::find); 0170 bar.findAction()->trigger(); 0171 0172 QSignalSpy spyReplace(&bar, &KSieveUi::SieveEditorMenuBar::replace); 0173 bar.replaceAction()->trigger(); 0174 0175 QSignalSpy spyZoomIn(&bar, &KSieveUi::SieveEditorMenuBar::zoomIn); 0176 bar.zoomInAction()->trigger(); 0177 0178 QSignalSpy spyZoomOut(&bar, &KSieveUi::SieveEditorMenuBar::zoomOut); 0179 bar.zoomOutAction()->trigger(); 0180 0181 QSignalSpy spyZoomReset(&bar, &KSieveUi::SieveEditorMenuBar::zoomReset); 0182 bar.zoomResetAction()->trigger(); 0183 0184 QSignalSpy spyDebugScript(&bar, &KSieveUi::SieveEditorMenuBar::debugSieveScript); 0185 bar.debugSieveScriptAction()->trigger(); 0186 0187 QSignalSpy spyWordWrapScript(&bar, &KSieveUi::SieveEditorMenuBar::wordWrap); 0188 bar.wordWrapAction()->trigger(); 0189 0190 QSignalSpy spyPrint(&bar, &KSieveUi::SieveEditorMenuBar::print); 0191 bar.printAction()->trigger(); 0192 0193 QSignalSpy spyPrintPreview(&bar, &KSieveUi::SieveEditorMenuBar::printPreview); 0194 bar.printPreviewAction()->trigger(); 0195 0196 QCOMPARE(spyZoomOut.count(), 1); 0197 QCOMPARE(spyZoomIn.count(), 1); 0198 QCOMPARE(spyUnComment.count(), 1); 0199 QCOMPARE(spyComment.count(), 1); 0200 QCOMPARE(spyGotoLine.count(), 1); 0201 QCOMPARE(spyCut.count(), 1); 0202 QCOMPARE(spyCopy.count(), 1); 0203 QCOMPARE(spyPaste.count(), 1); 0204 QCOMPARE(spyRedo.count(), 1); 0205 QCOMPARE(spyUndo.count(), 1); 0206 QCOMPARE(spySelectAll.count(), 1); 0207 QCOMPARE(spyFind.count(), 1); 0208 QCOMPARE(spyReplace.count(), 1); 0209 QCOMPARE(spyZoomReset.count(), 1); 0210 QCOMPARE(spyDebugScript.count(), 1); 0211 QCOMPARE(spyWordWrapScript.count(), 1); 0212 QCOMPARE(spyPrint.count(), 1); 0213 QCOMPARE(spyPrintPreview.count(), 1); 0214 } 0215 0216 QTEST_MAIN(SieveEditorMenuBarTest) 0217 0218 #include "moc_sieveeditormenubartest.cpp"