aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-03-03 01:00:05 +0100
committerUlf Hermann <ulf.hermann@qt.io>2020-03-03 12:23:20 +0100
commit04e3918f0fd0c19ed830d406e1c549a037089cc4 (patch)
tree8e07ee9c550124b277983542e2ad0f7a791b5276 /tests
parentb760d972459fd3b0c41e4c85076fa933ba5c0d1d (diff)
parent254a56252874b63430701351dcd8c9bef8507353 (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts: src/qmlmodels/qqmltableinstancemodel.cpp src/qmlmodels/qqmltableinstancemodel_p.h Change-Id: I89339b1cb41ba27fe30c79530859a1c2bfbecc69
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp3
-rw-r--r--tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop2.qml12
-rw-r--r--tests/auto/quick/qquickitem2/tst_qquickitem.cpp15
3 files changed, 27 insertions, 3 deletions
diff --git a/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp b/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp
index b019ff4535..f636e527c3 100644
--- a/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp
+++ b/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp
@@ -325,7 +325,8 @@ void tst_qqmlapplicationengine::failureToLoadTriggersWarningSignal()
auto url = testFileUrl("invalid.qml");
qRegisterMetaType<QList<QQmlError>>();
QTest::ignoreMessage(QtMsgType::QtWarningMsg, "QQmlApplicationEngine failed to load component");
- QTest::ignoreMessage(QtMsgType::QtWarningMsg, QRegularExpression(url.toString() + QLatin1Char('*')));
+ QTest::ignoreMessage(QtMsgType::QtWarningMsg,
+ QRegularExpression(QRegularExpression::escape(url.toString()) + QLatin1Char('*')));
QQmlApplicationEngine test;
QSignalSpy warningObserver(&test, &QQmlApplicationEngine::warnings);
test.load(url);
diff --git a/tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop2.qml b/tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop2.qml
new file mode 100644
index 0000000000..042f408753
--- /dev/null
+++ b/tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop2.qml
@@ -0,0 +1,12 @@
+import QtQuick 2.14
+
+Item {
+ width: 400
+ height: 200
+ Item {
+ objectName: "hiddenChild"
+ focus: true
+ activeFocusOnTab: true
+ visible: false
+ }
+}
diff --git a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp
index a1b4a70217..45ecbfde11 100644
--- a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp
+++ b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp
@@ -64,6 +64,7 @@ private slots:
void activeFocusOnTab8();
void activeFocusOnTab9();
void activeFocusOnTab10();
+ void activeFocusOnTab_infiniteLoop_data();
void activeFocusOnTab_infiniteLoop();
void nextItemInFocusChain();
@@ -1027,12 +1028,20 @@ void tst_QQuickItem::activeFocusOnTab10()
delete window;
}
+void tst_QQuickItem::activeFocusOnTab_infiniteLoop_data()
+{
+ QTest::addColumn<QUrl>("source");
+ QTest::newRow("infiniteLoop") << testFileUrl("activeFocusOnTab_infiniteLoop.qml"); // QTBUG-68271
+ QTest::newRow("infiniteLoop2") << testFileUrl("activeFocusOnTab_infiniteLoop2.qml");// QTBUG-81510
+}
+
void tst_QQuickItem::activeFocusOnTab_infiniteLoop()
{
- // see QTBUG-68271
+ QFETCH(QUrl, source);
+
// create a window where the currently focused item is not visible
QScopedPointer<QQuickView>window(new QQuickView());
- window->setSource(testFileUrl("activeFocusOnTab_infiniteLoop.qml"));
+ window->setSource(source);
window->show();
auto *hiddenChild = findItem<QQuickItem>(window->rootObject(), "hiddenChild");
QVERIFY(hiddenChild);
@@ -1041,6 +1050,8 @@ void tst_QQuickItem::activeFocusOnTab_infiniteLoop()
auto *item = hiddenChild->nextItemInFocusChain();
// focus is moved to the root object since there is no other candidate
QCOMPARE(item, window->rootObject());
+ item = hiddenChild->nextItemInFocusChain(false);
+ QCOMPARE(item, window->rootObject());
}
void tst_QQuickItem::nextItemInFocusChain()