diff options
Diffstat (limited to 'tests/auto/qtquick2/qquickimage')
-rw-r--r-- | tests/auto/qtquick2/qquickimage/data/sourceSize.qml | 7 | ||||
-rw-r--r-- | tests/auto/qtquick2/qquickimage/tst_qquickimage.cpp | 46 |
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/auto/qtquick2/qquickimage/data/sourceSize.qml b/tests/auto/qtquick2/qquickimage/data/sourceSize.qml new file mode 100644 index 0000000000..8e25c254d3 --- /dev/null +++ b/tests/auto/qtquick2/qquickimage/data/sourceSize.qml @@ -0,0 +1,7 @@ +import QtQuick 2.0 + +Image { + source: "heart.png" + sourceSize.width: srcWidth + sourceSize.height: srcHeight +} diff --git a/tests/auto/qtquick2/qquickimage/tst_qquickimage.cpp b/tests/auto/qtquick2/qquickimage/tst_qquickimage.cpp index b33caa78c4..7602f1b1d5 100644 --- a/tests/auto/qtquick2/qquickimage/tst_qquickimage.cpp +++ b/tests/auto/qtquick2/qquickimage/tst_qquickimage.cpp @@ -95,6 +95,8 @@ private slots: void sourceSize_QTBUG_16389(); void nullPixmapPaint(); void imageCrash_QTBUG_22125(); + void sourceSize_data(); + void sourceSize(); private: QDeclarativeEngine engine; @@ -498,6 +500,8 @@ void tst_qquickimage::tiling_QTBUG_6716() QVERIFY(img.pixel(x, y) == qRgb(0, 255, 0)); } } + + delete canvas; } void tst_qquickimage::tiling_QTBUG_6716_data() @@ -674,6 +678,8 @@ void tst_qquickimage::nullPixmapPaint() qInstallMsgHandler(previousMsgHandler); QVERIFY(numberOfWarnings == 0); delete image; + + delete canvas; } void tst_qquickimage::imageCrash_QTBUG_22125() @@ -698,6 +704,46 @@ void tst_qquickimage::imageCrash_QTBUG_22125() QCoreApplication::processEvents(); } +void tst_qquickimage::sourceSize_data() +{ + QTest::addColumn<int>("sourceWidth"); + QTest::addColumn<int>("sourceHeight"); + QTest::addColumn<qreal>("implicitWidth"); + QTest::addColumn<qreal>("implicitHeight"); + + QTest::newRow("unscaled") << 0 << 0 << 300.0 << 300.0; + QTest::newRow("scale width") << 100 << 0 << 100.0 << 100.0; + QTest::newRow("scale height") << 0 << 150 << 150.0 << 150.0; + QTest::newRow("larger sourceSize") << 400 << 400 << 300.0 << 300.0; +} + +void tst_qquickimage::sourceSize() +{ + QFETCH(int, sourceWidth); + QFETCH(int, sourceHeight); + QFETCH(qreal, implicitWidth); + QFETCH(qreal, implicitHeight); + + QQuickView *canvas = new QQuickView(0); + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("srcWidth", sourceWidth); + ctxt->setContextProperty("srcHeight", sourceHeight); + + canvas->setSource(testFileUrl("sourceSize.qml")); + canvas->show(); + qApp->processEvents(); + + QQuickImage *image = qobject_cast<QQuickImage*>(canvas->rootObject()); + QVERIFY(image); + + QCOMPARE(image->sourceSize().width(), sourceWidth); + QCOMPARE(image->sourceSize().height(), sourceHeight); + QCOMPARE(image->implicitWidth(), implicitWidth); + QCOMPARE(image->implicitHeight(), implicitHeight); + + delete canvas; +} + QTEST_MAIN(tst_qquickimage) #include "tst_qquickimage.moc" |