summaryrefslogtreecommitdiffstats
path: root/tests/auto/qimagereader
diff options
context:
space:
mode:
authorJan-Arve Sæther <jan-arve.saether@nokia.com>2009-04-22 14:27:44 (GMT)
committerJan-Arve Sæther <jan-arve.saether@nokia.com>2009-04-22 14:36:19 (GMT)
commitfd9cdaa55da455b90eacec571aeb2c84fa55f7e0 (patch)
tree774050472bc3096e4f2eec782f897da57bad85c8 /tests/auto/qimagereader
parenta8d14ae567c7e847c6dbba644c36fbc6c6afc468 (diff)
downloadQt-fd9cdaa55da455b90eacec571aeb2c84fa55f7e0.zip
Qt-fd9cdaa55da455b90eacec571aeb2c84fa55f7e0.tar.gz
Qt-fd9cdaa55da455b90eacec571aeb2c84fa55f7e0.tar.bz2
Improve the icon parsing for files with a slightly wrong BMP header.
The reason it failed was that we always expected the height property of the BMP header to be double the height of the icon. The kde_favicon.ico did not fulfill this requirement. We can fix that by simply reading from the ICONDIR entry instead, since that has always the correct height. Task-number: 229829 Reviewed-by: alexis
Diffstat (limited to 'tests/auto/qimagereader')
-rw-r--r--tests/auto/qimagereader/baseline/35floppy.icobin0 -> 4286 bytes
-rw-r--r--tests/auto/qimagereader/baseline/kde_favicon.icobin0 -> 1150 bytes
-rw-r--r--tests/auto/qimagereader/baseline/semitransparent.icobin0 -> 9662 bytes
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp30
4 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/qimagereader/baseline/35floppy.ico b/tests/auto/qimagereader/baseline/35floppy.ico
new file mode 100644
index 0000000..59fd37e
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/35floppy.ico
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/kde_favicon.ico b/tests/auto/qimagereader/baseline/kde_favicon.ico
new file mode 100644
index 0000000..15bcdbb
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/kde_favicon.ico
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/semitransparent.ico b/tests/auto/qimagereader/baseline/semitransparent.ico
new file mode 100644
index 0000000..dd23de9
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/semitransparent.ico
Binary files differ
diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp
index 3841111..8f7094c 100644
--- a/tests/auto/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/qimagereader/tst_qimagereader.cpp
@@ -153,6 +153,9 @@ private slots:
void autoDetectImageFormat();
void fileNameProbing();
+
+ void pixelCompareWithBaseline_data();
+ void pixelCompareWithBaseline();
};
// Testing get/set functions
@@ -1368,5 +1371,32 @@ void tst_QImageReader::fileNameProbing()
QCOMPARE(r.fileName(), name);
}
+void tst_QImageReader::pixelCompareWithBaseline_data()
+{
+ QTest::addColumn<QString>("fileName");
+
+ QTest::newRow("floppy (16px,32px - 16 colors)") << "35floppy.ico";
+ QTest::newRow("semitransparent") << "semitransparent.ico";
+ QTest::newRow("slightlybroken") << "kde_favicon.ico";
+}
+
+void tst_QImageReader::pixelCompareWithBaseline()
+{
+ QFETCH(QString, fileName);
+
+ QImage icoImg;
+ // might fail if the plugin does not exist, which is ok.
+ if (icoImg.load(QString::fromAscii("images/%1").arg(fileName))) {
+ QString baselineFileName = QString::fromAscii("baseline/%1").arg(fileName);
+#if 0
+ icoImg.save(baselineFileName);
+#else
+ QImage baseImg;
+ QVERIFY(baseImg.load(baselineFileName));
+ QCOMPARE(baseImg, icoImg);
+#endif
+ }
+}
+
QTEST_MAIN(tst_QImageReader)
#include "tst_qimagereader.moc"