File indexing completed on 2024-04-28 03:58:56

0001 /*
0002     SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
0003     SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005 
0006 #include "klineediteventhandler.h"
0007 
0008 #include <QDialog>
0009 #include <QDialogButtonBox>
0010 #include <QLineEdit>
0011 #include <QObject>
0012 #include <QSignalSpy>
0013 #include <QTest>
0014 
0015 class KLineEditEventHandlerTest : public QObject
0016 {
0017     Q_OBJECT
0018 private Q_SLOTS:
0019     void testReturnCatching()
0020     {
0021         QDialog dialog;
0022         auto lineEdit = new QLineEdit(&dialog);
0023         auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok, &dialog);
0024         connect(buttonBox, &QDialogButtonBox::accepted, &dialog, &QDialog::accept);
0025 
0026         QSignalSpy returnSpy(lineEdit, &QLineEdit::returnPressed);
0027         QSignalSpy dialogSpy(&dialog, &QDialog::accepted);
0028 
0029         dialog.show();
0030         QTest::keyPress(lineEdit, Qt::Key_Enter);
0031         QCOMPARE(returnSpy.size(), 1);
0032         QCOMPARE(dialogSpy.size(), 1);
0033 
0034         KLineEditEventHandler::catchReturnKey(lineEdit);
0035         dialog.show();
0036         QTest::keyPress(lineEdit, Qt::Key_Enter);
0037         QCOMPARE(returnSpy.size(), 2);
0038         QCOMPARE(dialogSpy.size(), 1);
0039     }
0040 };
0041 
0042 QTEST_MAIN(KLineEditEventHandlerTest)
0043 
0044 #include "klineediteventhandlertest.moc"