diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/qtquick2/qquickloader/data/sizebound.qml | 30 | ||||
-rw-r--r-- | tests/auto/qtquick2/qquickloader/tst_qquickloader.cpp | 22 |
2 files changed, 52 insertions, 0 deletions
diff --git a/tests/auto/qtquick2/qquickloader/data/sizebound.qml b/tests/auto/qtquick2/qquickloader/data/sizebound.qml new file mode 100644 index 0000000000..09cf32426a --- /dev/null +++ b/tests/auto/qtquick2/qquickloader/data/sizebound.qml @@ -0,0 +1,30 @@ +import QtQuick 2.0 + +Item { + width: 200; height: 200 + + function switchComponent() { + load.sourceComponent = comp2 + } + + Component { + id: comp + Rectangle { + width: 50; height: 60; color: "red" + } + } + + Component { + id: comp2 + Rectangle { + width: 80; height: 90; color: "green" + } + } + + Loader { + id: load + objectName: "loader" + sourceComponent: comp + height: item ? item.height : 0 + } +} diff --git a/tests/auto/qtquick2/qquickloader/tst_qquickloader.cpp b/tests/auto/qtquick2/qquickloader/tst_qquickloader.cpp index 4001f70ed9..33148db7b1 100644 --- a/tests/auto/qtquick2/qquickloader/tst_qquickloader.cpp +++ b/tests/auto/qtquick2/qquickloader/tst_qquickloader.cpp @@ -104,6 +104,7 @@ private slots: void asynchronous_clear(); void parented(); + void sizeBound(); private: QDeclarativeEngine engine; @@ -959,6 +960,27 @@ void tst_QQuickLoader::parented() delete root; } +void tst_QQuickLoader::sizeBound() +{ + QDeclarativeComponent component(&engine, testFileUrl("sizebound.qml")); + QQuickItem *root = qobject_cast<QQuickItem*>(component.create()); + QVERIFY(root); + QQuickLoader *loader = root->findChild<QQuickLoader*>("loader"); + QVERIFY(loader != 0); + + QVERIFY(loader->item()); + + QCOMPARE(loader->width(), 50.0); + QCOMPARE(loader->height(), 60.0); + + QMetaObject::invokeMethod(root, "switchComponent"); + + QCOMPARE(loader->width(), 80.0); + QCOMPARE(loader->height(), 90.0); + + delete root; +} + QTEST_MAIN(tst_QQuickLoader) |