summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/image/qimagewriter
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/image/qimagewriter')
-rw-r--r--tests/auto/gui/image/qimagewriter/CMakeLists.txt41
-rw-r--r--tests/auto/gui/image/qimagewriter/qimagewriter.qrc16
-rw-r--r--tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp92
3 files changed, 73 insertions, 76 deletions
diff --git a/tests/auto/gui/image/qimagewriter/CMakeLists.txt b/tests/auto/gui/image/qimagewriter/CMakeLists.txt
index f7212eca3e..06273ce7e4 100644
--- a/tests/auto/gui/image/qimagewriter/CMakeLists.txt
+++ b/tests/auto/gui/image/qimagewriter/CMakeLists.txt
@@ -1,9 +1,16 @@
-# Generated from qimagewriter.pro.
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
#####################################################################
## tst_qimagewriter Test:
#####################################################################
+if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
+ cmake_minimum_required(VERSION 3.16)
+ project(tst_qimagewriter LANGUAGES CXX)
+ find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
+endif()
+
# Collect test data
file(GLOB_RECURSE test_data_glob
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
@@ -13,38 +20,8 @@ list(APPEND test_data ${test_data_glob})
qt_internal_add_test(tst_qimagewriter
SOURCES
tst_qimagewriter.cpp
- PUBLIC_LIBRARIES
+ LIBRARIES
Qt::Gui
TESTDATA ${test_data}
)
-#### Keys ignored in scope 1:.:.:qimagewriter.pro:<TRUE>:
-# MOC_DIR = "tmp"
-
-## Scopes:
-#####################################################################
-
-if(ANDROID AND NOT ANDROID_EMBEDDED)
- # Resources:
- set(qimagewriter_resource_files
- "images/YCbCr_cmyk.jpg"
- "images/YCbCr_rgb.jpg"
- "images/beavis.jpg"
- "images/colorful.bmp"
- "images/earth.gif"
- "images/font.bmp"
- "images/gnus.xbm"
- "images/kollada.png"
- "images/marble.xpm"
- "images/ship63.pbm"
- "images/teapot.ppm"
- "images/trolltech.gif"
- )
-
- qt_internal_add_resource(tst_qimagewriter "qimagewriter"
- PREFIX
- "/"
- FILES
- ${qimagewriter_resource_files}
- )
-endif()
diff --git a/tests/auto/gui/image/qimagewriter/qimagewriter.qrc b/tests/auto/gui/image/qimagewriter/qimagewriter.qrc
deleted file mode 100644
index 29b036e303..0000000000
--- a/tests/auto/gui/image/qimagewriter/qimagewriter.qrc
+++ /dev/null
@@ -1,16 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>images/beavis.jpg</file>
- <file>images/colorful.bmp</file>
- <file>images/earth.gif</file>
- <file>images/font.bmp</file>
- <file>images/gnus.xbm</file>
- <file>images/kollada.png</file>
- <file>images/marble.xpm</file>
- <file>images/ship63.pbm</file>
- <file>images/teapot.ppm</file>
- <file>images/trolltech.gif</file>
- <file>images/YCbCr_cmyk.jpg</file>
- <file>images/YCbCr_rgb.jpg</file>
- </qresource>
-</RCC>
diff --git a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
index 49a4504d2a..1059cc48ab 100644
--- a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
+++ b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QTest>
#include <QDebug>
@@ -36,12 +11,17 @@
#include <QSet>
#include <QTemporaryDir>
#include <QTemporaryFile>
+#include <QSaveFile>
#ifdef Q_OS_UNIX // for geteuid()
# include <sys/types.h>
# include <unistd.h>
#endif
+#ifdef Q_OS_INTEGRITY
+#include "qplatformdefs.h"
+#endif
+
#include <algorithm>
typedef QMap<QString, QString> QStringMap;
@@ -75,6 +55,7 @@ private slots:
void saveWithNoFormat();
void saveToTemporaryFile();
+ void saveToSaveFile();
void writeEmpty();
@@ -121,7 +102,7 @@ void tst_QImageWriter::getSetCheck()
QCOMPARE((QIODevice *) var1, obj1.device());
// The class should possibly handle a 0-pointer as a device, since
- // there is a default contructor, so it's "handling" a 0 device by default.
+ // there is a default constructor, so it's "handling" a 0 device by default.
// For example: QMovie::setDevice(0) works just fine
obj1.setDevice((QIODevice *)0);
QCOMPARE((QIODevice *) 0, obj1.device());
@@ -275,6 +256,8 @@ void tst_QImageWriter::writeImage2()
QFETCH(QByteArray, format);
QFETCH(QImage, image);
+ SKIP_IF_UNSUPPORTED(format);
+
//we reduce the scope of writer so that it closes the associated file
// and QFile::remove can actually work
{
@@ -530,6 +513,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