diff options
Diffstat (limited to 'tests/auto/quickcontrols2')
-rw-r--r-- | tests/auto/quickcontrols2/qquickiconlabel/data/a.png | bin | 0 -> 98 bytes | |||
-rw-r--r-- | tests/auto/quickcontrols2/qquickiconlabel/data/iconSourceContext.qml | 7 | ||||
-rw-r--r-- | tests/auto/quickcontrols2/qquickiconlabel/tst_qquickiconlabel.cpp | 31 |
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 Binary files differnew file mode 100644 index 0000000000..fe839a40e4 --- /dev/null +++ b/tests/auto/quickcontrols2/qquickiconlabel/data/a.png 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" |