Correct testing status bar text

This commit is contained in:
Jonathan White 2023-02-19 07:00:10 -08:00
parent 0a2e716525
commit 8dec687798
2 changed files with 16 additions and 24 deletions

View File

@ -91,6 +91,7 @@ void TestGui::initTestCase()
m_mainWindow.reset(new MainWindow()); m_mainWindow.reset(new MainWindow());
m_tabWidget = m_mainWindow->findChild<DatabaseTabWidget*>("tabWidget"); m_tabWidget = m_mainWindow->findChild<DatabaseTabWidget*>("tabWidget");
m_statusBarLabel = m_mainWindow->findChild<QLabel*>("statusBarLabel");
m_mainWindow->show(); m_mainWindow->show();
m_mainWindow->resize(1024, 768); m_mainWindow->resize(1024, 768);
} }
@ -288,7 +289,7 @@ void TestGui::testCreateDatabase()
QCOMPARE(m_tabWidget->count(), 2); QCOMPARE(m_tabWidget->count(), 2);
statusBarLabelShouldBe("0 Entry(s)"); checkStatusBarText("0 Ent");
// there is a new empty db // there is a new empty db
m_db = m_tabWidget->currentDatabaseWidget()->database(); m_db = m_tabWidget->currentDatabaseWidget()->database();
@ -310,14 +311,14 @@ void TestGui::testCreateDatabase()
compositeKey->addKey(fileKey); compositeKey->addKey(fileKey);
QCOMPARE(m_db->key()->rawKey(), compositeKey->rawKey()); QCOMPARE(m_db->key()->rawKey(), compositeKey->rawKey());
statusBarLabelShouldBe("0 Entry(s)"); checkStatusBarText("0 Ent");
// Test the switching to other DB tab // Test the switching to other DB tab
m_tabWidget->setCurrentIndex(0); m_tabWidget->setCurrentIndex(0);
statusBarLabelShouldBe("1 Entry(s)"); checkStatusBarText("1 Ent");
m_tabWidget->setCurrentIndex(1); m_tabWidget->setCurrentIndex(1);
statusBarLabelShouldBe("0 Entry(s)"); checkStatusBarText("0 Ent");
// close the new database // close the new database
MessageBox::setNextAnswer(MessageBox::No); MessageBox::setNextAnswer(MessageBox::No);
@ -606,7 +607,7 @@ void TestGui::testAddEntry()
auto* entryView = m_dbWidget->findChild<EntryView*>("entryView"); auto* entryView = m_dbWidget->findChild<EntryView*>("entryView");
// Given the status bar label with initial number of entries. // Given the status bar label with initial number of entries.
statusBarLabelShouldBe("1 Entry(s)"); checkStatusBarText("1 Ent");
// Find the new entry action // Find the new entry action
auto* entryNewAction = m_mainWindow->findChild<QAction*>("actionEntryNew"); auto* entryNewAction = m_mainWindow->findChild<QAction*>("actionEntryNew");
@ -643,7 +644,7 @@ void TestGui::testAddEntry()
m_db->updateCommonUsernames(); m_db->updateCommonUsernames();
// Then the status bar label should be updated with incremented number of entries. // Then the status bar label should be updated with incremented number of entries.
statusBarLabelShouldBe("2 Entry(s)"); checkStatusBarText("2 Ent");
// Add entry "something 2" // Add entry "something 2"
QTest::mouseClick(entryNewWidget, Qt::LeftButton); QTest::mouseClick(entryNewWidget, Qt::LeftButton);
@ -664,9 +665,6 @@ void TestGui::testAddEntry()
QCOMPARE(entry->username(), QString("AutocompletionUsername")); QCOMPARE(entry->username(), QString("AutocompletionUsername"));
QCOMPARE(entry->historyItems().size(), 0); QCOMPARE(entry->historyItems().size(), 0);
// Then the status bar label should be updated with incremented number of entries.
statusBarLabelShouldBe("3 Entry(s)");
// Add entry "something 5" but click cancel button (does NOT add entry) // Add entry "something 5" but click cancel button (does NOT add entry)
QTest::mouseClick(entryNewWidget, Qt::LeftButton); QTest::mouseClick(entryNewWidget, Qt::LeftButton);
QTest::keyClicks(titleEdit, "something 5"); QTest::keyClicks(titleEdit, "something 5");
@ -677,7 +675,6 @@ void TestGui::testAddEntry()
// Confirm no changed entry count // Confirm no changed entry count
QTRY_COMPARE(entryView->model()->rowCount(), 3); QTRY_COMPARE(entryView->model()->rowCount(), 3);
statusBarLabelShouldBe("3 Entry(s)");
} }
void TestGui::testPasswordEntryEntropy_data() void TestGui::testPasswordEntryEntropy_data()
@ -1110,7 +1107,7 @@ void TestGui::testDeleteEntry()
{ {
// Add canned entries for consistent testing // Add canned entries for consistent testing
addCannedEntries(); addCannedEntries();
statusBarLabelShouldBe("4 Entry(s)"); checkStatusBarText("4 Ent");
auto* groupView = m_dbWidget->findChild<GroupView*>("groupView"); auto* groupView = m_dbWidget->findChild<GroupView*>("groupView");
auto* entryView = m_dbWidget->findChild<EntryView*>("entryView"); auto* entryView = m_dbWidget->findChild<EntryView*>("entryView");
@ -1140,7 +1137,7 @@ void TestGui::testDeleteEntry()
QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 1); QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 1);
} }
statusBarLabelShouldBe("3 Entry(s)"); checkStatusBarText("3 Ent");
// Select multiple entries and move them to the recycling bin // Select multiple entries and move them to the recycling bin
clickIndex(entryView->model()->index(1, 1), entryView, Qt::LeftButton); clickIndex(entryView->model()->index(1, 1), entryView, Qt::LeftButton);
@ -1162,7 +1159,6 @@ void TestGui::testDeleteEntry()
QCOMPARE(entryView->model()->rowCount(), 1); QCOMPARE(entryView->model()->rowCount(), 1);
QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 3); QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 3);
} }
statusBarLabelShouldBe("1 Entry(s)");
// Go to the recycling bin // Go to the recycling bin
QCOMPARE(groupView->currentGroup(), m_db->rootGroup()); QCOMPARE(groupView->currentGroup(), m_db->rootGroup());
@ -1171,7 +1167,6 @@ void TestGui::testDeleteEntry()
groupView, groupView,
Qt::LeftButton); Qt::LeftButton);
QCOMPARE(groupView->currentGroup()->name(), m_db->metadata()->recycleBin()->name()); QCOMPARE(groupView->currentGroup()->name(), m_db->metadata()->recycleBin()->name());
statusBarLabelShouldBe("3 Entry(s)");
// Delete one entry from the bin // Delete one entry from the bin
clickIndex(entryView->model()->index(0, 1), entryView, Qt::LeftButton); clickIndex(entryView->model()->index(0, 1), entryView, Qt::LeftButton);
@ -1179,7 +1174,6 @@ void TestGui::testDeleteEntry()
QTest::mouseClick(entryDeleteWidget, Qt::LeftButton); QTest::mouseClick(entryDeleteWidget, Qt::LeftButton);
QCOMPARE(entryView->model()->rowCount(), 3); QCOMPARE(entryView->model()->rowCount(), 3);
QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 3); QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 3);
statusBarLabelShouldBe("3 Entry(s)");
MessageBox::setNextAnswer(MessageBox::Delete); MessageBox::setNextAnswer(MessageBox::Delete);
QTest::mouseClick(entryDeleteWidget, Qt::LeftButton); QTest::mouseClick(entryDeleteWidget, Qt::LeftButton);
@ -1193,7 +1187,6 @@ void TestGui::testDeleteEntry()
QTest::mouseClick(entryDeleteWidget, Qt::LeftButton); QTest::mouseClick(entryDeleteWidget, Qt::LeftButton);
QCOMPARE(entryView->model()->rowCount(), 0); QCOMPARE(entryView->model()->rowCount(), 0);
QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 0); QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 0);
statusBarLabelShouldBe("0 Entry(s)");
// Ensure the entry preview widget shows the recycling group since all entries are deleted // Ensure the entry preview widget shows the recycling group since all entries are deleted
auto* previewWidget = m_dbWidget->findChild<EntryPreviewWidget*>("previewWidget"); auto* previewWidget = m_dbWidget->findChild<EntryPreviewWidget*>("previewWidget");
@ -1914,14 +1907,12 @@ void TestGui::checkSaveDatabase()
QFAIL("Could not save database."); QFAIL("Could not save database.");
} }
void TestGui::statusBarLabelShouldBe(const char* expectedText) void TestGui::checkStatusBarText(const QString& textFragment)
{ {
// Wait a little to have updated status bar text. QApplication::processEvents();
// It fails with 150ms on i7 2.5Ghz, let's have double more time: 300ms. QVERIFY(m_statusBarLabel->isVisible());
Tools::wait(300); QTRY_VERIFY2(m_statusBarLabel->text().startsWith(textFragment),
auto* statusBarLabel = m_mainWindow->findChild<QLabel*>("statusBarLabel"); qPrintable(QString("'%1' doesn't start with '%2'").arg(m_statusBarLabel->text(), textFragment)));
QVERIFY2(statusBarLabel->isVisible(), "StatusBarLabel is to be visible");
QCOMPARE(statusBarLabel->text(), QString(expectedText));
} }
void TestGui::triggerAction(const QString& name) void TestGui::triggerAction(const QString& name)

View File

@ -84,9 +84,10 @@ private:
Qt::MouseButton button, Qt::MouseButton button,
Qt::KeyboardModifiers stateKey = 0); Qt::KeyboardModifiers stateKey = 0);
void checkSaveDatabase(); void checkSaveDatabase();
void statusBarLabelShouldBe(const char* expectedText); void checkStatusBarText(const QString& textFragment);
QScopedPointer<MainWindow> m_mainWindow; QScopedPointer<MainWindow> m_mainWindow;
QPointer<QLabel> m_statusBarLabel;
QPointer<DatabaseTabWidget> m_tabWidget; QPointer<DatabaseTabWidget> m_tabWidget;
QPointer<DatabaseWidget> m_dbWidget; QPointer<DatabaseWidget> m_dbWidget;
QSharedPointer<Database> m_db; QSharedPointer<Database> m_db;