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"