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

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

parent 55b07cb1
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#undef QT_NO_DEBUG #undef QT_NO_DEBUG
#endif // ifdef QT_NO_DEBUG #endif // ifdef QT_NO_DEBUG
#include <QTest>
#include <QtGlobal> #include <QtGlobal>
#include "../app/App.hpp" #include "../app/App.hpp"
...@@ -32,6 +33,19 @@ ...@@ -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) { static void printItemTree (const QQuickItem *item, QString &output, int spaces) {
output.append(QString().leftJustified(spaces, ' ')); output.append(QString().leftJustified(spaces, ' '));
output.append(item->metaObject()->className()); output.append(item->metaObject()->className());
...@@ -66,7 +80,7 @@ QQuickItem *TestUtils::getMainLoaderFromMainWindow () { ...@@ -66,7 +80,7 @@ QQuickItem *TestUtils::getMainLoaderFromMainWindow () {
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
QQuickItem *TestUtils::getVirtualWindow (const QQuickWindow *window) { QQuickItem *TestUtils::getVirtualWindowContent (const QQuickWindow *window) {
Q_CHECK_PTR(window); Q_CHECK_PTR(window);
QList<QQuickItem *> items = window->contentItem()->childItems(); QList<QQuickItem *> items = window->contentItem()->childItems();
...@@ -82,16 +96,9 @@ QQuickItem *TestUtils::getVirtualWindow (const QQuickWindow *window) { ...@@ -82,16 +96,9 @@ QQuickItem *TestUtils::getVirtualWindow (const QQuickWindow *window) {
QQuickItem *virtualWindow = items.at(1); QQuickItem *virtualWindow = items.at(1);
Q_ASSERT(!strncmp(virtualWindow->metaObject()->className(), name, sizeof name - 1)); Q_ASSERT(!strncmp(virtualWindow->metaObject()->className(), name, sizeof name - 1));
return virtualWindow; items = virtualWindow->childItems();
}
// -----------------------------------------------------------------------------
QQuickItem *TestUtils::getVirtualWindowContainer (const QQuickItem *virtualWindow) {
Q_CHECK_PTR(virtualWindow);
QList<QQuickItem *> items = virtualWindow->childItems();
Q_ASSERT(items.size() == 2); 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 @@ ...@@ -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 { namespace TestUtils {
void executeKeySequence (QQuickWindow *window, QKeySequence sequence);
void printItemTree (const QQuickItem *item); void printItemTree (const QQuickItem *item);
QQuickItem *getMainLoaderFromMainWindow (); QQuickItem *getMainLoaderFromMainWindow ();
QQuickItem *getVirtualWindow (const QQuickWindow *window);
QQuickItem *getVirtualWindowContainer (const QQuickItem *virtualWindow); QQuickItem *getVirtualWindowContent (const QQuickWindow *window);
} }
...@@ -29,6 +29,22 @@ ...@@ -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 () { void MainViewTest::showManageAccountsPopup () {
QQuickWindow *mainWindow = App::getInstance()->getMainWindow(); QQuickWindow *mainWindow = App::getInstance()->getMainWindow();
...@@ -36,17 +52,11 @@ void MainViewTest::showManageAccountsPopup () { ...@@ -36,17 +52,11 @@ void MainViewTest::showManageAccountsPopup () {
QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(100, 35)); QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(100, 35));
QTest::qWait(1000); QTest::qWait(1000);
const char name[] = "DialogPlus_QMLTYPE_"; CHECK_VIRTUAL_WINDOW_CONTENT_INFO(mainWindow, "DialogPlus_QMLTYPE_", "__manageAccounts");
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"));
// Close popup. // Close popup.
QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(476, 392)); QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(476, 392));
QTest::qWait(1000); QTest::qWait(1000);
QVERIFY(TestUtils::getVirtualWindowContainer(virtualWindow)->childItems().empty()); QVERIFY(!TestUtils::getVirtualWindowContent(mainWindow));
} }
...@@ -32,5 +32,6 @@ public: ...@@ -32,5 +32,6 @@ public:
~MainViewTest () = default; ~MainViewTest () = default;
private slots: private slots:
void showAboutPopup ();
void showManageAccountsPopup (); void showManageAccountsPopup ();
}; };
...@@ -19,6 +19,7 @@ DialogPlus { ...@@ -19,6 +19,7 @@ DialogPlus {
] ]
centeredButtons: true centeredButtons: true
objectName: '__about'
height: AboutStyle.height height: AboutStyle.height
width: AboutStyle.width 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