tests/auto/qpixmap/tst_qpixmap.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
--- a/tests/auto/qpixmap/tst_qpixmap.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp	Tue Feb 02 00:43:10 2010 +0200
@@ -47,6 +47,7 @@
 #include <qmatrix.h>
 #include <qdesktopwidget.h>
 #include <qpaintengine.h>
+#include <qsplashscreen.h>
 
 #include <private/qpixmapdata_p.h>
 
@@ -166,8 +167,10 @@
     void fromImage_crash();
 
     void fromData();
+    void loadFromDataNullValues();
 
     void preserveDepth();
+    void splash_crash();
 };
 
 static bool lenientCompare(const QPixmap &actual, const QPixmap &expected)
@@ -292,7 +295,7 @@
     QRgb expected = alpha == 0 ? 0 : qRgba(red, green, blue, alpha);
     for (int y = 0; y < height; ++y) {
         for (int x = 0; x < width; ++x) {
-            if (result.numColors() > 0) {
+            if (result.colorCount() > 0) {
                 ok &= result.pixelIndex(x, y) == expected;
             } else {
                 ok &= result.pixel(x, y) == expected;
@@ -329,7 +332,7 @@
 
     QImage image(37, 16, format);
 
-    if (image.numColors() == 2) {
+    if (image.colorCount() == 2) {
         image.setColor(0, QColor(Qt::color0).rgba());
         image.setColor(1, QColor(Qt::color1).rgba());
     }
@@ -730,7 +733,7 @@
 void tst_QPixmap::createMaskFromColor()
 {
     QImage image(3, 3, QImage::Format_Indexed8);
-    image.setNumColors(10);
+    image.setColorCount(10);
     image.setColor(0, 0xffffffff);
     image.setColor(1, 0xff000000);
     image.setColor(2, 0xffff0000);
@@ -1133,6 +1136,8 @@
     QTest::newRow("EColor4K big") << EColor4K << largeWidth << largeHeight << QColor(Qt::red);
     QTest::newRow("EColor64K small") << EColor64K << smallWidth << smallHeight << QColor(Qt::green);
     QTest::newRow("EColor64K big") << EColor64K << largeWidth << largeHeight << QColor(Qt::green);
+    QTest::newRow("EColor16M small") << EColor16M << smallWidth << smallHeight << QColor(Qt::yellow);
+    QTest::newRow("EColor16M big") << EColor16M << largeWidth << largeHeight << QColor(Qt::yellow);
     QTest::newRow("EColor16MU small") << EColor16MU << smallWidth << smallHeight << QColor(Qt::red);
     QTest::newRow("EColor16MU big") << EColor16MU << largeWidth << largeHeight << QColor(Qt::red);
     QTest::newRow("EColor16MA small opaque") << EColor16MA << smallWidth << smallHeight << QColor(255, 255, 0);
@@ -1284,6 +1289,12 @@
     QPixmap expected(10, 10);
     expected.fill(Qt::blue);
     QVERIFY(lenientCompare(dest, expected));
+
+    QPixmap trans;
+    trans.fill(Qt::transparent);
+
+    QPixmap transCopy = trans.copy();
+    QVERIFY(pixmapsAreEqual(&trans, &transCopy));
 }
 
 #ifdef QT3_SUPPORT
@@ -1418,6 +1429,17 @@
     delete img;
 }
 
+//This is testing QPixmapData::createCompatiblePixmapData - see QTBUG-5977
+void tst_QPixmap::splash_crash()
+{
+    QPixmap pix;
+    pix = QPixmap(":/images/designer.png");
+    QSplashScreen splash(pix);
+    splash.show();
+    QCoreApplication::processEvents();
+    splash.close();
+}
+
 void tst_QPixmap::fromData()
 {
     unsigned char bits[] = { 0xaa, 0x55 };
@@ -1436,6 +1458,26 @@
     QCOMPARE(img.pixel(0, 1), QRgb(0xff000000));
 }
 
+void tst_QPixmap::loadFromDataNullValues()
+{
+    {
+    QPixmap pixmap;
+    pixmap.loadFromData(QByteArray());
+    QVERIFY(pixmap.isNull());
+    }
+    {
+    QPixmap pixmap;
+    pixmap.loadFromData(0, 123);
+    QVERIFY(pixmap.isNull());
+    }
+    {
+    QPixmap pixmap;
+    const uchar bla[] = "bla";
+    pixmap.loadFromData(bla, 0);
+    QVERIFY(pixmap.isNull());
+    }
+}
+
 void tst_QPixmap::task_246446()
 {
     // This crashed without the bugfix in 246446