From fdf4ab9d76c3bcc5a3e69ee04d0cf3ae3d2678fe Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Thu, 26 Apr 2012 17:52:02 +0200 Subject: [PATCH] Improve TestGui::testEditEntry(). Simulate mouse click on the actual edit action widget. Make sure that the edit entry widget is active after triggering the entry edit. --- tests/gui/TestGui.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/gui/TestGui.cpp b/tests/gui/TestGui.cpp index 718142374..d28400672 100644 --- a/tests/gui/TestGui.cpp +++ b/tests/gui/TestGui.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include "config-keepassx-tests.h" #include "tests.h" @@ -38,11 +39,12 @@ void TestGui::initTestCase() { Crypto::init(); m_mainWindow = new MainWindow(); + m_mainWindow->show(); + QTest::qWaitForWindowShown(m_mainWindow); } void TestGui::testOpenDatabase() { - m_mainWindow->show(); QAction* actionDatabaseOpen = m_mainWindow->findChild("actionDatabaseOpen"); fileDialog()->setNextFileName(QString(KEEPASSX_TEST_DATA_DIR).append("/NewDatabase.kdbx")); actionDatabaseOpen->trigger(); @@ -75,11 +77,18 @@ void TestGui::testEditEntry() QRect itemRect = entryView->visualRect(item); QTest::mouseClick(entryView->viewport(), Qt::LeftButton, Qt::NoModifier, itemRect.center()); QTest::qWait(20); - QAction* actionEntryEdit = m_mainWindow->findChild("actionEntryEdit"); - QVERIFY(actionEntryEdit->isEnabled()); - actionEntryEdit->trigger(); + + QAction* entryEditAction = m_mainWindow->findChild("actionEntryEdit"); + QVERIFY(entryEditAction->isEnabled()); + QToolBar* toolBar = m_mainWindow->findChild("toolBar"); + QWidget* entryEditWidget = toolBar->widgetForAction(entryEditAction); + QVERIFY(entryEditWidget->isVisible()); + QVERIFY(entryEditWidget->isEnabled()); + QTest::mouseClick(entryEditWidget, Qt::LeftButton); QTest::qWait(20); + EditEntryWidget* editEntryWidget = dbWidget->findChild("editEntryWidget"); + QVERIFY(dbWidget->currentWidget() == editEntryWidget); QDialogButtonBox* editEntryWidgetButtonBox = editEntryWidget->findChild("buttonBox"); QVERIFY(editEntryWidgetButtonBox); QTest::mouseClick(editEntryWidgetButtonBox->button(QDialogButtonBox::Ok), Qt::LeftButton);