File indexing completed on 2025-02-02 04:51:30
0001 /* 0002 SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "roomscleanhistoryjobtest.h" 0008 #include "rooms/roomscleanhistoryjob.h" 0009 #include "ruqola_restapi_helper.h" 0010 #include <QJsonDocument> 0011 QTEST_GUILESS_MAIN(RoomsCleanHistoryJobTest) 0012 using namespace RocketChatRestApi; 0013 RoomsCleanHistoryJobTest::RoomsCleanHistoryJobTest(QObject *parent) 0014 : QObject(parent) 0015 { 0016 } 0017 0018 void RoomsCleanHistoryJobTest::shouldHaveDefaultValue() 0019 { 0020 RoomsCleanHistoryJob job; 0021 QVERIFY(!job.cleanHistoryInfo().isValid()); 0022 verifyDefaultValue(&job); 0023 QVERIFY(job.requireHttpAuthentication()); 0024 QVERIFY(!job.hasQueryParameterSupport()); 0025 0026 RoomsCleanHistoryJob::CleanHistoryInfo info; 0027 QVERIFY(!info.isValid()); 0028 QVERIFY(!info.inclusive); 0029 QVERIFY(!info.excludePinned); 0030 QVERIFY(!info.filesOnly); 0031 QVERIFY(!info.ignoreThreads); 0032 QVERIFY(!info.ignoreDiscussion); 0033 QVERIFY(info.users.isEmpty()); 0034 QVERIFY(info.roomId.isEmpty()); 0035 QVERIFY(!info.oldest.isValid()); 0036 QVERIFY(!info.latest.isValid()); 0037 } 0038 0039 void RoomsCleanHistoryJobTest::shouldGenerateRequest() 0040 { 0041 RoomsCleanHistoryJob job; 0042 QNetworkRequest request = QNetworkRequest(QUrl()); 0043 verifyAuthentication(&job, request); 0044 QCOMPARE(request.url(), QUrl(QStringLiteral("http://www.kde.org/api/v1/rooms.cleanHistory"))); 0045 QCOMPARE(request.header(QNetworkRequest::ContentTypeHeader).toString(), QStringLiteral("application/json")); 0046 } 0047 0048 void RoomsCleanHistoryJobTest::shouldGenerateJson() 0049 { 0050 RoomsCleanHistoryJob job; 0051 RoomsCleanHistoryJob::CleanHistoryInfo info; 0052 const QString roomId = QStringLiteral("room1"); 0053 info.roomId = roomId; 0054 info.latest = QDateTime(QDate(2020, 12, 3), QTime(5, 7, 50)); 0055 info.oldest = QDateTime(QDate(2020, 3, 3), QTime(5, 7, 50)); 0056 job.setCleanHistoryInfo(info); 0057 QCOMPARE(job.json().toJson(QJsonDocument::Compact), 0058 QStringLiteral(R"({"latest":"2020-12-03T05:07:50.000","oldest":"2020-03-03T05:07:50.000","roomId":"%1"})").arg(roomId).toLatin1()); 0059 info.inclusive = true; 0060 job.setCleanHistoryInfo(info); 0061 QCOMPARE( 0062 job.json().toJson(QJsonDocument::Compact), 0063 QStringLiteral(R"({"inclusive":true,"latest":"2020-12-03T05:07:50.000","oldest":"2020-03-03T05:07:50.000","roomId":"%1"})").arg(roomId).toLatin1()); 0064 info.ignoreThreads = true; 0065 job.setCleanHistoryInfo(info); 0066 QCOMPARE(job.json().toJson(QJsonDocument::Compact), 0067 QStringLiteral(R"({"ignoreThreads":true,"inclusive":true,"latest":"2020-12-03T05:07:50.000","oldest":"2020-03-03T05:07:50.000","roomId":"%1"})") 0068 .arg(roomId) 0069 .toLatin1()); 0070 const QStringList users = {QStringLiteral("bla"), QStringLiteral("bli")}; 0071 info.users = users; 0072 job.setCleanHistoryInfo(info); 0073 QCOMPARE( 0074 job.json().toJson(QJsonDocument::Compact), 0075 QStringLiteral( 0076 R"({"ignoreThreads":true,"inclusive":true,"latest":"2020-12-03T05:07:50.000","oldest":"2020-03-03T05:07:50.000","roomId":"%1","users":["bla","bli"]})") 0077 .arg(roomId) 0078 .toLatin1()); 0079 info.ignoreDiscussion = true; 0080 job.setCleanHistoryInfo(info); 0081 QCOMPARE( 0082 job.json().toJson(QJsonDocument::Compact), 0083 QStringLiteral( 0084 R"({"ignoreDiscussion":true,"ignoreThreads":true,"inclusive":true,"latest":"2020-12-03T05:07:50.000","oldest":"2020-03-03T05:07:50.000","roomId":"%1","users":["bla","bli"]})") 0085 .arg(roomId) 0086 .toLatin1()); 0087 } 0088 0089 void RoomsCleanHistoryJobTest::shouldNotStarting() 0090 { 0091 RoomsCleanHistoryJob job; 0092 0093 RestApiMethod method; 0094 method.setServerUrl(QStringLiteral("http://www.kde.org")); 0095 job.setRestApiMethod(&method); 0096 0097 QNetworkAccessManager mNetworkAccessManager; 0098 job.setNetworkAccessManager(&mNetworkAccessManager); 0099 QVERIFY(!job.canStart()); 0100 const QString auth = QStringLiteral("foo"); 0101 const QString userId = QStringLiteral("foo"); 0102 job.setAuthToken(auth); 0103 QVERIFY(!job.canStart()); 0104 job.setUserId(userId); 0105 QVERIFY(!job.canStart()); 0106 RoomsCleanHistoryJob::CleanHistoryInfo info; 0107 const QString roomId = QStringLiteral("room1"); 0108 info.roomId = roomId; 0109 job.setCleanHistoryInfo(info); 0110 QVERIFY(!job.canStart()); 0111 0112 info.latest = QDateTime(QDate(2020, 12, 3), QTime(5, 7, 50)); 0113 info.oldest = QDateTime(QDate(2020, 3, 3), QTime(5, 7, 50)); 0114 job.setCleanHistoryInfo(info); 0115 QVERIFY(job.canStart()); 0116 } 0117 0118 #include "moc_roomscleanhistoryjobtest.cpp"