aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quickcontrols2
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quickcontrols2')
-rw-r--r--tests/auto/quickcontrols2/qquickiconlabel/data/a.pngbin0 -> 98 bytes
-rw-r--r--tests/auto/quickcontrols2/qquickiconlabel/data/iconSourceContext.qml7
-rw-r--r--tests/auto/quickcontrols2/qquickiconlabel/tst_qquickiconlabel.cpp31
3 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/quickcontrols2/qquickiconlabel/data/a.png b/tests/auto/quickcontrols2/qquickiconlabel/data/a.png
new file mode 100644
index 0000000000..fe839a40e4
--- /dev/null
+++ b/tests/auto/quickcontrols2/qquickiconlabel/data/a.png
Binary files differ
diff --git a/tests/auto/quickcontrols2/qquickiconlabel/data/iconSourceContext.qml b/tests/auto/quickcontrols2/qquickiconlabel/data/iconSourceContext.qml
new file mode 100644
index 0000000000..0d562d1500
--- /dev/null
+++ b/tests/auto/quickcontrols2/qquickiconlabel/data/iconSourceContext.qml
@@ -0,0 +1,7 @@
+import QtQuick.Controls
+import QtQuick
+
+Item {
+ Image { source: "a.png" }
+ IconLabel { icon.source: "a.png" }
+}
diff --git a/tests/auto/quickcontrols2/qquickiconlabel/tst_qquickiconlabel.cpp b/tests/auto/quickcontrols2/qquickiconlabel/tst_qquickiconlabel.cpp
index 6119a9e571..7385e1e3ef 100644
--- a/tests/auto/quickcontrols2/qquickiconlabel/tst_qquickiconlabel.cpp
+++ b/tests/auto/quickcontrols2/qquickiconlabel/tst_qquickiconlabel.cpp
@@ -34,11 +34,13 @@
#include <QtQuick/qquickview.h>
#include <QtQuick/qquickitemgrabresult.h>
#include <QtQuick/private/qquicktext_p.h>
+#include <QtQuick/private/qquickimage_p_p.h>
#include <QtQuickTestUtils/private/qmlutils_p.h>
#include <QtQuickTestUtils/private/visualtestutils_p.h>
#include <QtQuickTemplates2/private/qquickicon_p.h>
#include <QtQuickControls2Impl/private/qquickiconimage_p.h>
#include <QtQuickControls2Impl/private/qquickiconlabel_p.h>
+#include <QtQuickControls2Impl/private/qquickiconlabel_p_p.h>
using namespace QQuickVisualTestUtils;
@@ -55,6 +57,7 @@ private slots:
void spacingWithOneDelegate();
void emptyIconSource();
void colorChanges();
+ void iconSourceContext();
};
tst_qquickiconlabel::tst_qquickiconlabel()
@@ -329,6 +332,34 @@ void tst_qquickiconlabel::colorChanges()
QVERIFY(grabResult->image() != enabledImageGrab);
}
+void tst_qquickiconlabel::iconSourceContext()
+{
+ QQmlEngine engine;
+ QQmlComponent component(&engine, testFileUrl("iconSourceContext.qml"));
+ QVERIFY2(component.isReady(), qPrintable(component.errorString()));
+
+ QScopedPointer<QObject> o(component.create());
+ QQuickItem *root = qobject_cast<QQuickItem *>(o.data());
+ QVERIFY(root);
+
+ for (QQuickItem *child : root->childItems()) {
+ QQuickImage *image = qobject_cast<QQuickImage *>(child);
+ if (!image) {
+ if (QQuickIconLabel *label = qobject_cast<QQuickIconLabel *>(child)) {
+ QQuickIconLabelPrivate *labelPrivate = static_cast<QQuickIconLabelPrivate *>(
+ QQuickItemPrivate::get(label));
+ image = labelPrivate->image;
+ }
+ }
+
+ QVERIFY(image);
+ QQuickImagePrivate *imagePrivate
+ = static_cast<QQuickImagePrivate *>(QQuickItemPrivate::get(image));
+ QCOMPARE(imagePrivate->pix.url(), dataDirectoryUrl().resolved(QStringLiteral("a.png")));
+ }
+
+}
+
QTEST_MAIN(tst_qquickiconlabel)
#include "tst_qquickiconlabel.moc"