Commit 38a4df60 authored by Ronan Abhamon's avatar Ronan Abhamon

feat(tests/main-view): add a `showAboutPopup` method

parent 55b07cb1
......@@ -24,6 +24,7 @@
#undef QT_NO_DEBUG
#endif // ifdef QT_NO_DEBUG
#include <QTest>
#include <QtGlobal>
#include "../app/App.hpp"
......@@ -32,6 +33,19 @@
// =============================================================================
void TestUtils::executeKeySequence (QQuickWindow *window, QKeySequence sequence) {
for (int i = 0; i < sequence.count(); ++i) {
int key = sequence[i];
QTest::keyClick(
window,
Qt::Key(key & ~Qt::KeyboardModifierMask),
Qt::KeyboardModifiers(key & Qt::KeyboardModifierMask)
);
}
}
// -----------------------------------------------------------------------------
static void printItemTree (const QQuickItem *item, QString &output, int spaces) {
output.append(QString().leftJustified(spaces, ' '));
output.append(item->metaObject()->className());
......@@ -66,7 +80,7 @@ QQuickItem *TestUtils::getMainLoaderFromMainWindow () {
// -----------------------------------------------------------------------------
QQuickItem *TestUtils::getVirtualWindow (const QQuickWindow *window) {
QQuickItem *TestUtils::getVirtualWindowContent (const QQuickWindow *window) {
Q_CHECK_PTR(window);
QList<QQuickItem *> items = window->contentItem()->childItems();
......@@ -82,16 +96,9 @@ QQuickItem *TestUtils::getVirtualWindow (const QQuickWindow *window) {
QQuickItem *virtualWindow = items.at(1);
Q_ASSERT(!strncmp(virtualWindow->metaObject()->className(), name, sizeof name - 1));
return virtualWindow;
}
// -----------------------------------------------------------------------------
QQuickItem *TestUtils::getVirtualWindowContainer (const QQuickItem *virtualWindow) {
Q_CHECK_PTR(virtualWindow);
QList<QQuickItem *> items = virtualWindow->childItems();
items = virtualWindow->childItems();
Q_ASSERT(items.size() == 2);
return items.at(1);
items = items.at(1)->childItems();
return items.empty() ? nullptr : items.at(0);
}
......@@ -25,10 +25,20 @@
// =============================================================================
#define CHECK_VIRTUAL_WINDOW_CONTENT_INFO(WINDOW, TYPE, NAME) \
do { \
QQuickItem *virtualWindowContent = TestUtils::getVirtualWindowContent(WINDOW); \
QVERIFY(virtualWindowContent); \
QVERIFY(!strncmp(virtualWindowContent->metaObject()->className(), TYPE, sizeof TYPE - 1)); \
QCOMPARE(virtualWindowContent->objectName(), QStringLiteral(NAME)); \
} while (0)
namespace TestUtils {
void executeKeySequence (QQuickWindow *window, QKeySequence sequence);
void printItemTree (const QQuickItem *item);
QQuickItem *getMainLoaderFromMainWindow ();
QQuickItem *getVirtualWindow (const QQuickWindow *window);
QQuickItem *getVirtualWindowContainer (const QQuickItem *virtualWindow);
QQuickItem *getVirtualWindowContent (const QQuickWindow *window);
}
......@@ -29,6 +29,22 @@
// =============================================================================
void MainViewTest::showAboutPopup () {
QQuickWindow *mainWindow = App::getInstance()->getMainWindow();
// Open popup.
TestUtils::executeKeySequence(mainWindow, QKeySequence::HelpContents);
QTest::qWait(1000);
CHECK_VIRTUAL_WINDOW_CONTENT_INFO(mainWindow, "DialogPlus_QMLTYPE_", "__about");
// Close popup.
QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(476, 392));
QTest::qWait(1000);
QVERIFY(!TestUtils::getVirtualWindowContent(mainWindow));
}
void MainViewTest::showManageAccountsPopup () {
QQuickWindow *mainWindow = App::getInstance()->getMainWindow();
......@@ -36,17 +52,11 @@ void MainViewTest::showManageAccountsPopup () {
QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(100, 35));
QTest::qWait(1000);
const char name[] = "DialogPlus_QMLTYPE_";
QQuickItem *virtualWindow = TestUtils::getVirtualWindow(mainWindow);
QQuickItem *virtualWindowContent = TestUtils::getVirtualWindowContainer(virtualWindow)->childItems().at(0);
QVERIFY(virtualWindowContent);
QVERIFY(!strncmp(virtualWindowContent->metaObject()->className(), name, sizeof name - 1));
QCOMPARE(virtualWindowContent->objectName(), QStringLiteral("__manageAccounts"));
CHECK_VIRTUAL_WINDOW_CONTENT_INFO(mainWindow, "DialogPlus_QMLTYPE_", "__manageAccounts");
// Close popup.
QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(476, 392));
QTest::qWait(1000);
QVERIFY(TestUtils::getVirtualWindowContainer(virtualWindow)->childItems().empty());
QVERIFY(!TestUtils::getVirtualWindowContent(mainWindow));
}
......@@ -32,5 +32,6 @@ public:
~MainViewTest () = default;
private slots:
void showAboutPopup ();
void showManageAccountsPopup ();
};
......@@ -19,6 +19,7 @@ DialogPlus {
]
centeredButtons: true
objectName: '__about'
height: AboutStyle.height
width: AboutStyle.width
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment