summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp')
-rw-r--r--tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
index 49a4504d2a..924174e358 100644
--- a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
+++ b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
@@ -36,6 +36,7 @@
#include <QSet>
#include <QTemporaryDir>
#include <QTemporaryFile>
+#include <QSaveFile>
#ifdef Q_OS_UNIX // for geteuid()
# include <sys/types.h>
@@ -75,6 +76,7 @@ private slots:
void saveWithNoFormat();
void saveToTemporaryFile();
+ void saveToSaveFile();
void writeEmpty();
@@ -530,6 +532,59 @@ void tst_QImageWriter::saveToTemporaryFile()
}
}
+void tst_QImageWriter::saveToSaveFile()
+{
+ QImage image(prefix + "kollada.png");
+ QVERIFY(!image.isNull());
+
+ {
+ // Check canWrite
+ QImageWriter writer;
+ QSaveFile file(writePrefix + "savefile0.png");
+ writer.setDevice(&file);
+ QVERIFY2(writer.canWrite(), qPrintable(writer.errorString()));
+ }
+
+ QString fileName1(writePrefix + "savefile1.garble");
+ {
+ // Check failing canWrite
+ QVERIFY(!QFileInfo(fileName1).exists());
+ QImageWriter writer;
+ QSaveFile file(fileName1);
+ writer.setDevice(&file);
+ QVERIFY(!writer.canWrite());
+ QCOMPARE(writer.error(), QImageWriter::UnsupportedFormatError);
+ }
+ QVERIFY(!QFileInfo(fileName1).exists());
+
+ QString fileName2(writePrefix + "savefile2.png");
+ {
+ QImageWriter writer;
+ QSaveFile file(fileName2);
+ writer.setDevice(&file);
+ QCOMPARE(writer.fileName(), fileName2);
+ QVERIFY2(writer.write(image), qPrintable(writer.errorString()));
+ QVERIFY(file.commit());
+ }
+ {
+ QImage tmp;
+ QVERIFY(tmp.load(fileName2, "PNG"));
+ QCOMPARE(tmp, image);
+ }
+
+ QString fileName3(writePrefix + "savefile3.png");
+ {
+ QSaveFile file(fileName3);
+ QVERIFY(image.save(&file));
+ QVERIFY(file.commit());
+ }
+ {
+ QImage tmp;
+ QVERIFY(tmp.load(fileName3, "PNG"));
+ QCOMPARE(tmp, image);
+ }
+}
+
void tst_QImageWriter::writeEmpty()
{
// check writing a null QImage errors gracefully