diff --git a/tests/gui/TestGui.cpp b/tests/gui/TestGui.cpp index 711bbd56..69f8ca96 100644 --- a/tests/gui/TestGui.cpp +++ b/tests/gui/TestGui.cpp @@ -32,28 +32,37 @@ void TestGui::initTestCase() { Crypto::init(); + m_mainWindow = new MainWindow(); } void TestGui::testOpenDatabase() { - MainWindow mainWindow; - mainWindow.show(); - QAction* actionDatabaseOpen = mainWindow.findChild("actionDatabaseOpen"); + m_mainWindow->show(); + QAction* actionDatabaseOpen = m_mainWindow->findChild("actionDatabaseOpen"); fileDialog()->setNextFileName(QString(KEEPASSX_TEST_DATA_DIR).append("/NewDatabase.kdbx")); actionDatabaseOpen->trigger(); + QWidget* keyDialog = m_mainWindow->findChild("KeyOpenDialog"); + QVERIFY(keyDialog); + QTest::qWaitForWindowShown(keyDialog); - QTest::qWait(500); - - QLineEdit* editPassword = QApplication::activeWindow()->findChild("editPassword"); + QLineEdit* editPassword = keyDialog->findChild("editPassword"); QVERIFY(editPassword); QTest::keyClicks(editPassword, "a"); - QDialogButtonBox* buttonBox = QApplication::activeWindow()->findChild("buttonBox"); + QDialogButtonBox* buttonBox = keyDialog->findChild("buttonBox"); QTest::mouseClick(buttonBox->button(QDialogButtonBox::Ok), Qt::LeftButton); +} - QTabWidget* tabWidget = mainWindow.findChild("tabWidget"); +void TestGui::testTabs() +{ + QTabWidget* tabWidget = m_mainWindow->findChild("tabWidget"); QCOMPARE(tabWidget->count(), 1); QCOMPARE(tabWidget->tabText(tabWidget->currentIndex()), QString("NewDatabase.kdbx")); } +void TestGui::cleanupTestCase() +{ + delete m_mainWindow; +} + QTEST_MAIN(TestGui); diff --git a/tests/gui/TestGui.h b/tests/gui/TestGui.h index 7ba8fa37..91b30505 100644 --- a/tests/gui/TestGui.h +++ b/tests/gui/TestGui.h @@ -20,6 +20,8 @@ #include +class MainWindow; + class TestGui : public QObject { Q_OBJECT @@ -27,6 +29,11 @@ class TestGui : public QObject private Q_SLOTS: void initTestCase(); void testOpenDatabase(); + void testTabs(); + void cleanupTestCase(); + +private: + MainWindow* m_mainWindow; }; #endif // KEEPASSX_TESTGUI_H