aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2020-11-16 17:31:19 +0100
committerMitch Curtis <mitch.curtis@qt.io>2021-04-22 15:56:44 +0200
commita0c95852fed72fb8b315b7cdea6f7b858d9099ea (patch)
treea66522ee88a520535417de134f777f25ca4bba83 /tests/auto
parent2a65d8127dd53266342584a862ed7836d118c95e (diff)
Add findViewDelegateItem function to visualtestutils.h
This helper function finds an item view delegate instance at a given index, ensuring that the view is polished and positioned at the correct index if necessary. Change-Id: Ib133914df723251835be3812c1d0654c07a99f14 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/accessibility/CMakeLists.txt1
-rw-r--r--tests/auto/cursor/CMakeLists.txt1
-rw-r--r--tests/auto/customization/CMakeLists.txt1
-rw-r--r--tests/auto/focus/CMakeLists.txt1
-rw-r--r--tests/auto/font/CMakeLists.txt1
-rw-r--r--tests/auto/palette/CMakeLists.txt1
-rw-r--r--tests/auto/qquickapplicationwindow/CMakeLists.txt1
-rw-r--r--tests/auto/qquickcontrol/CMakeLists.txt1
-rw-r--r--tests/auto/qquickdrawer/CMakeLists.txt1
-rw-r--r--tests/auto/qquickheaderview/CMakeLists.txt1
-rw-r--r--tests/auto/qquickiconimage/CMakeLists.txt1
-rw-r--r--tests/auto/qquickiconlabel/CMakeLists.txt1
-rw-r--r--tests/auto/qquickmaterialstyleconf/CMakeLists.txt1
-rw-r--r--tests/auto/qquickmenu/CMakeLists.txt1
-rw-r--r--tests/auto/qquickmenubar/CMakeLists.txt1
-rw-r--r--tests/auto/qquickninepatchimage/CMakeLists.txt1
-rw-r--r--tests/auto/qquickpopup/CMakeLists.txt1
-rw-r--r--tests/auto/qquickstyle/CMakeLists.txt1
-rw-r--r--tests/auto/qquickuniversalstyleconf/CMakeLists.txt1
-rw-r--r--tests/auto/sanity/CMakeLists.txt1
-rw-r--r--tests/auto/shared/util.pri2
-rw-r--r--tests/auto/shared/visualtestutil.cpp29
-rw-r--r--tests/auto/shared/visualtestutil.h11
-rw-r--r--tests/auto/styleimports/CMakeLists.txt1
-rw-r--r--tests/auto/styleimportscompiletimematerial/CMakeLists.txt1
-rw-r--r--tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt1
-rw-r--r--tests/auto/translation/CMakeLists.txt1
27 files changed, 65 insertions, 1 deletions
diff --git a/tests/auto/accessibility/CMakeLists.txt b/tests/auto/accessibility/CMakeLists.txt
index fe2a35d6..3286653f 100644
--- a/tests/auto/accessibility/CMakeLists.txt
+++ b/tests/auto/accessibility/CMakeLists.txt
@@ -31,6 +31,7 @@ qt_internal_add_test(tst_accessibility
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/cursor/CMakeLists.txt b/tests/auto/cursor/CMakeLists.txt
index f7a22928..a04e9b44 100644
--- a/tests/auto/cursor/CMakeLists.txt
+++ b/tests/auto/cursor/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_cursor
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/customization/CMakeLists.txt b/tests/auto/customization/CMakeLists.txt
index 70a7b88c..341e6415 100644
--- a/tests/auto/customization/CMakeLists.txt
+++ b/tests/auto/customization/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_customization
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/focus/CMakeLists.txt b/tests/auto/focus/CMakeLists.txt
index 404dcfa4..1d15e0fb 100644
--- a/tests/auto/focus/CMakeLists.txt
+++ b/tests/auto/focus/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_focus
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/font/CMakeLists.txt b/tests/auto/font/CMakeLists.txt
index 5cc92d88..a9904abc 100644
--- a/tests/auto/font/CMakeLists.txt
+++ b/tests/auto/font/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_font
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/palette/CMakeLists.txt b/tests/auto/palette/CMakeLists.txt
index 6702ac8a..d281db94 100644
--- a/tests/auto/palette/CMakeLists.txt
+++ b/tests/auto/palette/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_palette
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickapplicationwindow/CMakeLists.txt b/tests/auto/qquickapplicationwindow/CMakeLists.txt
index 20268703..4d4c91ef 100644
--- a/tests/auto/qquickapplicationwindow/CMakeLists.txt
+++ b/tests/auto/qquickapplicationwindow/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_qquickapplicationwindow
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickcontrol/CMakeLists.txt b/tests/auto/qquickcontrol/CMakeLists.txt
index 5d6eefd2..2a580031 100644
--- a/tests/auto/qquickcontrol/CMakeLists.txt
+++ b/tests/auto/qquickcontrol/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_qquickcontrol
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickdrawer/CMakeLists.txt b/tests/auto/qquickdrawer/CMakeLists.txt
index 1c2342f0..9e1057d4 100644
--- a/tests/auto/qquickdrawer/CMakeLists.txt
+++ b/tests/auto/qquickdrawer/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_qquickdrawer
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickheaderview/CMakeLists.txt b/tests/auto/qquickheaderview/CMakeLists.txt
index dfcaa452..62b0211e 100644
--- a/tests/auto/qquickheaderview/CMakeLists.txt
+++ b/tests/auto/qquickheaderview/CMakeLists.txt
@@ -28,6 +28,7 @@ qt_internal_add_test(tst_qquickheaderview
Qt::QuickPrivate
Qt::QuickTemplates2
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickiconimage/CMakeLists.txt b/tests/auto/qquickiconimage/CMakeLists.txt
index fdad6ef9..d5d9b5a1 100644
--- a/tests/auto/qquickiconimage/CMakeLists.txt
+++ b/tests/auto/qquickiconimage/CMakeLists.txt
@@ -36,6 +36,7 @@ qt_internal_add_test(tst_qquickiconimage
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickiconlabel/CMakeLists.txt b/tests/auto/qquickiconlabel/CMakeLists.txt
index ffa084f7..ef7ba099 100644
--- a/tests/auto/qquickiconlabel/CMakeLists.txt
+++ b/tests/auto/qquickiconlabel/CMakeLists.txt
@@ -32,6 +32,7 @@ qt_internal_add_test(tst_qquickiconlabel
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickmaterialstyleconf/CMakeLists.txt b/tests/auto/qquickmaterialstyleconf/CMakeLists.txt
index 1244961a..670d1bb6 100644
--- a/tests/auto/qquickmaterialstyleconf/CMakeLists.txt
+++ b/tests/auto/qquickmaterialstyleconf/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_qquickmaterialstyleconf
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickmenu/CMakeLists.txt b/tests/auto/qquickmenu/CMakeLists.txt
index 702c5747..4a409a61 100644
--- a/tests/auto/qquickmenu/CMakeLists.txt
+++ b/tests/auto/qquickmenu/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_qquickmenu
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickmenubar/CMakeLists.txt b/tests/auto/qquickmenubar/CMakeLists.txt
index c6043f87..c960f855 100644
--- a/tests/auto/qquickmenubar/CMakeLists.txt
+++ b/tests/auto/qquickmenubar/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_qquickmenubar
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickninepatchimage/CMakeLists.txt b/tests/auto/qquickninepatchimage/CMakeLists.txt
index 83cf364b..7e98f012 100644
--- a/tests/auto/qquickninepatchimage/CMakeLists.txt
+++ b/tests/auto/qquickninepatchimage/CMakeLists.txt
@@ -37,6 +37,7 @@ qt_internal_add_test(tst_qquickninepatchimage
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickpopup/CMakeLists.txt b/tests/auto/qquickpopup/CMakeLists.txt
index 9b736f80..20adc5db 100644
--- a/tests/auto/qquickpopup/CMakeLists.txt
+++ b/tests/auto/qquickpopup/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_qquickpopup
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickstyle/CMakeLists.txt b/tests/auto/qquickstyle/CMakeLists.txt
index 153cf19e..258db4cc 100644
--- a/tests/auto/qquickstyle/CMakeLists.txt
+++ b/tests/auto/qquickstyle/CMakeLists.txt
@@ -31,6 +31,7 @@ qt_internal_add_test(tst_qquickstyle
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/qquickuniversalstyleconf/CMakeLists.txt b/tests/auto/qquickuniversalstyleconf/CMakeLists.txt
index ab754043..eaa7b473 100644
--- a/tests/auto/qquickuniversalstyleconf/CMakeLists.txt
+++ b/tests/auto/qquickuniversalstyleconf/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_qquickuniversalstyleconf
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/sanity/CMakeLists.txt b/tests/auto/sanity/CMakeLists.txt
index 63a8eeb7..85c3bc06 100644
--- a/tests/auto/sanity/CMakeLists.txt
+++ b/tests/auto/sanity/CMakeLists.txt
@@ -22,6 +22,7 @@ qt_internal_add_test(tst_sanity
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
)
diff --git a/tests/auto/shared/util.pri b/tests/auto/shared/util.pri
index c2eb9f0a..3e270f06 100644
--- a/tests/auto/shared/util.pri
+++ b/tests/auto/shared/util.pri
@@ -1,4 +1,4 @@
-QT += testlib-private core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2 quickcontrols2-private
+QT += testlib-private core-private gui-private qml-private quick-private qmltest quicktemplates2-private quickcontrols2 quickcontrols2-private
HEADERS += $$PWD/visualtestutil.h \
$$PWD/util.h \
diff --git a/tests/auto/shared/visualtestutil.cpp b/tests/auto/shared/visualtestutil.cpp
index 48201832..ff0d9e8e 100644
--- a/tests/auto/shared/visualtestutil.cpp
+++ b/tests/auto/shared/visualtestutil.cpp
@@ -96,6 +96,35 @@ void QQuickVisualTestUtil::centerOnScreen(QQuickWindow *window)
window->setFramePosition(screenGeometry.center() - offset);
}
+/*!
+ \internal
+
+ Finds the delegate at \c index belonging to \c itemView, using the given \c flags.
+
+ If the view needs to be polished, the function will wait for it to be done before continuing,
+ and returns \c nullptr if the polish didn't happen.
+*/
+QQuickItem *QQuickVisualTestUtil::findViewDelegateItem(QQuickItemView *itemView, int index, FindViewDelegateItemFlags flags)
+{
+ if (QQuickTest::qIsPolishScheduled(itemView)) {
+ if (!QQuickTest::qWaitForItemPolished(itemView)) {
+ qWarning() << "failed to polish" << itemView;
+ return nullptr;
+ }
+ }
+
+ // Do this after the polish, just in case the count changes after a polish...
+ if (index <= -1 || index >= itemView->count()) {
+ qWarning() << "index" << index << "is out of bounds for" << itemView;
+ return nullptr;
+ }
+
+ if (flags.testFlag(FindViewDelegateItemFlag::PositionViewAtIndex))
+ itemView->positionViewAtIndex(index, QQuickItemView::Center);
+
+ return itemView->itemAtIndex(index);
+}
+
void QQuickVisualTestUtil::forEachControl(QQmlEngine *engine, const QString &sourcePath, const QString &targetPath, const QStringList &skipList, QQuickVisualTestUtil::ForEachCallback callback)
{
// We cannot use QQmlComponent to load QML files directly from the source tree.
diff --git a/tests/auto/shared/visualtestutil.h b/tests/auto/shared/visualtestutil.h
index 83c47b2d..1e530c70 100644
--- a/tests/auto/shared/visualtestutil.h
+++ b/tests/auto/shared/visualtestutil.h
@@ -43,6 +43,8 @@
#include <QtQuick/QQuickItem>
#include <QtQml/QQmlExpression>
#include <QtQuick/private/qquickitem_p.h>
+#include <QtQuick/private/qquickitemview_p.h>
+#include <QtQuickTest/quicktest.h>
#include <QtQuickControls2/qquickstyle.h>
#include <QtQuickTemplates2/private/qquickapplicationwindow_p.h>
#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
@@ -116,6 +118,15 @@ namespace QQuickVisualTestUtil
return items;
}
+ enum class FindViewDelegateItemFlag {
+ None = 0x0,
+ PositionViewAtIndex = 0x01
+ };
+ Q_DECLARE_FLAGS(FindViewDelegateItemFlags, FindViewDelegateItemFlag)
+
+ QQuickItem* findViewDelegateItem(QQuickItemView *itemView, int index,
+ FindViewDelegateItemFlags flags = FindViewDelegateItemFlag::PositionViewAtIndex);
+
class QQuickApplicationHelper
{
public:
diff --git a/tests/auto/styleimports/CMakeLists.txt b/tests/auto/styleimports/CMakeLists.txt
index 94e7bce8..c89380b4 100644
--- a/tests/auto/styleimports/CMakeLists.txt
+++ b/tests/auto/styleimports/CMakeLists.txt
@@ -28,6 +28,7 @@ qt_internal_add_test(tst_styleimports
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/styleimportscompiletimematerial/CMakeLists.txt b/tests/auto/styleimportscompiletimematerial/CMakeLists.txt
index 9201503b..207f4091 100644
--- a/tests/auto/styleimportscompiletimematerial/CMakeLists.txt
+++ b/tests/auto/styleimportscompiletimematerial/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_styleimportscompiletimematerial
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt b/tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt
index 57fbc1d3..cdbbf9e8 100644
--- a/tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt
+++ b/tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_styleimportscompiletimeqmlonly
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)
diff --git a/tests/auto/translation/CMakeLists.txt b/tests/auto/translation/CMakeLists.txt
index ec8e81ce..783a5072 100644
--- a/tests/auto/translation/CMakeLists.txt
+++ b/tests/auto/translation/CMakeLists.txt
@@ -27,6 +27,7 @@ qt_internal_add_test(tst_translation
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
+ Qt::QuickTest
Qt::TestPrivate
TESTDATA ${test_data}
)