File indexing completed on 2024-05-05 05:01:18
0001 // SPDX-FileCopyrightText: 2023 James Graham <james.h.graham@protonmail.com> 0002 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0003 0004 #include <QObject> 0005 #include <QTest> 0006 #include <qglobal.h> 0007 #include <qtestcase.h> 0008 0009 #include <cmath> 0010 0011 #include "mediasizehelper.h" 0012 #include "neochatconfig.h" 0013 0014 class MediaSizeHelperTest : public QObject 0015 { 0016 Q_OBJECT 0017 0018 private Q_SLOTS: 0019 void uninitialized(); 0020 0021 void limits_data(); 0022 void limits(); 0023 }; 0024 0025 void MediaSizeHelperTest::uninitialized() 0026 { 0027 MediaSizeHelper mediasizehelper; 0028 QCOMPARE(mediasizehelper.currentSize(), QSize(540, qRound(qreal(NeoChatConfig::self()->mediaMaxWidth()) / qreal(16.0) * qreal(9.0)))); 0029 } 0030 0031 void MediaSizeHelperTest::limits_data() 0032 { 0033 QTest::addColumn<qreal>("mediaWidth"); 0034 QTest::addColumn<qreal>("mediaHeight"); 0035 QTest::addColumn<qreal>("contentMaxWidth"); 0036 QTest::addColumn<qreal>("contentMaxHeight"); 0037 QTest::addColumn<QSize>("currentSize"); 0038 0039 QTest::newRow("media smaller than content limits") << qreal(200) << qreal(150) << qreal(400) << qreal(900) << QSize(200, 150); 0040 QTest::newRow("media smaller than max limits") << qreal(200) << qreal(150) << qreal(-1) << qreal(-1) << QSize(200, 150); 0041 0042 QTest::newRow("limit by max width") << qreal(600) << qreal(50) << qreal(-1) << qreal(-1) << QSize(540, qRound(qreal(540) / (qreal(600) / qreal(50)))); 0043 QTest::newRow("limit by max height") << qreal(50) << qreal(600) << qreal(-1) << qreal(-1) << QSize(qRound(qreal(540) * (qreal(50) / qreal(600))), 540); 0044 0045 QTest::newRow("limit by content width") << qreal(600) << qreal(50) << qreal(300) << qreal(-1) << QSize(300, qRound(qreal(300) / (qreal(600) / qreal(50)))); 0046 QTest::newRow("limit by content height") << qreal(50) << qreal(600) << qreal(-1) << qreal(300) << QSize(qRound(qreal(300) * (qreal(50) / qreal(600))), 300); 0047 0048 QTest::newRow("limit by content width tall media") 0049 << qreal(400) << qreal(600) << qreal(100) << qreal(400) << QSize(100, qRound(qreal(100) / (qreal(400) / qreal(600)))); 0050 QTest::newRow("limit by content height wide media") 0051 << qreal(1000) << qreal(600) << qreal(400) << qreal(100) << QSize(qRound(qreal(100) * (qreal(1000) / qreal(600))), 100); 0052 } 0053 0054 void MediaSizeHelperTest::limits() 0055 { 0056 QFETCH(qreal, mediaWidth); 0057 QFETCH(qreal, mediaHeight); 0058 QFETCH(qreal, contentMaxWidth); 0059 QFETCH(qreal, contentMaxHeight); 0060 QFETCH(QSize, currentSize); 0061 0062 MediaSizeHelper mediasizehelper; 0063 mediasizehelper.setMediaWidth(mediaWidth); 0064 mediasizehelper.setMediaHeight(mediaHeight); 0065 mediasizehelper.setContentMaxWidth(contentMaxWidth); 0066 mediasizehelper.setContentMaxHeight(contentMaxHeight); 0067 0068 QCOMPARE(mediasizehelper.currentSize(), currentSize); 0069 } 0070 0071 QTEST_GUILESS_MAIN(MediaSizeHelperTest) 0072 #include "mediasizehelpertest.moc"