File indexing completed on 2024-05-12 16:25:35

0001 /*
0002    SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "videoconferenceinfotest.h"
0008 #include "ruqola_autotest_helper.h"
0009 #include "videoconference/videoconferenceinfo.h"
0010 
0011 QTEST_GUILESS_MAIN(VideoConferenceInfoTest)
0012 VideoConferenceInfoTest::VideoConferenceInfoTest(QObject *parent)
0013     : QObject{parent}
0014 {
0015 }
0016 
0017 void VideoConferenceInfoTest::shouldHaveDefaultValues()
0018 {
0019     VideoConferenceInfo info;
0020     QVERIFY(info.url().isEmpty());
0021     QCOMPARE(info.status(), -1);
0022     QVERIFY(!info.ringing());
0023     QVERIFY(info.roomId().isEmpty());
0024     QCOMPARE(info.conferenceType(), VideoConferenceInfo::VideoConferenceType::Unknown);
0025     QVERIFY(info.providerName().isEmpty());
0026     QVERIFY(info.users().isEmpty());
0027     QVERIFY(info.messageId().isEmpty());
0028     QVERIFY(info.blockId().isEmpty());
0029     QVERIFY(!info.isValid());
0030     QVERIFY(!info.canJoin());
0031 }
0032 
0033 void VideoConferenceInfoTest::shouldLoadVideoConferenceInfo_data()
0034 {
0035     QTest::addColumn<QString>("fileName");
0036     QTest::addColumn<VideoConferenceInfo>("videoconferenceInfo");
0037     {
0038         VideoConferenceInfo info;
0039         info.setProviderName(QStringLiteral("jitsi"));
0040         info.setUrl(QStringLiteral("https://bla/RocketChat63ebad0405c6c93252c0f337"));
0041         info.setConferenceType(VideoConferenceInfo::Conference);
0042         info.setRoomId(QStringLiteral("hE6RS3iv5ND5EGWC6"));
0043         info.setStatus(1);
0044         info.setRinging(false);
0045         info.setCreatedAtDateTime(1676389636880);
0046         info.setMessageId(QStringLiteral("NusivujrtX38F8too"));
0047         info.setBlockId(QStringLiteral("63ebad0405c6c93252c0f337"));
0048         QTest::addRow("videoconferenceinfo") << QStringLiteral("videoconferenceinfo") << info;
0049     }
0050     {
0051         VideoConferenceInfo info;
0052         info.setProviderName(QStringLiteral("jitsi"));
0053         info.setUrl(QStringLiteral("https://goo/RocketChat639593184ef3f3baa965910c"));
0054         info.setConferenceType(VideoConferenceInfo::Conference);
0055         info.setRoomId(QStringLiteral("hE6RS3iv5ND5EGWC6"));
0056         info.setStatus(2);
0057         info.setRinging(false);
0058         info.setCreatedAtDateTime(1670746904785);
0059         info.setEndedAtDateTime(1670835600213);
0060         User user;
0061         user.setUserName(QStringLiteral("laurent"));
0062         user.setName(QStringLiteral("Laurent Montel"));
0063         user.setUserId(QStringLiteral("uKK39zoewTkdacidH"));
0064         user.setUtcOffset(0);
0065         user.setActive(true);
0066         user.setStatus(User::PresenceStatus::Unknown);
0067         info.setUsers({user});
0068         info.setMessageId(QStringLiteral("PmWesYrnRJkyTTi"));
0069         info.setBlockId(QStringLiteral("639593184ef3f3baa965910c"));
0070         QTest::addRow("videoconferenceinfo1") << QStringLiteral("videoconferenceinfo1") << info;
0071     }
0072 }
0073 
0074 void VideoConferenceInfoTest::shouldLoadVideoConferenceInfo()
0075 {
0076     QFETCH(QString, fileName);
0077     QFETCH(VideoConferenceInfo, videoconferenceInfo);
0078     const QString originalJsonFile = QLatin1String(RUQOLA_DATA_DIR) + QLatin1String("/videoconferenceinfo/") + fileName + QLatin1String(".json");
0079     const QJsonObject obj = AutoTestHelper::loadJsonObject(originalJsonFile);
0080 
0081     VideoConferenceInfo r;
0082     r.parse(obj);
0083     const bool result = (r == videoconferenceInfo);
0084     if (!result) {
0085         qDebug() << "result " << r;
0086         qDebug() << "expected " << videoconferenceInfo;
0087     }
0088     QVERIFY(result);
0089 }
0090 
0091 #include "moc_videoconferenceinfotest.cpp"