diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-12-23 16:04:44 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-04 05:43:14 +0100 |
commit | 8bd497a614be0c469d9729861b4815aeb83d2597 (patch) | |
tree | 14fa6b04094d16265b38482d007118c95f119ef2 /tests | |
parent | be72fb26c2405c84878fd974c52f0950b4ec3478 (diff) |
Fix crash in TextInput.
Ensure the text is laid out before calling componentComplete() on
QImplicitSizeItem, as that can potentially evaluate bindings which
would then access the uninitialized layout.
Change-Id: I5152c1494c54209dae61c13b2f45d343fb76bf9e
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qtquick2/qquicktextinput/data/negativeDimensions.qml | 19 | ||||
-rw-r--r-- | tests/auto/qtquick2/qquicktextinput/tst_qquicktextinput.cpp | 15 |
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/qtquick2/qquicktextinput/data/negativeDimensions.qml b/tests/auto/qtquick2/qquicktextinput/data/negativeDimensions.qml new file mode 100644 index 0000000000..7a58c85b1d --- /dev/null +++ b/tests/auto/qtquick2/qquicktextinput/data/negativeDimensions.qml @@ -0,0 +1,19 @@ +import QtQuick 2.0 + +Item { + TextInput { + objectName: "input" + + focus: true + width: -1 + height: -1 + text: "sushi" + + anchors { + left: parent.left; + leftMargin: 5 + top: parent.top + topMargin: font.pixelSize + } + } +} diff --git a/tests/auto/qtquick2/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/qtquick2/qquicktextinput/tst_qquicktextinput.cpp index 3319936616..0286cea343 100644 --- a/tests/auto/qtquick2/qquicktextinput/tst_qquicktextinput.cpp +++ b/tests/auto/qtquick2/qquicktextinput/tst_qquicktextinput.cpp @@ -176,6 +176,8 @@ private slots: void QTBUG_19956_data(); void QTBUG_19956_regexp(); + void negativeDimensions(); + private: void simulateKey(QQuickView *, int key); @@ -3390,6 +3392,19 @@ void tst_qquicktextinput::QTBUG_19956_regexp() QVERIFY(canvas.rootObject()->property("acceptableInput").toBool()); } + +void tst_qquicktextinput::negativeDimensions() +{ + // Verify this doesn't assert during initialization. + QDeclarativeComponent component(&engine, testFileUrl("negativeDimensions.qml")); + QScopedPointer<QObject> o(component.create()); + QVERIFY(o); + QQuickTextInput *input = o->findChild<QQuickTextInput *>("input"); + QVERIFY(input); + QCOMPARE(input->width(), qreal(-1)); + QCOMPARE(input->height(), qreal(-1)); +} + QTEST_MAIN(tst_qquicktextinput) #include "tst_qquicktextinput.moc" |