File indexing completed on 2024-05-19 05:22:18
0001 /* 0002 SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "gravatarresolvurljobtest.h" 0008 #include "../src/job/gravatarresolvurljob.h" 0009 #include "../src/misc/hash.h" 0010 #include <QTest> 0011 0012 GravatarResolvUrlJobTest::GravatarResolvUrlJobTest(QObject *parent) 0013 : QObject(parent) 0014 { 0015 } 0016 0017 GravatarResolvUrlJobTest::~GravatarResolvUrlJobTest() = default; 0018 0019 void GravatarResolvUrlJobTest::shouldHaveDefaultValue() 0020 { 0021 Gravatar::GravatarResolvUrlJob job; 0022 QVERIFY(job.email().isEmpty()); 0023 QCOMPARE(job.size(), 80); 0024 QCOMPARE(job.hasGravatar(), false); 0025 QCOMPARE(job.pixmap().isNull(), true); 0026 QCOMPARE(job.useDefaultPixmap(), false); 0027 QCOMPARE(job.useLibravatar(), false); 0028 QCOMPARE(job.fallbackGravatar(), true); 0029 } 0030 0031 void GravatarResolvUrlJobTest::shouldChangeValue() 0032 { 0033 Gravatar::GravatarResolvUrlJob job; 0034 bool useDefaultPixmap = true; 0035 job.setUseDefaultPixmap(useDefaultPixmap); 0036 QCOMPARE(job.useDefaultPixmap(), useDefaultPixmap); 0037 0038 useDefaultPixmap = false; 0039 job.setUseDefaultPixmap(useDefaultPixmap); 0040 QCOMPARE(job.useDefaultPixmap(), useDefaultPixmap); 0041 0042 bool useLibravatar = true; 0043 job.setUseLibravatar(useLibravatar); 0044 QCOMPARE(job.useLibravatar(), useLibravatar); 0045 0046 useLibravatar = false; 0047 job.setUseLibravatar(useLibravatar); 0048 QCOMPARE(job.useLibravatar(), useLibravatar); 0049 0050 bool fallBackGravatar = false; 0051 job.setFallbackGravatar(fallBackGravatar); 0052 QCOMPARE(job.fallbackGravatar(), fallBackGravatar); 0053 fallBackGravatar = true; 0054 job.setFallbackGravatar(fallBackGravatar); 0055 QCOMPARE(job.fallbackGravatar(), fallBackGravatar); 0056 } 0057 0058 void GravatarResolvUrlJobTest::shouldChangeSize() 0059 { 0060 Gravatar::GravatarResolvUrlJob job; 0061 int size = 50; 0062 job.setSize(size); 0063 QCOMPARE(job.size(), size); 0064 size = 0; 0065 job.setSize(size); 0066 QCOMPARE(job.size(), 80); 0067 0068 size = 10; 0069 job.setSize(size); 0070 QCOMPARE(job.size(), size); 0071 0072 size = 2048; 0073 job.setSize(size); 0074 QCOMPARE(job.size(), size); 0075 0076 size = 4096; 0077 job.setSize(size); 0078 QCOMPARE(job.size(), 2048); 0079 } 0080 0081 void GravatarResolvUrlJobTest::shouldAddSizeInUrl() 0082 { 0083 Gravatar::GravatarResolvUrlJob job; 0084 job.setEmail(QStringLiteral("foo@kde.org")); 0085 job.setSize(1024); 0086 job.setUseLibravatar(false); 0087 QUrl url = job.generateGravatarUrl(job.useLibravatar()); 0088 QCOMPARE(url, QUrl(QStringLiteral("https://secure.gravatar.com:/avatar/89b4e14cf2fc6d426275c019c6dc9de6?d=404&s=1024"))); 0089 job.setUseLibravatar(true); 0090 url = job.generateGravatarUrl(job.useLibravatar()); 0091 QCOMPARE(url, QUrl(QStringLiteral("https://seccdn.libravatar.org:/avatar/89b4e14cf2fc6d426275c019c6dc9de6?d=404&s=1024"))); 0092 } 0093 0094 void GravatarResolvUrlJobTest::shouldUseDefaultPixmap() 0095 { 0096 Gravatar::GravatarResolvUrlJob job; 0097 job.setEmail(QStringLiteral("foo@kde.org")); 0098 job.setSize(1024); 0099 job.setUseDefaultPixmap(true); 0100 QUrl url = job.generateGravatarUrl(job.useLibravatar()); 0101 QCOMPARE(url, QUrl(QStringLiteral("https://secure.gravatar.com:/avatar/89b4e14cf2fc6d426275c019c6dc9de6?s=1024"))); 0102 } 0103 0104 void GravatarResolvUrlJobTest::shouldUseHttps() 0105 { 0106 Gravatar::GravatarResolvUrlJob job; 0107 job.setEmail(QStringLiteral("foo@kde.org")); 0108 job.setSize(1024); 0109 job.setUseLibravatar(false); 0110 QUrl url = job.generateGravatarUrl(job.useLibravatar()); 0111 QCOMPARE(url, QUrl(QStringLiteral("https://secure.gravatar.com:/avatar/89b4e14cf2fc6d426275c019c6dc9de6?d=404&s=1024"))); 0112 job.setUseLibravatar(true); 0113 url = job.generateGravatarUrl(job.useLibravatar()); 0114 QCOMPARE(url, QUrl(QStringLiteral("https://seccdn.libravatar.org/avatar/89b4e14cf2fc6d426275c019c6dc9de6?d=404&s=1024"))); 0115 } 0116 0117 void GravatarResolvUrlJobTest::shouldNotStart() 0118 { 0119 Gravatar::GravatarResolvUrlJob job; 0120 QVERIFY(!job.canStart()); 0121 0122 job.setEmail(QStringLiteral("foo")); 0123 QVERIFY(!job.canStart()); 0124 0125 job.setEmail(QStringLiteral(" ")); 0126 QVERIFY(!job.canStart()); 0127 0128 job.setEmail(QStringLiteral("foo@kde.org")); 0129 QVERIFY(job.canStart()); 0130 } 0131 0132 void GravatarResolvUrlJobTest::shouldGenerateGravatarUrl_data() 0133 { 0134 QTest::addColumn<QString>("input"); 0135 QTest::addColumn<QString>("calculedhash"); 0136 QTest::addColumn<QUrl>("output"); 0137 QTest::addColumn<bool>("uselibravatar"); 0138 QTest::newRow("empty") << QString() << QString() << QUrl() << false; 0139 QTest::newRow("no domain") << QStringLiteral("foo") << QString() << QUrl() << false; 0140 QTest::newRow("validemail") << QStringLiteral("foo@kde.org") << QStringLiteral("89b4e14cf2fc6d426275c019c6dc9de6") 0141 << QUrl(QStringLiteral("https://secure.gravatar.com:/avatar/89b4e14cf2fc6d426275c019c6dc9de6?d=404")) << false; 0142 QTest::newRow("validemaillibravatar") << QStringLiteral("foo@kde.org") << QStringLiteral("89b4e14cf2fc6d426275c019c6dc9de6") 0143 << QUrl(QStringLiteral("https://seccdn.libravatar.org/avatar/89b4e14cf2fc6d426275c019c6dc9de6?d=404")) << true; 0144 } 0145 0146 void GravatarResolvUrlJobTest::shouldGenerateGravatarUrl() 0147 { 0148 QFETCH(QString, input); 0149 QFETCH(QString, calculedhash); 0150 QFETCH(QUrl, output); 0151 QFETCH(bool, uselibravatar); 0152 Gravatar::GravatarResolvUrlJob job; 0153 job.setEmail(input); 0154 job.setUseLibravatar(uselibravatar); 0155 QUrl url = job.generateGravatarUrl(job.useLibravatar()); 0156 QCOMPARE(calculedhash, job.calculatedHash().hexString()); 0157 QCOMPARE(url, output); 0158 } 0159 0160 QTEST_MAIN(GravatarResolvUrlJobTest) 0161 0162 #include "moc_gravatarresolvurljobtest.cpp"