File indexing completed on 2024-06-02 05:07:00
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 "roomsexportjobtest.h" 0008 #include "rooms/roomsexportjob.h" 0009 #include "ruqola_restapi_helper.h" 0010 #include <QJsonDocument> 0011 QTEST_GUILESS_MAIN(RoomsExportJobTest) 0012 using namespace RocketChatRestApi; 0013 RoomsExportJobTest::RoomsExportJobTest(QObject *parent) 0014 : QObject(parent) 0015 { 0016 } 0017 0018 void RoomsExportJobTest::shouldHaveDefaultValue() 0019 { 0020 RoomsExportJob job; 0021 QVERIFY(!job.roomExportInfo().isValid()); 0022 verifyDefaultValue(&job); 0023 QVERIFY(job.requireHttpAuthentication()); 0024 QVERIFY(!job.hasQueryParameterSupport()); 0025 0026 RoomsExportJob::RoomsExportInfo info; 0027 QVERIFY(!info.isValid()); 0028 QCOMPARE(info.fileFormat, RoomsExportJob::RoomsExportInfo::FileFormat::Unknown); 0029 QVERIFY(info.roomId.isEmpty()); 0030 QVERIFY(info.toUsers.isEmpty()); 0031 QVERIFY(info.toEmails.isEmpty()); 0032 QVERIFY(info.subject.isEmpty()); 0033 QVERIFY(info.messages.isEmpty()); 0034 QVERIFY(!info.dateFrom.isValid()); 0035 QVERIFY(!info.dateTo.isValid()); 0036 QVERIFY(!job.requireTwoFactorAuthentication()); 0037 } 0038 0039 void RoomsExportJobTest::shouldGenerateRequest() 0040 { 0041 RoomsExportJob job; 0042 QNetworkRequest request = QNetworkRequest(QUrl()); 0043 verifyAuthentication(&job, request); 0044 QCOMPARE(request.url(), QUrl(QStringLiteral("http://www.kde.org/api/v1/rooms.export"))); 0045 QCOMPARE(request.header(QNetworkRequest::ContentTypeHeader).toString(), QStringLiteral("application/json")); 0046 } 0047 0048 void RoomsExportJobTest::shouldGenerateJson() 0049 { 0050 RoomsExportJob job; 0051 RoomsExportJob::RoomsExportInfo info; 0052 // TODO 0053 const QString roomId = QStringLiteral("room1"); 0054 info.roomId = roomId; 0055 info.exportAs = RoomsExportJob::RoomsExportInfo::ExportAs::File; 0056 0057 info.dateFrom = QDateTime(QDate(2020, 12, 3), QTime(5, 7, 50)); 0058 info.dateTo = QDateTime(QDate(2020, 3, 3), QTime(5, 7, 50)); 0059 job.setRoomExportInfo(info); 0060 QCOMPARE(job.json().toJson(QJsonDocument::Compact), 0061 QStringLiteral(R"({"dateFrom":"2020-12-03T05:07:50.000","dateTo":"2020-03-03T05:07:50.000","rid":"%1","type":"file"})").arg(roomId).toLatin1()); 0062 // info.inclusive = true; 0063 // job.setCleanHistoryInfo(info); 0064 // QCOMPARE(job.json().toJson(QJsonDocument::Compact), 0065 // QStringLiteral(R"({"inclusive":true,"latest":"2020-12-03T04:07:50.000Z","oldest":"2020-03-03T04:07:50.000Z","roomId":"%1"})").arg(roomId).toLatin1()); 0066 // info.ignoreThreads = true; 0067 // job.setCleanHistoryInfo(info); 0068 // QCOMPARE(job.json().toJson(QJsonDocument::Compact), 0069 // QStringLiteral(R"({"ignoreThreads":true,"inclusive":true,"latest":"2020-12-03T04:07:50.000Z","oldest":"2020-03-03T04:07:50.000Z","roomId":"%1"})").arg(roomId).toLatin1()); 0070 // const QStringList users = {QStringLiteral("bla"), QStringLiteral("bli")}; 0071 // info.users = users; 0072 // job.setCleanHistoryInfo(info); 0073 // QCOMPARE(job.json().toJson(QJsonDocument::Compact), 0074 // QStringLiteral(R"({"ignoreThreads":true,"inclusive":true,"latest":"2020-12-03T04:07:50.000Z","oldest":"2020-03-03T04:07:50.000Z","roomId":"room1","users":["bla","bli"]})").arg(roomId).toLatin1()); 0075 } 0076 0077 void RoomsExportJobTest::shouldNotStarting() 0078 { 0079 RoomsExportJob job; 0080 0081 RestApiMethod method; 0082 method.setServerUrl(QStringLiteral("http://www.kde.org")); 0083 job.setRestApiMethod(&method); 0084 0085 QNetworkAccessManager mNetworkAccessManager; 0086 job.setNetworkAccessManager(&mNetworkAccessManager); 0087 QVERIFY(!job.canStart()); 0088 const QString auth = QStringLiteral("foo"); 0089 const QString userId = QStringLiteral("foo"); 0090 job.setAuthToken(auth); 0091 QVERIFY(!job.canStart()); 0092 job.setUserId(userId); 0093 QVERIFY(!job.canStart()); 0094 RoomsExportJob::RoomsExportInfo info; 0095 const QString roomId = QStringLiteral("room1"); 0096 info.roomId = roomId; 0097 job.setRoomExportInfo(info); 0098 QVERIFY(!job.canStart()); 0099 0100 // info.latest = QDateTime(QDate(2020, 12, 3), QTime(5, 7, 50)); 0101 // info.oldest = QDateTime(QDate(2020, 3, 3), QTime(5, 7, 50)); 0102 // job.setCleanHistoryInfo(info); 0103 // QVERIFY(job.canStart()); 0104 // TODO 0105 } 0106 0107 #include "moc_roomsexportjobtest.cpp"