tests/auto/qimagereader/tst_qimagereader.cpp
branchRCL_3
changeset 8 3f74d0d4af4c
parent 5 d3bac044e0f0
equal deleted inserted replaced
6:dee5afe5301f 8:3f74d0d4af4c
   140 
   140 
   141 #if defined QTEST_HAVE_GIF
   141 #if defined QTEST_HAVE_GIF
   142     void gifHandlerBugs();
   142     void gifHandlerBugs();
   143     void animatedGif();
   143     void animatedGif();
   144     void gifImageCount();
   144     void gifImageCount();
       
   145     void gifLoopCount();
   145 #endif
   146 #endif
   146 
   147 
   147     void readCorruptImage_data();
   148     void readCorruptImage_data();
   148     void readCorruptImage();
   149     void readCorruptImage();
   149     void readCorruptBmp();
   150     void readCorruptBmp();
   763         QImage whiteFrame = io.read();
   764         QImage whiteFrame = io.read();
   764 
   765 
   765         QVERIFY(io.canRead());
   766         QVERIFY(io.canRead());
   766         QImage greenFrame = io.read();
   767         QImage greenFrame = io.read();
   767 
   768 
       
   769         QVERIFY(io.imageCount() == 4);
       
   770 
   768         QVERIFY(io.canRead());
   771         QVERIFY(io.canRead());
   769         QImage blueFrame = io.read();
   772         QImage blueFrame = io.read();
   770 
   773 
   771         QVERIFY(!io.canRead());
   774         QVERIFY(!io.canRead());
   772         QImage emptyFrame = io.read();
   775         QImage emptyFrame = io.read();
   874 
   877 
   875         QCOMPARE(blueFrame.pixel(0,0), qRgb(0x0, 0x0, 0xff));
   878         QCOMPARE(blueFrame.pixel(0,0), qRgb(0x0, 0x0, 0xff));
   876         QCOMPARE(blueFrame.size(), QSize(64,64));
   879         QCOMPARE(blueFrame.size(), QSize(64,64));
   877         QVERIFY(emptyFrame.isNull());
   880         QVERIFY(emptyFrame.isNull());
   878     }
   881     }
   879 }
   882     {
       
   883         QImageReader io(":images/trolltech.gif");
       
   884         QVERIFY(io.imageCount() == 34);
       
   885         QVERIFY(io.size() == QSize(128,64));
       
   886     }
       
   887 }
       
   888 
       
   889 void tst_QImageReader::gifLoopCount()
       
   890 {
       
   891     {
       
   892         QImageReader io(":images/qt-gif-anim.gif");
       
   893         QCOMPARE(io.loopCount(), -1); // infinite loop
       
   894     }
       
   895     {
       
   896         QImageReader io(":images/qt-gif-noanim.gif");
       
   897         QCOMPARE(io.loopCount(), 0); // no loop
       
   898     }
       
   899 }
       
   900 
   880 #endif
   901 #endif
   881 
   902 
   882 class Server : public QObject
   903 class Server : public QObject
   883 {
   904 {
   884     Q_OBJECT
   905     Q_OBJECT
  1610         QVERIFY(reader.read().isNull());
  1631         QVERIFY(reader.read().isNull());
  1611         reader.setAutoDetectImageFormat(true);
  1632         reader.setAutoDetectImageFormat(true);
  1612         QVERIFY(reader.canRead());
  1633         QVERIFY(reader.canRead());
  1613         QVERIFY(!reader.read().isNull());
  1634         QVERIFY(!reader.read().isNull());
  1614     }
  1635     }
       
  1636 
       
  1637 #ifdef QTEST_HAVE_JPEG
       
  1638     {
       
  1639         QImageReader io(prefix + "YCbCr_rgb.jpg");
       
  1640         io.setAutoDetectImageFormat(false);
       
  1641         // This should fail since no format string is given
       
  1642         QImage image;
       
  1643         QVERIFY(!io.read(&image));
       
  1644     }
       
  1645     {
       
  1646         QImageReader io(prefix + "YCbCr_rgb.jpg", "jpg");
       
  1647         io.setAutoDetectImageFormat(false);
       
  1648         QImage image;
       
  1649         QVERIFY(io.read(&image));
       
  1650     }
       
  1651 #endif
       
  1652     {
       
  1653         QImageReader io(prefix + "tst7.png");
       
  1654         io.setAutoDetectImageFormat(false);
       
  1655         // This should fail since no format string is given
       
  1656         QImage image;
       
  1657         QVERIFY(!io.read(&image));
       
  1658     }
       
  1659     {
       
  1660         QImageReader io(prefix + "tst7.png", "png");
       
  1661         io.setAutoDetectImageFormat(false);
       
  1662         QImage image;
       
  1663         QVERIFY(io.read(&image));
       
  1664     }
  1615 }
  1665 }
  1616 
  1666 
  1617 void tst_QImageReader::fileNameProbing()
  1667 void tst_QImageReader::fileNameProbing()
  1618 {
  1668 {
  1619     QString name("doesnotexist.png");
  1669     QString name("doesnotexist.png");
  1639 
  1689 
  1640 void tst_QImageReader::pixelCompareWithBaseline()
  1690 void tst_QImageReader::pixelCompareWithBaseline()
  1641 {
  1691 {
  1642     QFETCH(QString, fileName);
  1692     QFETCH(QString, fileName);
  1643 
  1693 
       
  1694     static int enteredCount = 0;    // Used for better error diagnostics if something fails. We
       
  1695     static int loadFailCount = 0;   // don't know if the reason load() fails is that the plugin
       
  1696                                     // does not exist or because of a bug in the plugin. But if at
       
  1697                                     // least one file succeeded we know that the plugin was built.
       
  1698                                     // The other failures are then real failures.
  1644     QImage icoImg;
  1699     QImage icoImg;
  1645     const QString inputFileName(QString::fromAscii("images/%1").arg(fileName));
  1700     const QString inputFileName(QString::fromAscii("images/%1").arg(fileName));
  1646     QFileInfo fi(inputFileName);
  1701     QFileInfo fi(inputFileName);
  1647 
  1702 
       
  1703     ++enteredCount;
  1648     // might fail if the plugin does not exist, which is ok.
  1704     // might fail if the plugin does not exist, which is ok.
  1649     if (icoImg.load(inputFileName)) {
  1705     if (icoImg.load(inputFileName)) {
  1650         icoImg = icoImg.convertToFormat(QImage::Format_ARGB32_Premultiplied);
  1706         icoImg = icoImg.convertToFormat(QImage::Format_ARGB32_Premultiplied);
  1651         const QString baselineFileName(QString::fromAscii("baseline/%1.png").arg(fi.baseName()));
  1707         const QString baselineFileName(QString::fromAscii("baseline/%1.png").arg(fi.baseName()));
  1652 #if 0
  1708 #if 0
  1656         QVERIFY(baseImg.load(baselineFileName));
  1712         QVERIFY(baseImg.load(baselineFileName));
  1657         baseImg = baseImg.convertToFormat(QImage::Format_ARGB32_Premultiplied);
  1713         baseImg = baseImg.convertToFormat(QImage::Format_ARGB32_Premultiplied);
  1658         QCOMPARE(int(baseImg.format()), int(icoImg.format()));
  1714         QCOMPARE(int(baseImg.format()), int(icoImg.format()));
  1659         QCOMPARE(baseImg, icoImg);
  1715         QCOMPARE(baseImg, icoImg);
  1660 #endif
  1716 #endif
       
  1717     } else {
       
  1718         ++loadFailCount;
       
  1719         if (enteredCount != loadFailCount) {
       
  1720             QFAIL("Plugin is built, but some did not load properly");
       
  1721         } else {
       
  1722             qWarning("loading failed, check if ico plugin is built");
       
  1723         }
  1661     }
  1724     }
  1662 }
  1725 }
  1663 
  1726 
  1664 
  1727 
  1665 void tst_QImageReader::testIgnoresFormatAndExtension_data()
  1728 void tst_QImageReader::testIgnoresFormatAndExtension_data()