diff options
Diffstat (limited to 'tests/auto')
5 files changed, 112 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp b/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp index 27e06c6f67..1bf044ec32 100644 --- a/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp +++ b/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp @@ -149,6 +149,8 @@ private slots: void floatToStringPrecision(); void copy(); + + void signalExpressionWithoutObject(); private: QQmlEngine engine; }; @@ -2106,6 +2108,14 @@ void tst_qqmlproperty::initTestCase() qmlRegisterType<MyContainer>("Test",1,0,"MyContainer"); } +void tst_qqmlproperty::signalExpressionWithoutObject() +{ + QQmlProperty invalid; + QQmlPropertyPrivate::setSignalExpression(invalid, nullptr); + QQmlBoundSignalExpression *expr = QQmlPropertyPrivate::signalExpression(invalid); + QVERIFY(!expr); +} + QTEST_MAIN(tst_qqmlproperty) #include "tst_qqmlproperty.moc" diff --git a/tests/auto/quick/qquickitem2/data/keynavigationtest_repeater.qml b/tests/auto/quick/qquickitem2/data/keynavigationtest_repeater.qml new file mode 100644 index 0000000000..12ce10e139 --- /dev/null +++ b/tests/auto/quick/qquickitem2/data/keynavigationtest_repeater.qml @@ -0,0 +1,37 @@ +import QtQuick 2.0 + +Grid { + property var textModel: ["1", "2", "3", "4", "5"] + columns: 5 + width: 50*textModel.length + + Repeater { + id: repeater + model: textModel.length + Rectangle { + width: 50 + height: 50 + color: focus ? "red" : "lightgrey" + focus: index == 2 + Text { + id: t + text: textModel[index] + } + KeyNavigation.left: repeater.itemAt(index - 1) + KeyNavigation.right: repeater.itemAt(index + 1) + } + } + + function verify() { + for (var i = 0; i < repeater.count; i++) { + var item = repeater.itemAt(i); + var prev = repeater.itemAt(i - 1); + var next = repeater.itemAt(i + 1); + if (item.KeyNavigation.left != prev || item.KeyNavigation.right != next) + return false; + } + + return true; + } +} + diff --git a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp index 399535cfa6..db473d1ea1 100644 --- a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp +++ b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp @@ -89,6 +89,7 @@ private slots: void keyNavigation_implicitDestroy(); void keyNavigation_focusReason(); void keyNavigation_loop(); + void keyNavigation_repeater(); void layoutMirroring(); void layoutMirroringWindow(); void layoutMirroringIllegalParent(); @@ -2273,6 +2274,24 @@ void tst_QQuickItem::keyNavigation_loop() delete window; } +void tst_QQuickItem::keyNavigation_repeater() +{ + // QTBUG-83356 + QQuickView *window = new QQuickView(nullptr); + window->setBaseSize(QSize(240,320)); + + window->setSource(testFileUrl("keynavigationtest_repeater.qml")); + window->show(); + window->requestActivate(); + + QVariant result; + QVERIFY(QMetaObject::invokeMethod(window->rootObject(), "verify", + Q_RETURN_ARG(QVariant, result))); + QVERIFY(result.toBool()); + + delete window; +} + void tst_QQuickItem::smooth() { QQmlComponent component(&engine); diff --git a/tests/auto/quick/qquicktextinput/data/checkCursorDelegateWhenPaddingChanged.qml b/tests/auto/quick/qquicktextinput/data/checkCursorDelegateWhenPaddingChanged.qml new file mode 100644 index 0000000000..e6f07b4687 --- /dev/null +++ b/tests/auto/quick/qquicktextinput/data/checkCursorDelegateWhenPaddingChanged.qml @@ -0,0 +1,16 @@ +import QtQuick 2.12 + +Rectangle { + width: 200 + height: 200 + TextInput { + objectName: "textInput" + leftPadding: 10 + focus: true + cursorDelegate: Rectangle { + objectName: "cursorDelegate" + width: 5 + color: "red" + } + } +} diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp index ed2d535fda..f736d0a873 100644 --- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp +++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp @@ -231,6 +231,7 @@ private slots: void QTBUG_51115_readOnlyResetsSelection(); + void checkCursorDelegateWhenPaddingChanged(); private: void simulateKey(QWindow *, int key); @@ -7003,6 +7004,35 @@ void tst_qquicktextinput::QTBUG_51115_readOnlyResetsSelection() QCOMPARE(obj->selectedText(), QString()); } +void tst_qquicktextinput::checkCursorDelegateWhenPaddingChanged() +{ + QQuickView view; + view.setSource(testFileUrl("checkCursorDelegateWhenPaddingChanged.qml")); + view.show(); + QVERIFY(QTest::qWaitForWindowExposed(&view)); + + QQuickTextInput *textInput = view.rootObject()->findChild<QQuickTextInput *>("textInput"); + QVERIFY(textInput); + + QQuickItem *cursorDelegate = textInput->findChild<QQuickItem *>("cursorDelegate"); + QVERIFY(cursorDelegate); + + QCOMPARE(cursorDelegate->x(), textInput->leftPadding()); + QCOMPARE(cursorDelegate->y(), textInput->topPadding()); + + textInput->setPadding(5); + QCOMPARE(cursorDelegate->x(), textInput->leftPadding()); + QCOMPARE(cursorDelegate->y(), textInput->topPadding()); + + textInput->setTopPadding(10); + QCOMPARE(cursorDelegate->x(), textInput->leftPadding()); + QCOMPARE(cursorDelegate->y(), textInput->topPadding()); + + textInput->setLeftPadding(10); + QCOMPARE(cursorDelegate->x(), textInput->leftPadding()); + QCOMPARE(cursorDelegate->y(), textInput->topPadding()); +} + QTEST_MAIN(tst_qquicktextinput) #include "tst_qquicktextinput.moc" |