summaryrefslogtreecommitdiffstats
path: root/tests/auto/qimagereader
diff options
context:
space:
mode:
authoraavit <qt-info@nokia.com>2010-10-29 11:35:31 (GMT)
committeraavit <qt-info@nokia.com>2010-10-29 12:36:52 (GMT)
commitd42e644daf975160f46550abc8923c08df22ae7e (patch)
tree05b649c6f496667e1db597e6084dd40579018b57 /tests/auto/qimagereader
parent77819edac505823226c40033e76d2dda0e8b363a (diff)
downloadQt-d42e644daf975160f46550abc8923c08df22ae7e.zip
Qt-d42e644daf975160f46550abc8923c08df22ae7e.tar.gz
Qt-d42e644daf975160f46550abc8923c08df22ae7e.tar.bz2
Fixes: corruption of whitespace in text fields when reading PNG images
Task-number: QTBUG-14398 Reviewed-by: Kim
Diffstat (limited to 'tests/auto/qimagereader')
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp
index 4b4bdd6..149cc84 100644
--- a/tests/auto/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/qimagereader/tst_qimagereader.cpp
@@ -180,6 +180,9 @@ private slots:
void saveFormat_data();
void saveFormat();
+
+ void preserveTexts_data();
+ void preserveTexts();
};
static const QLatin1String prefix(SRCDIR "/images/");
@@ -1948,5 +1951,61 @@ void tst_QImageReader::saveFormat()
}
+void tst_QImageReader::preserveTexts_data()
+{
+ QTest::addColumn<QString>("text");
+
+ QTest::newRow("Simple") << "simpletext";
+ QTest::newRow("Whitespace") << " A text with whitespace ";
+ QTest::newRow("Newline") << "A text\nwith newlines\n";
+ QTest::newRow("Double newlines") << "A text\n\nwith double newlines\n\n";
+ QTest::newRow("Long") << QString("A rather long text, at least after many repetitions. ").repeated(100);
+
+#if 0
+ // Depends on iTXt support in libpng
+ QString latin1set;
+ for(int c = 0x20; c <= 0xff; c++)
+ latin1set.append(QLatin1Char(c));
+ QTest::newRow("All Latin1 chars") << latin1set;
+ QTest::newRow("Multibyte string") << QString::fromUtf8("\341\233\222\341\233\226\341\232\251\341\232\271\341\232\242\341\233\232\341\232\240");
+#endif
+}
+
+
+void tst_QImageReader::preserveTexts()
+{
+ QFETCH(QString, text);
+ QString key("testkey");
+ QString key2("testkey2");
+ QString text2("Some other text.");
+ QString key3("testkey3");
+ QString text3("Some more other text.");
+
+ QImage img(":/images/kollada.png");
+ img.setText(key, text);
+ img.setText(key2, text2);
+ QBuffer buf;
+ buf.open(QIODevice::WriteOnly);
+ QVERIFY(img.save(&buf, "png"));
+ buf.close();
+ QImage stored = QImage::fromData(buf.buffer(), "png");
+ QCOMPARE(stored.text(key), text);
+ QCOMPARE(stored.text(key2), text2);
+
+ QImage img2(":/images/kollada.png");
+ img2.setText(key3, text3);
+ QBuffer buf2;
+ QImageWriter w(&buf2, "png");
+ w.setText(key, text);
+ w.setText(key2, text2);
+ QVERIFY(w.write(img2));
+ buf2.close();
+ QImageReader r(&buf2, "png");
+ QCOMPARE(r.text(key), text.simplified());
+ QCOMPARE(r.text(key2), text2.simplified());
+ QCOMPARE(r.text(key3), text3.simplified());
+}
+
+
QTEST_MAIN(tst_QImageReader)
#include "tst_qimagereader.moc"