From 17b0dda3004acd2189d3cda510b27b06e7dfc112 Mon Sep 17 00:00:00 2001 From: alex-z Date: Mon, 4 Mar 2024 14:00:20 +0100 Subject: [PATCH] Unit tests for federated share activity actions Signed-off-by: alex-z --- test/activitylistmodeltestutils.cpp | 35 +++++++++++++++++++++++++++++ test/testactivitylistmodel.cpp | 8 +++++++ 2 files changed, 43 insertions(+) diff --git a/test/activitylistmodeltestutils.cpp b/test/activitylistmodeltestutils.cpp index 69c793895..2cdf5a003 100644 --- a/test/activitylistmodeltestutils.cpp +++ b/test/activitylistmodeltestutils.cpp @@ -403,6 +403,41 @@ void FakeRemoteActivityStorage::initActivityData() _startingId++; } + + for (quint32 i = 0; i < _numItemsToInsert; i++) { + QJsonObject activity; + activity.insert(QStringLiteral("activity_id"), _startingId); + activity.insert(QStringLiteral("object_type"), "remote_share"); + activity.insert(QStringLiteral("subject"), QStringLiteral("You received document.docx as a remote share from admin@https://example.de")); + activity.insert(QStringLiteral("subjectRich"), QStringLiteral("You received {share} as a remote share from {user}")); + activity.insert(QStringLiteral("message"), QStringLiteral("")); + activity.insert(QStringLiteral("object_name"), QStringLiteral("")); + activity.insert(QStringLiteral("datetime"), QDateTime::currentDateTime().toString(Qt::ISODate)); + activity.insert(QStringLiteral("icon"), QStringLiteral("http://example.de/core/img/actions/share.svg")); + + QJsonArray actionsArray; + + QJsonObject primaryAction; + primaryAction.insert(QStringLiteral("label"), QStringLiteral("Accept")); + primaryAction.insert(QStringLiteral("link"), QStringLiteral("/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/6")); + primaryAction.insert(QStringLiteral("type"), QStringLiteral("POST")); + primaryAction.insert(QStringLiteral("primary"), true); + actionsArray.push_back(primaryAction); + + QJsonObject secondaryAction; + secondaryAction.insert(QStringLiteral("label"), QStringLiteral("Decline")); + secondaryAction.insert(QStringLiteral("link"), QString(QStringLiteral("/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/6"))); + secondaryAction.insert(QStringLiteral("type"), QStringLiteral("DELETE")); + secondaryAction.insert(QStringLiteral("primary"), false); + actionsArray.push_back(secondaryAction); + + activity.insert(QStringLiteral("actions"), actionsArray); + + _activityData.push_back(activity); + + _startingId++; + } + _startingId--; } diff --git a/test/testactivitylistmodel.cpp b/test/testactivitylistmodel.cpp index f5a69b3ea..d238e3dfd 100644 --- a/test/testactivitylistmodel.cpp +++ b/test/testactivitylistmodel.cpp @@ -297,6 +297,14 @@ private slots: QVERIFY(actionsLinksContextMenu.isEmpty()); } + // remote shares must have 'Accept' and 'Decline' actions + if (objectType == QStringLiteral("remote_share")) { + QVERIFY(actionsLinks.size() == 2); + QVERIFY(actionsLinks[0].value()._primary); + QVERIFY(actionsLinks[0].value()._verb == QStringLiteral("POST")); + QVERIFY(actionsLinks[1].value()._verb == QStringLiteral("DELETE")); + } + if ((objectType == QStringLiteral("chat") || objectType == QStringLiteral("call") || objectType == QStringLiteral("room"))) {