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"