diff options
Diffstat (limited to 'tests/auto/gui/image')
-rw-r--r-- | tests/auto/gui/image/qicoimageformat/icons/valid/yellow.cur | bin | 0 -> 4286 bytes | |||
-rw-r--r-- | tests/auto/gui/image/qicoimageformat/tst_qicoimageformat.cpp | 19 | ||||
-rw-r--r-- | tests/auto/gui/image/qimage/tst_qimage.cpp | 163 | ||||
-rw-r--r-- | tests/auto/gui/image/qpicture/tst_qpicture.cpp | 107 | ||||
-rw-r--r-- | tests/auto/gui/image/qpixmap/tst_qpixmap.cpp | 100 |
5 files changed, 283 insertions, 106 deletions
diff --git a/tests/auto/gui/image/qicoimageformat/icons/valid/yellow.cur b/tests/auto/gui/image/qicoimageformat/icons/valid/yellow.cur Binary files differnew file mode 100644 index 0000000000..0a649aa7f7 --- /dev/null +++ b/tests/auto/gui/image/qicoimageformat/icons/valid/yellow.cur diff --git a/tests/auto/gui/image/qicoimageformat/tst_qicoimageformat.cpp b/tests/auto/gui/image/qicoimageformat/tst_qicoimageformat.cpp index cd9d4b448e..71adbabb84 100644 --- a/tests/auto/gui/image/qicoimageformat/tst_qicoimageformat.cpp +++ b/tests/auto/gui/image/qicoimageformat/tst_qicoimageformat.cpp @@ -111,9 +111,17 @@ void tst_QIcoImageFormat::cleanupTestCase() void tst_QIcoImageFormat::format() { - QImageReader reader(m_IconPath + "/valid/35FLOPPY.ICO", "ico"); - QByteArray fmt = reader.format(); - QCOMPARE(const_cast<const char*>(fmt.data()), "ico" ); + { + QImageReader reader(m_IconPath + "/valid/35FLOPPY.ICO", "ico"); + QByteArray fmt = reader.format(); + QCOMPARE(const_cast<const char*>(fmt.data()), "ico" ); + } + + { + QImageReader reader(m_IconPath + "/valid/yellow.cur", "ico"); + QByteArray fmt = reader.format(); + QCOMPARE(const_cast<const char*>(fmt.data()), "ico" ); + } } void tst_QIcoImageFormat::canRead_data() @@ -133,6 +141,7 @@ void tst_QIcoImageFormat::canRead_data() QTest::newRow("103x16px, 24BPP") << "valid/trolltechlogo_tiny.ico" << 1; QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 1; QTest::newRow("PNG compression") << "valid/Qt.ico" << 1; + QTest::newRow("CUR file") << "valid/yellow.cur" << 1; } void tst_QIcoImageFormat::canRead() @@ -203,7 +212,7 @@ void tst_QIcoImageFormat::imageCount_data() QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << 0; QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9; QTest::newRow("PNG compression") << "valid/Qt.ico" << 4; - + QTest::newRow("CUR file") << "valid/yellow.cur" << 1; } void tst_QIcoImageFormat::imageCount() @@ -231,6 +240,7 @@ void tst_QIcoImageFormat::jumpToNextImage_data() QTest::newRow("16px16c, 32px32c, 32px256c 2") << "valid/WORLDH.ico" << 3; QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9; QTest::newRow("PNG compression") << "valid/Qt.ico" << 4; + QTest::newRow("CUR file") << "valid/yellow.cur" << 1; } void tst_QIcoImageFormat::jumpToNextImage() @@ -281,6 +291,7 @@ void tst_QIcoImageFormat::nextImageDelay_data() QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << -1; QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9; QTest::newRow("PNG compression") << "valid/Qt.ico" << 4; + QTest::newRow("CUR file") << "valid/yellow.cur" << 1; } void tst_QIcoImageFormat::nextImageDelay() diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp index 6c496ba6d4..f922deb815 100644 --- a/tests/auto/gui/image/qimage/tst_qimage.cpp +++ b/tests/auto/gui/image/qimage/tst_qimage.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the test suite of the Qt Toolkit. @@ -62,6 +62,7 @@ public: tst_QImage(); private slots: + void initTestCase(); void swap(); void create(); void createInvalidXPM(); @@ -173,12 +174,27 @@ private slots: void scaled_QTBUG35972(); + void convertToPixelFormat(); + void convertToImageFormat_data(); + void convertToImageFormat(); + + void invertPixelsRGB_data(); + void invertPixelsRGB(); + void cleanupFunctions(); + +private: + const QString m_prefix; }; tst_QImage::tst_QImage() + : m_prefix(QFINDTESTDATA("images/")) +{ +} +void tst_QImage::initTestCase() { + QVERIFY(!m_prefix.isEmpty()); } void tst_QImage::swap() @@ -287,21 +303,17 @@ void tst_QImage::formatHandlersInput_data() QTest::addColumn<QString>("testFormat"); QTest::addColumn<QString>("testFile"); - const QString prefix = QFINDTESTDATA("images/"); - if (prefix.isEmpty()) - QFAIL("can not find images directory!"); - // add a new line here when a file is added - QTest::newRow("ICO") << "ICO" << prefix + "image.ico"; - QTest::newRow("PNG") << "PNG" << prefix + "image.png"; - QTest::newRow("GIF") << "GIF" << prefix + "image.gif"; - QTest::newRow("BMP") << "BMP" << prefix + "image.bmp"; - QTest::newRow("JPEG") << "JPEG" << prefix + "image.jpg"; - QTest::newRow("PBM") << "PBM" << prefix + "image.pbm"; - QTest::newRow("PGM") << "PGM" << prefix + "image.pgm"; - QTest::newRow("PPM") << "PPM" << prefix + "image.ppm"; - QTest::newRow("XBM") << "XBM" << prefix + "image.xbm"; - QTest::newRow("XPM") << "XPM" << prefix + "image.xpm"; + QTest::newRow("ICO") << "ICO" << m_prefix + "image.ico"; + QTest::newRow("PNG") << "PNG" << m_prefix + "image.png"; + QTest::newRow("GIF") << "GIF" << m_prefix + "image.gif"; + QTest::newRow("BMP") << "BMP" << m_prefix + "image.bmp"; + QTest::newRow("JPEG") << "JPEG" << m_prefix + "image.jpg"; + QTest::newRow("PBM") << "PBM" << m_prefix + "image.pbm"; + QTest::newRow("PGM") << "PGM" << m_prefix + "image.pgm"; + QTest::newRow("PPM") << "PPM" << m_prefix + "image.ppm"; + QTest::newRow("XBM") << "XBM" << m_prefix + "image.xbm"; + QTest::newRow("XPM") << "XPM" << m_prefix + "image.xpm"; } void tst_QImage::formatHandlersInput() @@ -762,6 +774,13 @@ void tst_QImage::convertToFormat_data() << int(QImage::Format_ARGB32_Premultiplied) << 0x7f7f7f7fu; QTest::newRow("semiblack rgba8888 -> argb pm") << int(QImage::Format_RGBA8888) << 0x7f000000u << int(QImage::Format_ARGB32_Premultiplied) << 0x7f000000u; + + QTest::newRow("red rgb30 -> argb32") << int(QImage::Format_RGB30) << 0xffff0000 + << int(QImage::Format_ARGB32) << 0xffff0000; + QTest::newRow("green rgb30 -> argb32") << int(QImage::Format_RGB30) << 0xff00ff00 + << int(QImage::Format_ARGB32) << 0xff00ff00; + QTest::newRow("blue rgb30 -> argb32") << int(QImage::Format_RGB30) << 0xff0000ff + << int(QImage::Format_ARGB32) << 0xff0000ff; } @@ -1074,10 +1093,7 @@ void tst_QImage::copy() void tst_QImage::load() { - const QString prefix = QFINDTESTDATA("images/"); - if (prefix.isEmpty()) - QFAIL("can not find images directory!"); - const QString filePath = prefix + QLatin1String("image.jpg"); + const QString filePath = m_prefix + QLatin1String("image.jpg"); QImage dest(filePath); QVERIFY(!dest.isNull()); @@ -1089,10 +1105,7 @@ void tst_QImage::load() void tst_QImage::loadFromData() { - const QString prefix = QFINDTESTDATA("images/"); - if (prefix.isEmpty()) - QFAIL("can not find images directory!"); - const QString filePath = prefix + QLatin1String("image.jpg"); + const QString filePath = m_prefix + QLatin1String("image.jpg"); QImage original(filePath); QVERIFY(!original.isNull()); @@ -1118,10 +1131,7 @@ void tst_QImage::loadFromData() #if !defined(QT_NO_DATASTREAM) void tst_QImage::loadFromDataStream() { - const QString prefix = QFINDTESTDATA("images/"); - if (prefix.isEmpty()) - QFAIL("can not find images directory!"); - const QString filePath = prefix + QLatin1String("image.jpg"); + const QString filePath = m_prefix + QLatin1String("image.jpg"); QImage original(filePath); QVERIFY(!original.isNull()); @@ -1214,6 +1224,18 @@ void tst_QImage::setPixel_data() QTest::newRow("RGBA8888 blue") << int(QImage::Format_RGBA8888) << 0xff0000ffu << 0xffff0000u; #endif + QTest::newRow("A2BGR30_Premultiplied red") << int(QImage::Format_A2BGR30_Premultiplied) + << 0xffff0000u << 0xc00003ffu; + QTest::newRow("A2BGR30_Premultiplied green") << int(QImage::Format_A2BGR30_Premultiplied) + << 0xff00ff00u << 0xc00ffc00u; + QTest::newRow("A2BGR30_Premultiplied blue") << int(QImage::Format_A2BGR30_Premultiplied) + << 0xff0000ffu << 0xfff00000u; + QTest::newRow("RGB30 red") << int(QImage::Format_RGB30) + << 0xffff0000u << 0xfff00000u; + QTest::newRow("RGB30 green") << int(QImage::Format_RGB30) + << 0xff00ff00u << 0xc00ffc00u; + QTest::newRow("RGB30 blue") << int(QImage::Format_RGB30) + << 0xff0000ffu << 0xc00003ffu; } void tst_QImage::setPixel() @@ -1240,6 +1262,8 @@ void tst_QImage::setPixel() case int(QImage::Format_RGBX8888): case int(QImage::Format_RGBA8888): case int(QImage::Format_RGBA8888_Premultiplied): + case int(QImage::Format_A2BGR30_Premultiplied): + case int(QImage::Format_RGB30): { for (int y = 0; y < h; ++y) { const quint32 *row = (const quint32*)(img.scanLine(y)); @@ -1959,6 +1983,8 @@ void tst_QImage::fillColor_data() "ARGB4444pm", "RGBx8888", "RGBA8888pm", + "BGR30", + "A2RGB30pm", 0 }; @@ -1978,6 +2004,8 @@ void tst_QImage::fillColor_data() QImage::Format_ARGB4444_Premultiplied, QImage::Format_RGBX8888, QImage::Format_RGBA8888_Premultiplied, + QImage::Format_BGR30, + QImage::Format_A2RGB30_Premultiplied, }; for (int i=0; names[i] != 0; ++i) { @@ -1996,6 +2024,7 @@ void tst_QImage::fillColor_data() QTest::newRow("ARGB32, transparent") << QImage::Format_ARGB32 << Qt::transparent << 0x00000000u; QTest::newRow("ARGB32pm, transparent") << QImage::Format_ARGB32_Premultiplied << Qt::transparent << 0x00000000u; QTest::newRow("RGBA8888pm, transparent") << QImage::Format_RGBA8888_Premultiplied << Qt::transparent << 0x00000000u; + QTest::newRow("A2RGB30pm, transparent") << QImage::Format_A2RGB30_Premultiplied << Qt::transparent << 0x00000000u; } void tst_QImage::fillColor() @@ -2112,6 +2141,8 @@ void tst_QImage::rgbSwapped_data() QTest::newRow("Format_RGB444") << QImage::Format_RGB444; QTest::newRow("Format_RGBX8888") << QImage::Format_RGBX8888; QTest::newRow("Format_RGBA8888_Premultiplied") << QImage::Format_RGBA8888_Premultiplied; + QTest::newRow("Format_A2BGR30_Premultiplied") << QImage::Format_A2BGR30_Premultiplied; + QTest::newRow("Format_RGB30") << QImage::Format_RGB30; } void tst_QImage::rgbSwapped() @@ -2180,6 +2211,8 @@ void tst_QImage::mirrored_data() QTest::newRow("Format_RGB444, vertical") << QImage::Format_RGB444 << true << false << 16 << 16; QTest::newRow("Format_RGBX8888, vertical") << QImage::Format_RGBX8888 << true << false << 16 << 16; QTest::newRow("Format_RGBA8888_Premultiplied, vertical") << QImage::Format_RGBA8888_Premultiplied << true << false << 16 << 16; + QTest::newRow("Format_A2BGR30_Premultiplied, vertical") << QImage::Format_A2BGR30_Premultiplied << true << false << 16 << 16; + QTest::newRow("Format_RGB30, vertical") << QImage::Format_RGB30 << true << false << 16 << 16; QTest::newRow("Format_Indexed8, vertical") << QImage::Format_Indexed8 << true << false << 16 << 16; QTest::newRow("Format_Mono, vertical") << QImage::Format_Mono << true << false << 16 << 16; QTest::newRow("Format_MonoLSB, vertical") << QImage::Format_MonoLSB << true << false << 16 << 16; @@ -2279,6 +2312,7 @@ void tst_QImage::inplaceRgbSwapped_data() QTest::newRow("Format_ARGB32_Premultiplied") << QImage::Format_ARGB32_Premultiplied; QTest::newRow("Format_RGBA8888") << QImage::Format_RGBA8888; + QTest::newRow("Format_A2RGB30_Premultiplied") << QImage::Format_A2RGB30_Premultiplied; QTest::newRow("Format_RGB888") << QImage::Format_RGB888; QTest::newRow("Format_RGB16") << QImage::Format_RGB16; QTest::newRow("Format_Indexed8") << QImage::Format_Indexed8; @@ -2523,6 +2557,81 @@ void tst_QImage::scaled_QTBUG35972() QCOMPARE(pixels[i], 0xffffffff); } +void tst_QImage::convertToPixelFormat() +{ + QPixelFormat rgb565 = QPixelFormatRgb(5,6,5,0,QPixelFormat::IgnoresAlpha, QPixelFormat::AtBeginning, QPixelFormat::NotPremultiplied, QPixelFormat::UnsignedShort); + QPixelFormat rgb565ImageFormat = QImage::toPixelFormat(QImage::Format_RGB16); + QCOMPARE(rgb565, rgb565ImageFormat); +} + +void tst_QImage::convertToImageFormat_data() +{ + QTest::addColumn<QImage::Format>("image_format"); + QTest::newRow("Convert Format_Invalid") << QImage::Format_Invalid; + QTest::newRow("Convert Format_Mono") << QImage::Format_Mono; + //This ends up being a QImage::Format_Mono since we cant specify LSB in QPixelFormat + //QTest::newRow("Convert Format_MonoLSB") << QImage::Format_MonoLSB; + QTest::newRow("Convert Format_Indexed8") << QImage::Format_Indexed8; + QTest::newRow("Convert Format_RGB32") << QImage::Format_RGB32; + QTest::newRow("Convert Format_ARGB32") << QImage::Format_ARGB32; + QTest::newRow("Convert Format_ARGB32_Premultiplied") << QImage::Format_ARGB32_Premultiplied; + QTest::newRow("Convert Format_RGB16") << QImage::Format_RGB16; + QTest::newRow("Convert Format_ARGB8565_Premultiplied") << QImage::Format_ARGB8565_Premultiplied; + QTest::newRow("Convert Format_RGB666") << QImage::Format_RGB666; + QTest::newRow("Convert Format_ARGB6666_Premultiplied") << QImage::Format_ARGB6666_Premultiplied; + QTest::newRow("Convert Format_RGB555") << QImage::Format_RGB555; + QTest::newRow("Convert Format_ARGB8555_Premultiplied") << QImage::Format_ARGB8555_Premultiplied; + QTest::newRow("Convert Format_RGB888") << QImage::Format_RGB888; + QTest::newRow("Convert Format_RGB444") << QImage::Format_RGB444; + QTest::newRow("Convert Format_ARGB4444_Premultiplied") << QImage::Format_ARGB4444_Premultiplied; + QTest::newRow("Convert Format_RGBX8888") << QImage::Format_RGBX8888; + QTest::newRow("Convert Format_RGBA8888") << QImage::Format_RGBA8888; + QTest::newRow("Convert Format_RGBA8888_Premultiplied") << QImage::Format_RGBA8888_Premultiplied; +} + +void tst_QImage::convertToImageFormat() +{ + QFETCH(QImage::Format, image_format); + + QPixelFormat pixel_format = QImage::toPixelFormat(image_format); + QImage::Format format = QImage::toImageFormat(pixel_format); + QCOMPARE(format, image_format); +} + +void tst_QImage::invertPixelsRGB_data() +{ + QTest::addColumn<QImage::Format>("image_format"); + + QTest::newRow("invertPixels RGB16") << QImage::Format_RGB16; + QTest::newRow("invertPixels RGB32") << QImage::Format_RGB32; + QTest::newRow("invertPixels BGR30") << QImage::Format_BGR30; + QTest::newRow("invertPixels RGB444") << QImage::Format_RGB444; + QTest::newRow("invertPixels RGB555") << QImage::Format_RGB555; + QTest::newRow("invertPixels RGB888") << QImage::Format_RGB888; + + QTest::newRow("invertPixels ARGB32") << QImage::Format_ARGB32; + QTest::newRow("invertPixels ARGB32pm") << QImage::Format_ARGB32_Premultiplied; + QTest::newRow("invertPixels RGBA8888") << QImage::Format_RGBA8888; + QTest::newRow("invertPixels RGBA8888pm") << QImage::Format_RGBA8888_Premultiplied; + QTest::newRow("invertPixels RGBA4444pm") << QImage::Format_ARGB4444_Premultiplied; +} + +void tst_QImage::invertPixelsRGB() +{ + QFETCH(QImage::Format, image_format); + + QImage image(1, 1, image_format); + image.fill(QColor::fromRgb(32, 64, 96)); + image.invertPixels(); + + QCOMPARE(image.format(), image_format); + + uint pixel = image.pixel(0, 0); + QCOMPARE(qRed(pixel) >> 4, (255 - 32) >> 4); + QCOMPARE(qGreen(pixel) >> 4, (255 - 64) >> 4); + QCOMPARE(qBlue(pixel) >> 4, (255 - 96) >> 4); +} + static void cleanupFunction(void* info) { bool *called = static_cast<bool*>(info); diff --git a/tests/auto/gui/image/qpicture/tst_qpicture.cpp b/tests/auto/gui/image/qpicture/tst_qpicture.cpp index 2e766c5bf5..986431941f 100644 --- a/tests/auto/gui/image/qpicture/tst_qpicture.cpp +++ b/tests/auto/gui/image/qpicture/tst_qpicture.cpp @@ -45,6 +45,7 @@ #include <qpicture.h> #include <qpainter.h> #include <qimage.h> +#include <qpaintengine.h> #ifndef QT_NO_WIDGETS #include <qdesktopwidget.h> #include <qapplication.h> @@ -64,7 +65,7 @@ private slots: void paintingActive(); void boundingRect(); void swap(); - void operator_lt_lt(); + void serialization(); #ifndef QT_NO_WIDGETS void save_restore(); @@ -169,36 +170,94 @@ void tst_QPicture::swap() QCOMPARE(p2.boundingRect(), QRect(0,0,5,5)); } -// operator<< and operator>> -void tst_QPicture::operator_lt_lt() +Q_DECLARE_METATYPE(QDataStream::Version) +Q_DECLARE_METATYPE(QPicture) + +void ensureSerializesCorrectly(const QPicture &picture, QDataStream::Version version) + { + QDataStream stream; + + QBuffer buffer; + buffer.open(QIODevice::WriteOnly); + stream.setDevice(&buffer); + stream.setVersion(version); + stream << picture; + buffer.close(); + + buffer.open(QIODevice::ReadOnly); + QPicture readpicture; + stream >> readpicture; + QVERIFY2(memcmp(picture.data(), readpicture.data(), picture.size()) == 0, + qPrintable(QString::fromLatin1("Picture data does not compare equal for QDataStream version %1").arg(version))); +} + +class PaintEngine : public QPaintEngine { - // streaming of null pictures - { - QPicture pic1, pic2; - QByteArray ba( 100, 0 ); - QDataStream str1( &ba, QIODevice::WriteOnly ); - str1 << pic1; - QDataStream str2( &ba, QIODevice::ReadOnly ); - str2 >> pic2; - QVERIFY( pic2.isNull() ); +public: + PaintEngine() : QPaintEngine() {} + bool begin(QPaintDevice *) { return true; } + bool end() { return true; } + void updateState(const QPaintEngineState &) {} + void drawPixmap(const QRectF &, const QPixmap &, const QRectF &) {} + Type type() const { return Raster; } + + QFont font() { return state->font(); } +}; + +class Picture : public QPicture +{ +public: + Picture() : QPicture() {} + QPaintEngine *paintEngine() const { return (QPaintEngine*)&mPaintEngine; } +private: + PaintEngine mPaintEngine; +}; + +void tst_QPicture::serialization() +{ + QDataStream stream; + const int thisVersion = stream.version(); + + for (int version = QDataStream::Qt_1_0; version <= thisVersion; ++version) { + const QDataStream::Version versionEnum = static_cast<QDataStream::Version>(version); + + { + // streaming of null pictures + ensureSerializesCorrectly(QPicture(), versionEnum); + } + { + // picture with a simple line, checking bitwise equality + QPicture picture; + QPainter painter(&picture); + painter.drawLine(10, 20, 30, 40); + ensureSerializesCorrectly(picture, versionEnum); + } } - // picture with a simple line, checking bitwise equality { - QPicture pic1, pic2; - QPainter p( &pic1 ); - p.drawLine( 10, 20, 30, 40 ); - p.end(); - QByteArray ba( 10 * pic1.size(), 0 ); - QDataStream str1( &ba, QIODevice::WriteOnly ); - str1 << pic1; - QDataStream str2( &ba, QIODevice::ReadOnly ); - str2 >> pic2; - QCOMPARE( pic1.size(), pic2.size() ); - QVERIFY( memcmp( pic1.data(), pic2.data(), pic1.size() ) == 0 ); + // Test features that were added after Qt 4.5, as that was hard-coded as the major + // version for a while, which was incorrect. In this case, we'll test font hints. + QPicture picture; + QPainter painter; + QFont font; + font.setStyleName("Blah"); + font.setHintingPreference(QFont::PreferFullHinting); + painter.begin(&picture); + painter.setFont(font); + painter.drawText(20, 20, "Hello"); + painter.end(); + + Picture customPicture; + painter.begin(&customPicture); + picture.play(&painter); + const QFont actualFont = ((PaintEngine*)customPicture.paintEngine())->font(); + painter.end(); + QCOMPARE(actualFont.styleName(), QStringLiteral("Blah")); + QCOMPARE(actualFont.hintingPreference(), QFont::PreferFullHinting); } } + #ifndef QT_NO_WIDGETS static QPointF scalePoint(const QPointF &point, QPaintDevice *sourceDevice, QPaintDevice *destDevice) { diff --git a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp index b9d0adcd21..0c5d9f23b9 100644 --- a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the test suite of the Qt Toolkit. @@ -78,6 +78,7 @@ public: public slots: void init(); void cleanup(); + void initTestCase(); void cleanupTestCase(); private slots: @@ -171,6 +172,11 @@ private slots: void detachOnLoad_QTBUG29639(); void copyOnNonAlignedBoundary(); + +private: + const QString m_prefix; + const QString m_convertFromImage; + const QString m_loadFromData; }; static bool lenientCompare(const QPixmap &actual, const QPixmap &expected) @@ -207,6 +213,9 @@ static bool lenientCompare(const QPixmap &actual, const QPixmap &expected) tst_QPixmap::tst_QPixmap() + : m_prefix(QFINDTESTDATA("images/")) + , m_convertFromImage(QFINDTESTDATA("convertFromImage")) + , m_loadFromData(QFINDTESTDATA("loadFromData")) { } @@ -222,6 +231,13 @@ void tst_QPixmap::cleanup() { } +void tst_QPixmap::initTestCase() +{ + QVERIFY(!m_prefix.isEmpty()); + QVERIFY(!m_convertFromImage.isEmpty()); + QVERIFY(!m_loadFromData.isEmpty()); +} + void tst_QPixmap::cleanupTestCase() { QFile::remove(QLatin1String("temp_image.png")); @@ -312,22 +328,21 @@ void tst_QPixmap::convertFromImage_data() { QTest::addColumn<QImage>("img1"); QTest::addColumn<QImage>("img2"); - const QString prefix = QFINDTESTDATA("convertFromImage"); { QImage img1; QImage img2; - QVERIFY(img1.load(prefix + "/task31722_0/img1.png")); - QVERIFY(img2.load(prefix + "/task31722_0/img2.png")); - QVERIFY(img1.load(prefix + "/task31722_0/img1.png")); - QVERIFY(img2.load(prefix + "/task31722_0/img2.png")); + QVERIFY(img1.load(m_convertFromImage + "/task31722_0/img1.png")); + QVERIFY(img2.load(m_convertFromImage + "/task31722_0/img2.png")); + QVERIFY(img1.load(m_convertFromImage + "/task31722_0/img1.png")); + QVERIFY(img2.load(m_convertFromImage + "/task31722_0/img2.png")); QTest::newRow("Task 31722 0") << img1 << img2; } { QImage img1; QImage img2; - QVERIFY(img1.load(prefix + "/task31722_1/img1.png")); - QVERIFY(img2.load(prefix + "/task31722_1/img2.png")); + QVERIFY(img1.load(m_convertFromImage + "/task31722_1/img1.png")); + QVERIFY(img2.load(m_convertFromImage + "/task31722_1/img2.png")); QTest::newRow("Task 31722 1") << img1 << img2; } } @@ -346,11 +361,10 @@ void tst_QPixmap::convertFromImage() void tst_QPixmap::convertFromImageShouldDetach() { - const QString prefix = QFINDTESTDATA("convertFromImage"); QImage img1; QImage img2; - QVERIFY(img1.load(prefix + "/task31722_0/img1.png")); - QVERIFY(img2.load(prefix + "/task31722_0/img2.png")); + QVERIFY(img1.load(m_convertFromImage + "/task31722_0/img1.png")); + QVERIFY(img2.load(m_convertFromImage + "/task31722_0/img2.png")); QPixmap pix = QPixmap::fromImage(img1); QPixmap pix1 = pix; pix.convertFromImage(img2); @@ -1202,10 +1216,7 @@ void tst_QPixmap::transformed2() void tst_QPixmap::load() { - const QString prefix = QFINDTESTDATA("images/"); - if (prefix.isEmpty()) - QFAIL("can not find images directory!"); - const QString filePath = prefix + QLatin1String("designer.png"); + const QString filePath = m_prefix + QLatin1String("designer.png"); QPixmap dest(filePath); QVERIFY(!dest.isNull()); @@ -1217,10 +1228,7 @@ void tst_QPixmap::load() void tst_QPixmap::loadFromData() { - const QString prefix = QFINDTESTDATA("images/"); - if (prefix.isEmpty()) - QFAIL("can not find images directory!"); - const QString filePath = prefix + QLatin1String("designer.png"); + const QString filePath = m_prefix + QLatin1String("designer.png"); QPixmap original(filePath); QVERIFY(!original.isNull()); @@ -1246,10 +1254,7 @@ void tst_QPixmap::loadFromData() #if !defined(QT_NO_DATASTREAM) void tst_QPixmap::loadFromDataStream() { - const QString prefix = QFINDTESTDATA("images/"); - if (prefix.isEmpty()) - QFAIL("can not find images directory!"); - const QString filePath = prefix + QLatin1String("designer.png"); + const QString filePath = m_prefix + QLatin1String("designer.png"); QPixmap original(filePath); QVERIFY(!original.isNull()); @@ -1344,17 +1349,15 @@ void tst_QPixmap::loadFromDataImage_data() { QTest::addColumn<QString>("imagePath"); - const QString prefix = QFINDTESTDATA("loadFromData"); - - QTest::newRow("designer_argb32.png") << prefix + "/designer_argb32.png"; + QTest::newRow("designer_argb32.png") << m_loadFromData + "/designer_argb32.png"; // When no extension is provided we try all extensions that has been registered by image providers - QTest::newRow("designer_argb32") << prefix + "/designer_argb32.png"; - QTest::newRow("designer_indexed8_no_alpha.png") << prefix + "/designer_indexed8_no_alpha.png"; - QTest::newRow("designer_indexed8_with_alpha.png") << prefix + "/designer_indexed8_with_alpha.png"; - QTest::newRow("designer_rgb32.png") << prefix + "/designer_rgb32.png"; - QTest::newRow("designer_indexed8_no_alpha.gif") << prefix + "/designer_indexed8_no_alpha.gif"; - QTest::newRow("designer_indexed8_with_alpha.gif") << prefix + "/designer_indexed8_with_alpha.gif"; - QTest::newRow("designer_rgb32.jpg") << prefix + "/designer_rgb32.jpg"; + QTest::newRow("designer_argb32") << m_loadFromData + "/designer_argb32.png"; + QTest::newRow("designer_indexed8_no_alpha.png") << m_loadFromData + "/designer_indexed8_no_alpha.png"; + QTest::newRow("designer_indexed8_with_alpha.png") << m_loadFromData + "/designer_indexed8_with_alpha.png"; + QTest::newRow("designer_rgb32.png") << m_loadFromData + "/designer_rgb32.png"; + QTest::newRow("designer_indexed8_no_alpha.gif") << m_loadFromData + "/designer_indexed8_no_alpha.gif"; + QTest::newRow("designer_indexed8_with_alpha.gif") << m_loadFromData + "/designer_indexed8_with_alpha.gif"; + QTest::newRow("designer_rgb32.jpg") << m_loadFromData + "/designer_rgb32.jpg"; } void tst_QPixmap::loadFromDataImage() @@ -1378,17 +1381,15 @@ void tst_QPixmap::fromImageReader_data() { QTest::addColumn<QString>("imagePath"); - const QString prefix = QFINDTESTDATA("loadFromData"); - - QTest::newRow("designer_argb32.png") << prefix + "/designer_argb32.png"; - QTest::newRow("designer_indexed8_no_alpha.png") << prefix + "/designer_indexed8_no_alpha.png"; - QTest::newRow("designer_indexed8_with_alpha.png") << prefix + "/designer_indexed8_with_alpha.png"; - QTest::newRow("designer_rgb32.png") << prefix + "/designer_rgb32.png"; - QTest::newRow("designer_indexed8_no_alpha.gif") << prefix + "/designer_indexed8_no_alpha.gif"; - QTest::newRow("designer_indexed8_with_alpha.gif") << prefix + "/designer_indexed8_with_alpha.gif"; - QTest::newRow("designer_rgb32.jpg") << prefix + "/designer_rgb32.jpg"; - QTest::newRow("designer_indexed8_with_alpha_animated") << prefix + "/designer_indexed8_with_alpha_animated.gif"; - QTest::newRow("designer_indexed8_no_alpha_animated") << prefix + "/designer_indexed8_no_alpha_animated.gif"; + QTest::newRow("designer_argb32.png") << m_loadFromData + "/designer_argb32.png"; + QTest::newRow("designer_indexed8_no_alpha.png") << m_loadFromData + "/designer_indexed8_no_alpha.png"; + QTest::newRow("designer_indexed8_with_alpha.png") << m_loadFromData + "/designer_indexed8_with_alpha.png"; + QTest::newRow("designer_rgb32.png") << m_loadFromData + "/designer_rgb32.png"; + QTest::newRow("designer_indexed8_no_alpha.gif") << m_loadFromData + "/designer_indexed8_no_alpha.gif"; + QTest::newRow("designer_indexed8_with_alpha.gif") << m_loadFromData + "/designer_indexed8_with_alpha.gif"; + QTest::newRow("designer_rgb32.jpg") << m_loadFromData + "/designer_rgb32.jpg"; + QTest::newRow("designer_indexed8_with_alpha_animated") << m_loadFromData + "/designer_indexed8_with_alpha_animated.gif"; + QTest::newRow("designer_indexed8_no_alpha_animated") << m_loadFromData + "/designer_indexed8_no_alpha_animated.gif"; } void tst_QPixmap::fromImageReader() @@ -1416,8 +1417,7 @@ void tst_QPixmap::fromImageReaderAnimatedGif() { QFETCH(QString, imagePath); - const QString prefix = QFINDTESTDATA("loadFromData"); - const QString path = prefix + imagePath; + const QString path = m_loadFromData + imagePath; QImageReader referenceReader(path); QImageReader pixmapReader(path); @@ -1533,14 +1533,12 @@ void tst_QPixmap::scaled_QTBUG19157() void tst_QPixmap::detachOnLoad_QTBUG29639() { - const QString prefix = QFINDTESTDATA("convertFromImage"); - QPixmap a; - a.load(prefix + "/task31722_0/img1.png"); - a.load(prefix + "/task31722_0/img2.png"); + a.load(m_convertFromImage + "/task31722_0/img1.png"); + a.load(m_convertFromImage + "/task31722_0/img2.png"); QPixmap b; - b.load(prefix + "/task31722_0/img1.png"); + b.load(m_convertFromImage + "/task31722_0/img1.png"); QVERIFY(a.toImage() != b.toImage()); } |