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.
This commit is contained in:
Felix Geyer 2012-04-26 17:52:02 +02:00
parent 74ac6c27d7
commit fdf4ab9d76

View file

@ -23,6 +23,7 @@
#include <QtGui/QDialogButtonBox> #include <QtGui/QDialogButtonBox>
#include <QtGui/QLineEdit> #include <QtGui/QLineEdit>
#include <QtGui/QPushButton> #include <QtGui/QPushButton>
#include <QtGui/QToolBar>
#include "config-keepassx-tests.h" #include "config-keepassx-tests.h"
#include "tests.h" #include "tests.h"
@ -38,11 +39,12 @@ void TestGui::initTestCase()
{ {
Crypto::init(); Crypto::init();
m_mainWindow = new MainWindow(); m_mainWindow = new MainWindow();
m_mainWindow->show();
QTest::qWaitForWindowShown(m_mainWindow);
} }
void TestGui::testOpenDatabase() void TestGui::testOpenDatabase()
{ {
m_mainWindow->show();
QAction* actionDatabaseOpen = m_mainWindow->findChild<QAction*>("actionDatabaseOpen"); QAction* actionDatabaseOpen = m_mainWindow->findChild<QAction*>("actionDatabaseOpen");
fileDialog()->setNextFileName(QString(KEEPASSX_TEST_DATA_DIR).append("/NewDatabase.kdbx")); fileDialog()->setNextFileName(QString(KEEPASSX_TEST_DATA_DIR).append("/NewDatabase.kdbx"));
actionDatabaseOpen->trigger(); actionDatabaseOpen->trigger();
@ -75,11 +77,18 @@ void TestGui::testEditEntry()
QRect itemRect = entryView->visualRect(item); QRect itemRect = entryView->visualRect(item);
QTest::mouseClick(entryView->viewport(), Qt::LeftButton, Qt::NoModifier, itemRect.center()); QTest::mouseClick(entryView->viewport(), Qt::LeftButton, Qt::NoModifier, itemRect.center());
QTest::qWait(20); QTest::qWait(20);
QAction* actionEntryEdit = m_mainWindow->findChild<QAction*>("actionEntryEdit");
QVERIFY(actionEntryEdit->isEnabled()); QAction* entryEditAction = m_mainWindow->findChild<QAction*>("actionEntryEdit");
actionEntryEdit->trigger(); QVERIFY(entryEditAction->isEnabled());
QToolBar* toolBar = m_mainWindow->findChild<QToolBar*>("toolBar");
QWidget* entryEditWidget = toolBar->widgetForAction(entryEditAction);
QVERIFY(entryEditWidget->isVisible());
QVERIFY(entryEditWidget->isEnabled());
QTest::mouseClick(entryEditWidget, Qt::LeftButton);
QTest::qWait(20); QTest::qWait(20);
EditEntryWidget* editEntryWidget = dbWidget->findChild<EditEntryWidget*>("editEntryWidget"); EditEntryWidget* editEntryWidget = dbWidget->findChild<EditEntryWidget*>("editEntryWidget");
QVERIFY(dbWidget->currentWidget() == editEntryWidget);
QDialogButtonBox* editEntryWidgetButtonBox = editEntryWidget->findChild<QDialogButtonBox*>("buttonBox"); QDialogButtonBox* editEntryWidgetButtonBox = editEntryWidget->findChild<QDialogButtonBox*>("buttonBox");
QVERIFY(editEntryWidgetButtonBox); QVERIFY(editEntryWidgetButtonBox);
QTest::mouseClick(editEntryWidgetButtonBox->button(QDialogButtonBox::Ok), Qt::LeftButton); QTest::mouseClick(editEntryWidgetButtonBox->button(QDialogButtonBox::Ok), Qt::LeftButton);