diff options
Diffstat (limited to 'tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp')
-rw-r--r-- | tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp | 55 |
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 |