mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-05-06 20:23:08 +00:00
feat(tests/main-view): add a showAboutPopup method
This commit is contained in:
parent
55b07cb119
commit
38a4df6090
5 changed files with 50 additions and 21 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue