File indexing completed on 2024-09-22 04:50:38
0001 /* 0002 SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "imagescalingtest.h" 0008 #include "../imagescaling.h" 0009 #include "settings/messagecomposersettings.h" 0010 #include <QStandardPaths> 0011 #include <QTest> 0012 0013 ImageScalingTest::ImageScalingTest(QObject *parent) 0014 : QObject(parent) 0015 { 0016 } 0017 0018 ImageScalingTest::~ImageScalingTest() = default; 0019 0020 void ImageScalingTest::initTestCase() 0021 { 0022 QStandardPaths::setTestModeEnabled(true); 0023 } 0024 0025 void ImageScalingTest::shouldHaveDefaultValue() 0026 { 0027 MessageComposer::ImageScaling scaling; 0028 // Image is empty 0029 QVERIFY(!scaling.resizeImage()); 0030 QVERIFY(scaling.generateNewName().isEmpty()); 0031 } 0032 0033 void ImageScalingTest::shouldHaveRenameFile_data() 0034 { 0035 QTest::addColumn<QString>("input"); 0036 QTest::addColumn<QString>("output"); 0037 QTest::addColumn<QByteArray>("format"); 0038 QTest::addColumn<QString>("saveasformat"); 0039 QTest::newRow("no rename png when file is empty") << QString() << QString() << QByteArray("image/png") << QStringLiteral("PNG"); 0040 QTest::newRow("no rename jpg when file is empty") << QString() << QString() << QByteArray("image/jpeg") << QStringLiteral("PNG"); 0041 QTest::newRow("no rename to png") << QStringLiteral("foo.jpeg") << QStringLiteral("foo.jpeg") << QByteArray("image/jpeg") << QStringLiteral("PNG"); 0042 QTest::newRow("no rename to jpeg") << QStringLiteral("foo.png") << QStringLiteral("foo.png") << QByteArray("image/png") << QStringLiteral("JPG"); 0043 QTest::newRow("rename to jpeg") << QStringLiteral("foo.png") << QStringLiteral("foo.jpg") << QByteArray("image/mng") << QStringLiteral("JPG"); 0044 QTest::newRow("rename to png") << QStringLiteral("foo.jpg") << QStringLiteral("foo.png") << QByteArray("image/mng") << QStringLiteral("PNG"); 0045 } 0046 0047 void ImageScalingTest::shouldHaveRenameFile() 0048 { 0049 QFETCH(QString, input); 0050 QFETCH(QString, output); 0051 QFETCH(QByteArray, format); 0052 QFETCH(QString, saveasformat); 0053 0054 MessageComposer::MessageComposerSettings::self()->setWriteFormat(saveasformat); 0055 MessageComposer::MessageComposerSettings::self()->save(); 0056 MessageComposer::ImageScaling scaling; 0057 scaling.setName(input); 0058 scaling.setMimetype(format); 0059 QCOMPARE(scaling.generateNewName(), output); 0060 } 0061 0062 void ImageScalingTest::shouldHaveChangeMimetype_data() 0063 { 0064 QTest::addColumn<QByteArray>("initialmimetype"); 0065 QTest::addColumn<QByteArray>("newmimetype"); 0066 QTest::addColumn<QString>("format"); 0067 0068 QTest::newRow("no change mimetype when empty") << QByteArray() << QByteArray() << QStringLiteral("PNG"); 0069 QTest::newRow("no change mimetype when empty jpeg") << QByteArray() << QByteArray() << QStringLiteral("JPG"); 0070 QTest::newRow("no change mimetype when jpeg (same)") << QByteArray("image/jpeg") << QByteArray("image/jpeg") << QStringLiteral("JPG"); 0071 QTest::newRow("no change mimetype when jpeg") << QByteArray("image/jpeg") << QByteArray("image/jpeg") << QStringLiteral("PNG"); 0072 0073 QTest::newRow("no change mimetype when png (same)") << QByteArray("image/png") << QByteArray("image/png") << QStringLiteral("JPG"); 0074 QTest::newRow("no change mimetype when png") << QByteArray("image/png") << QByteArray("image/png") << QStringLiteral("PNG"); 0075 0076 QTest::newRow("change mimetype when png") << QByteArray("image/mng") << QByteArray("image/png") << QStringLiteral("PNG"); 0077 QTest::newRow("change mimetype when jpeg") << QByteArray("image/mng") << QByteArray("image/jpeg") << QStringLiteral("JPG"); 0078 0079 QTest::newRow("When format is not defined but png") << QByteArray("image/png") << QByteArray("image/png") << QString(); 0080 QTest::newRow("When format is not defined but jpeg") << QByteArray("image/jpeg") << QByteArray("image/jpeg") << QString(); 0081 0082 QTest::newRow("When format is not defined but other mimetype (return png)") << QByteArray("image/mng") << QByteArray("image/png") << QString(); 0083 } 0084 0085 void ImageScalingTest::shouldHaveChangeMimetype() 0086 { 0087 QFETCH(QByteArray, initialmimetype); 0088 QFETCH(QByteArray, newmimetype); 0089 QFETCH(QString, format); 0090 0091 MessageComposer::MessageComposerSettings::self()->setWriteFormat(format); 0092 MessageComposer::MessageComposerSettings::self()->save(); 0093 MessageComposer::ImageScaling scaling; 0094 scaling.setMimetype(initialmimetype); 0095 QCOMPARE(scaling.mimetype(), newmimetype); 0096 } 0097 0098 QTEST_MAIN(ImageScalingTest) 0099 0100 #include "moc_imagescalingtest.cpp"