diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/gui/image/qpixmap/tst_qpixmap.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp index 576519e2ca..e204da059d 100644 --- a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp @@ -114,6 +114,7 @@ private slots: void convertFromImageNoDetach(); void convertFromImageDetach(); + void convertFromImageCacheKey(); #if defined(Q_OS_WIN) void toWinHBITMAP_data(); @@ -779,6 +780,28 @@ void tst_QPixmap::convertFromImageDetach() QVERIFY(copy.isDetached()); } +void tst_QPixmap::convertFromImageCacheKey() +{ + QPixmap randomPixmap(10, 10); + if (randomPixmap.handle()->classId() != QPlatformPixmap::RasterClass) + QSKIP("Test only valid for raster pixmaps"); + + //first get the screen format + QImage::Format screenFormat = randomPixmap.toImage().format(); + QVERIFY(screenFormat != QImage::Format_Invalid); + + QImage orig(100,100, screenFormat); + orig.fill(0); + + QPixmap pix = QPixmap::fromImage(orig); + QImage copy = pix.toImage(); + + QVERIFY(copy.format() == screenFormat); + + QCOMPARE(orig.cacheKey(), pix.cacheKey()); + QCOMPARE(copy.cacheKey(), pix.cacheKey()); +} + #if defined(Q_OS_WIN) QT_BEGIN_NAMESPACE |