diff options
Diffstat (limited to 'tests/auto/gui/image/qimagewriter')
-rw-r--r-- | tests/auto/gui/image/qimagewriter/CMakeLists.txt | 41 | ||||
-rw-r--r-- | tests/auto/gui/image/qimagewriter/qimagewriter.qrc | 16 | ||||
-rw-r--r-- | tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp | 92 |
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 |