diff options
Diffstat (limited to 'tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp')
-rw-r--r-- | tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp | 68 |
1 files changed, 65 insertions, 3 deletions
diff --git a/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp b/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp index 19a0bf3b..aeeddb10 100644 --- a/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp +++ b/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp @@ -412,7 +412,7 @@ void tst_QQuickApplicationWindow::attachedProperties() QCOMPARE(childControl->window(), childAppWindow); QCOMPARE(childControl->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow); QCOMPARE(childControl->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem()); - QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl()); + QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindowControl); QCOMPARE(childControl->property("attached_header").value<QQuickItem *>(), childAppWindow->header()); QCOMPARE(childControl->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer()); QCOMPARE(childControl->property("attached_overlay").value<QQuickItem *>(), childAppWindow->overlay()); @@ -421,7 +421,7 @@ void tst_QQuickApplicationWindow::attachedProperties() QCOMPARE(childItem->window(), childAppWindow); QCOMPARE(childItem->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow); QCOMPARE(childItem->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem()); - QCOMPARE(childItem->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl()); + QCOMPARE(childItem->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindowControl); QCOMPARE(childItem->property("attached_header").value<QQuickItem *>(), childAppWindow->header()); QCOMPARE(childItem->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer()); QCOMPARE(childItem->property("attached_overlay").value<QQuickItem *>(), childAppWindow->overlay()); @@ -443,6 +443,55 @@ void tst_QQuickApplicationWindow::attachedProperties() QVERIFY(!childItem->property("attached_header").value<QQuickItem *>()); QVERIFY(!childItem->property("attached_footer").value<QQuickItem *>()); QVERIFY(!childItem->property("attached_overlay").value<QQuickItem *>()); + childAppWindow->close(); + qApp->processEvents(); + + childWindow->show(); + childWindow->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(childWindow)); + + QVERIFY(!childWindowControl->hasActiveFocus()); + childWindowControl->forceActiveFocus(); + QTRY_VERIFY(childWindowControl->hasActiveFocus()); + QCOMPARE(childWindow->activeFocusItem(), childWindowControl); + QCOMPARE(childWindowControl->property("attached_activeFocusControl").value<QQuickItem *>(), childWindowControl); + + childControl->setParentItem(childWindow->contentItem()); + QCOMPARE(childControl->window(), childWindow); + QVERIFY(!childControl->property("attached_window").value<QQuickWindow *>()); + QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), childWindowControl); + QVERIFY(!childControl->property("attached_contentItem").value<QQuickItem *>()); + QVERIFY(!childControl->property("attached_header").value<QQuickItem *>()); + QVERIFY(!childControl->property("attached_footer").value<QQuickItem *>()); + QCOMPARE(childControl->property("attached_overlay").value<QQuickItem *>(), QQuickOverlay::overlay(childWindow)); + + childItem->setParentItem(childWindow->contentItem()); + QCOMPARE(childItem->window(), childWindow); + QVERIFY(!childControl->property("attached_window").value<QQuickWindow *>()); + QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), childWindowControl); + QVERIFY(!childControl->property("attached_contentItem").value<QQuickItem *>()); + QVERIFY(!childControl->property("attached_header").value<QQuickItem *>()); + QVERIFY(!childControl->property("attached_footer").value<QQuickItem *>()); + QCOMPARE(childControl->property("attached_overlay").value<QQuickItem *>(), QQuickOverlay::overlay(childWindow)); + + childControl->setParentItem(nullptr); + QVERIFY(!childControl->window()); + QVERIFY(!childControl->property("attached_window").value<QQuickWindow *>()); + QVERIFY(!childControl->property("attached_contentItem").value<QQuickItem *>()); + QVERIFY(!childControl->property("attached_activeFocusControl").value<QQuickItem *>()); + QVERIFY(!childControl->property("attached_header").value<QQuickItem *>()); + QVERIFY(!childControl->property("attached_footer").value<QQuickItem *>()); + QVERIFY(!childControl->property("attached_overlay").value<QQuickItem *>()); + + childItem->setParentItem(nullptr); + QVERIFY(!childItem->window()); + QVERIFY(!childItem->property("attached_window").value<QQuickWindow *>()); + QVERIFY(!childItem->property("attached_contentItem").value<QQuickItem *>()); + QVERIFY(!childItem->property("attached_activeFocusControl").value<QQuickItem *>()); + QVERIFY(!childItem->property("attached_header").value<QQuickItem *>()); + QVERIFY(!childItem->property("attached_footer").value<QQuickItem *>()); + QVERIFY(!childItem->property("attached_overlay").value<QQuickItem *>()); + childWindow->close(); // ### A temporary workaround to unblock the CI until the crash caused // by https://codereview.qt-project.org/#/c/108517/ has been fixed... @@ -506,7 +555,7 @@ void tst_QQuickApplicationWindow::font() QCOMPARE(item6->font(), font); } -class TestTheme : public QQuickProxyTheme +class TestTheme : public QQuickProxyTheme { public: TestTheme(QPlatformTheme *theme) : QQuickProxyTheme(theme), m_font("Courier") @@ -778,11 +827,18 @@ void tst_QQuickApplicationWindow::layout() QQuickItem *content = window->contentItem(); QVERIFY(content); + QQuickItem *menuBar = window->menuBar(); + QVERIFY(menuBar); QQuickItem *header = window->header(); QVERIFY(header); QQuickItem *footer = window->footer(); QVERIFY(footer); + QCOMPARE(menuBar->x(), 0.0); + QCOMPARE(menuBar->y(), -menuBar->height() - header->height()); + QCOMPARE(header->width(), qreal(window->width())); + QVERIFY(menuBar->height() > 0); + QCOMPARE(header->x(), 0.0); QCOMPARE(header->y(), -header->height()); QCOMPARE(header->width(), qreal(window->width())); @@ -794,6 +850,12 @@ void tst_QQuickApplicationWindow::layout() QVERIFY(footer->height() > 0.0); QCOMPARE(content->x(), 0.0); + QCOMPARE(content->y(), menuBar->height() + header->height()); + QCOMPARE(content->width(), qreal(window->width())); + QCOMPARE(content->height(), window->height() - menuBar->height() - header->height() - footer->height()); + + menuBar->setVisible(false); + QCOMPARE(content->x(), 0.0); QCOMPARE(content->y(), header->height()); QCOMPARE(content->width(), qreal(window->width())); QCOMPARE(content->height(), window->height() - header->height() - footer->height()); |