diff options
Diffstat (limited to 'tests/auto/quick')
-rw-r--r-- | tests/auto/quick/qquickview/data/findChild.qml | 9 | ||||
-rw-r--r-- | tests/auto/quick/qquickview/tst_qquickview.cpp | 40 | ||||
-rw-r--r-- | tests/auto/quick/qquickwindow/tst_qquickwindow.cpp | 25 |
3 files changed, 68 insertions, 6 deletions
diff --git a/tests/auto/quick/qquickview/data/findChild.qml b/tests/auto/quick/qquickview/data/findChild.qml new file mode 100644 index 0000000000..8cbc46abe2 --- /dev/null +++ b/tests/auto/quick/qquickview/data/findChild.qml @@ -0,0 +1,9 @@ +import QtQuick 2.0 +Item { + width: 200 + height: 200 + objectName: "rootObject" + Item { + objectName: "rootObjectChild" + } +} diff --git a/tests/auto/quick/qquickview/tst_qquickview.cpp b/tests/auto/quick/qquickview/tst_qquickview.cpp index fa9192edb4..04d21457e6 100644 --- a/tests/auto/quick/qquickview/tst_qquickview.cpp +++ b/tests/auto/quick/qquickview/tst_qquickview.cpp @@ -70,6 +70,7 @@ private slots: void resizemodeitem(); void errors(); void engine(); + void findChild(); }; @@ -265,6 +266,45 @@ void tst_QQuickView::engine() delete view4; } +void tst_QQuickView::findChild() +{ + QQuickView view; + view.setSource(testFileUrl("findChild.qml")); + + // QQuickView + // |_ QQuickWindow::contentItem + // | |_ QQuickView::rootObject: QML Item("rootObject") (findChild.qml) + // | | |_ QML Item("rootObjectChild") (findChild.qml) + // | |_ QObject("contentItemChild") + // |_ QObject("viewChild") + + QObject *viewChild = new QObject(&view); + viewChild->setObjectName("viewChild"); + + QObject *contentItemChild = new QObject(view.contentItem()); + contentItemChild->setObjectName("contentItemChild"); + + QObject *rootObject = view.rootObject(); + QVERIFY(rootObject); + + QObject *rootObjectChild = rootObject->findChild<QObject *>("rootObjectChild"); + QVERIFY(rootObjectChild); + + QCOMPARE(view.findChild<QObject *>("viewChild"), viewChild); + QCOMPARE(view.findChild<QObject *>("contentItemChild"), contentItemChild); + QCOMPARE(view.findChild<QObject *>("rootObject"), rootObject); + QCOMPARE(view.findChild<QObject *>("rootObjectChild"), rootObjectChild); + + QVERIFY(!view.contentItem()->findChild<QObject *>("viewChild")); // sibling + QCOMPARE(view.contentItem()->findChild<QObject *>("contentItemChild"), contentItemChild); + QCOMPARE(view.contentItem()->findChild<QObject *>("rootObject"), rootObject); + QCOMPARE(view.contentItem()->findChild<QObject *>("rootObjectChild"), rootObjectChild); + + QVERIFY(!view.rootObject()->findChild<QObject *>("viewChild")); // ancestor + QVERIFY(!view.rootObject()->findChild<QObject *>("contentItemChild")); // cousin + QVERIFY(!view.rootObject()->findChild<QObject *>("rootObject")); // self +} + QTEST_MAIN(tst_QQuickView) #include "tst_qquickview.moc" diff --git a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp index f2eb6a6685..91d577fb6f 100644 --- a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp +++ b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp @@ -375,7 +375,7 @@ private slots: void testDragEventPropertyPropagation(); - void createTextureFromImage(); + void findChild(); private: QTouchDevice *touchDevice; @@ -2827,13 +2827,26 @@ void tst_qquickwindow::testDragEventPropertyPropagation() } } -void tst_qquickwindow::createTextureFromImage() +void tst_qquickwindow::findChild() { - // An invalid image should return a null pointer. QQuickWindow window; - window.show(); - QTest::qWaitForWindowExposed(&window); - QVERIFY(!window.createTextureFromImage(QImage())); + + // QQuickWindow + // |_ QQuickWindow::contentItem + // | |_ QObject("contentItemChild") + // |_ QObject("viewChild") + + QObject *windowChild = new QObject(&window); + windowChild->setObjectName("windowChild"); + + QObject *contentItemChild = new QObject(window.contentItem()); + contentItemChild->setObjectName("contentItemChild"); + + QCOMPARE(window.findChild<QObject *>("windowChild"), windowChild); + QCOMPARE(window.findChild<QObject *>("contentItemChild"), contentItemChild); + + QVERIFY(!window.contentItem()->findChild<QObject *>("viewChild")); // sibling + QCOMPARE(window.contentItem()->findChild<QObject *>("contentItemChild"), contentItemChild); } QTEST_MAIN(tst_qquickwindow) |