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"