File indexing completed on 2025-02-02 04:51:27
0001 /* 0002 SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "loginjobtest.h" 0008 #include "authentication/loginjob.h" 0009 #include "restapimethod.h" 0010 #include <QJsonDocument> 0011 #include <QTest> 0012 QTEST_GUILESS_MAIN(LoginJobTest) 0013 0014 using namespace RocketChatRestApi; 0015 LoginJobTest::LoginJobTest(QObject *parent) 0016 : QObject(parent) 0017 { 0018 } 0019 0020 void LoginJobTest::shouldHaveDefaultValue() 0021 { 0022 LoginJob job; 0023 QVERIFY(!job.restApiMethod()); 0024 QVERIFY(!job.networkAccessManager()); 0025 QVERIFY(!job.start()); 0026 QVERIFY(!job.requireHttpAuthentication()); 0027 QVERIFY(job.authToken().isEmpty()); 0028 QVERIFY(job.authCode().isEmpty()); 0029 QVERIFY(job.authMethod().isEmpty()); 0030 QVERIFY(job.userId().isEmpty()); 0031 QVERIFY(!job.restApiLogger()); 0032 QVERIFY(!job.hasQueryParameterSupport()); 0033 } 0034 0035 void LoginJobTest::shouldHaveArguments() 0036 { 0037 { 0038 LoginJob job; 0039 RestApiMethod method; 0040 method.setServerUrl(QStringLiteral("http://www.kde.org")); 0041 job.setRestApiMethod(&method); 0042 QVERIFY(!job.canStart()); 0043 QNetworkAccessManager mNetworkAccessManager; 0044 job.setNetworkAccessManager(&mNetworkAccessManager); 0045 QVERIFY(!job.canStart()); 0046 const QString auth = QStringLiteral("foo"); 0047 const QString userId = QStringLiteral("foo"); 0048 job.setAuthToken(auth); 0049 QVERIFY(!job.canStart()); 0050 job.setUserId(userId); 0051 QVERIFY(!job.canStart()); 0052 job.setPassword(QStringLiteral("bla")); 0053 QVERIFY(!job.canStart()); 0054 job.setUserName(QStringLiteral("foo")); 0055 QVERIFY(job.canStart()); 0056 } 0057 { 0058 LoginJob job; 0059 RestApiMethod method; 0060 method.setServerUrl(QStringLiteral("http://www.kde.org")); 0061 job.setRestApiMethod(&method); 0062 QVERIFY(!job.canStart()); 0063 QNetworkAccessManager mNetworkAccessManager; 0064 job.setNetworkAccessManager(&mNetworkAccessManager); 0065 QVERIFY(!job.canStart()); 0066 const QString auth = QStringLiteral("foo"); 0067 const QString userId = QStringLiteral("foo"); 0068 job.setAuthToken(auth); 0069 QVERIFY(!job.canStart()); 0070 job.setUserId(userId); 0071 QVERIFY(!job.canStart()); 0072 job.setResume(QStringLiteral("bla")); 0073 QVERIFY(job.canStart()); 0074 } 0075 } 0076 0077 void LoginJobTest::shouldGenerateLoginRequest() 0078 { 0079 LoginJob job; 0080 RestApiMethod method; 0081 method.setServerUrl(QStringLiteral("http://www.kde.org")); 0082 job.setRestApiMethod(&method); 0083 QNetworkRequest request = job.request(); 0084 QCOMPARE(request.url(), QUrl(QStringLiteral("http://www.kde.org/api/v1/login"))); 0085 } 0086 0087 void LoginJobTest::shouldGenerateJson() 0088 { 0089 { 0090 LoginJob job; 0091 const QString password(QStringLiteral("bla")); 0092 const QString username(QStringLiteral("foo")); 0093 job.setPassword(password); 0094 job.setUserName(username); 0095 QCOMPARE(job.json().toJson(QJsonDocument::Compact), QStringLiteral(R"({"password":"%1","user":"%2"})").arg(password, username).toLatin1()); 0096 const QString code(QStringLiteral("1213")); 0097 job.setCode(code); 0098 QCOMPARE(job.json().toJson(QJsonDocument::Compact), 0099 QStringLiteral(R"({"code":"%3","password":"%1","user":"%2"})").arg(password, username, code).toLatin1()); 0100 } 0101 { 0102 LoginJob job; 0103 const QString resume(QStringLiteral("bla")); 0104 job.setResume(resume); 0105 QCOMPARE(job.json().toJson(QJsonDocument::Compact), QStringLiteral(R"({"resume":"%1"})").arg(resume).toLatin1()); 0106 } 0107 } 0108 0109 #include "moc_loginjobtest.cpp"