Move TestingALM to activitylistmodeltestutils
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 28 Feb 2023 22:59:27 +0000 (23:59 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 25 Jul 2023 00:40:27 +0000 (08:40 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
test/CMakeLists.txt
test/activitylistmodeltestutils.cpp
test/activitylistmodeltestutils.h
test/testactivitylistmodel.cpp

index a8ccda7edec5ce93662d58f563ee4b888f57691b..8a9d245b4c0186633e2c927a908249a92b80824a 100644 (file)
@@ -6,13 +6,13 @@ set(CMAKE_AUTOMOC TRUE)
 
 add_library(testutils
   STATIC
-  activitylistmodeltestutils.cpp
   syncenginetestutils.cpp
   pushnotificationstestutils.cpp
   themeutils.cpp
   testhelper.cpp
   sharetestutils.cpp
   endtoendtestutils.cpp
+  activitylistmodeltestutils.cpp
 )
 
 target_link_libraries(testutils PUBLIC Nextcloud::sync Qt5::Test)
index 72d40b15d0c327eecb66f8c7987c57989a0ca1f5..348cd7cb67d49e14235f39dc5879775067f39f85 100644 (file)
@@ -323,3 +323,50 @@ int FakeRemoteActivityStorage::startingIdLast() const
 {
     return _startingId;
 }
+
+
+void TestingALM::startFetchJob()
+{
+    auto *job = new OCC::JsonApiJob(
+        accountState()->account(), QLatin1String("ocs/v2.php/apps/activity/api/v2/activity"), this);
+    QObject::connect(this, &TestingALM::activityJobStatusCode, this, &TestingALM::slotProcessReceivedActivities);
+    QObject::connect(job, &OCC::JsonApiJob::jsonReceived, this, &TestingALM::activitiesReceived);
+
+    QUrlQuery params;
+    params.addQueryItem(QLatin1String("since"), QString::number(currentItem()));
+    params.addQueryItem(QLatin1String("limit"), QString::number(50));
+    job->addQueryParams(params);
+
+    setAndRefreshCurrentlyFetching(true);
+    job->start();
+}
+
+void TestingALM::slotProcessReceivedActivities()
+{
+    if (rowCount() > _numRowsPrev) {
+        auto finalListCopy = finalList();
+        for (int i = _numRowsPrev; i < rowCount(); ++i) {
+            const auto modelIndex = index(i, 0);
+            auto activity = finalListCopy.at(modelIndex.row());
+            if (activity._links.isEmpty()) {
+                const auto activityJsonObject = FakeRemoteActivityStorage::instance()->activityById(activity._id);
+
+                if (!activityJsonObject.isNull()) {
+                    // because "_links" are normally populated within the notificationhandler.cpp, which we don't run as part of this unit test, we have to fill them here
+                    // TODO: move the logic to populate "_links" to "activitylistmodel.cpp"
+                    auto actions = activityJsonObject.toObject().value("actions").toArray();
+                    foreach (auto action, actions) {
+                        activity._links.append(OCC::ActivityLink::createFomJsonObject(action.toObject()));
+                    }
+
+                    finalListCopy[modelIndex.row()] = activity;
+                }
+            }
+        }
+
+        setFinalList(finalListCopy);
+    }
+    _numRowsPrev = rowCount();
+    setAndRefreshCurrentlyFetching(false);
+    emit activitiesProcessed();
+}
index d6dc042b384035002a53c657fc23cfc17847feaf..91dc030fed59645b16d465de1f6590d79b1e0114 100644 (file)
 #include <QJsonArray>
 #include <QVariantMap>
 
+#include "gui/tray/activitylistmodel.h"
+
+#include "libsync/account.h"
+#include "gui/accountstate.h"
+#include "gui/accountmanager.h"
+
 #pragma once
 
 class QByteArray;
@@ -46,3 +52,22 @@ private:
 
     static FakeRemoteActivityStorage *_instance;
 };
+
+class TestingALM : public OCC::ActivityListModel
+{
+    Q_OBJECT
+
+public:
+    TestingALM() = default;
+
+    void startFetchJob() override;
+
+public slots:
+    void slotProcessReceivedActivities();
+
+signals:
+    void activitiesProcessed();
+
+private:
+    int _numRowsPrev = 0;
+};
index b280119076abb3e0455c958c03c2cb137f4497e4..cacc1364c001a11d360b906de911f64f35e27175 100644 (file)
  * for more details.
  */
 
-#include "gui/tray/activitylistmodel.h"
-
-#include "account.h"
-#include "accountstate.h"
-#include "accountmanager.h"
 #include "activitylistmodeltestutils.h"
 #include "syncenginetestutils.h"
 #include "syncresult.h"
@@ -38,66 +33,6 @@ static QByteArray fake500Response = R"(
 {"ocs":{"meta":{"status":"failure","statuscode":500,"message":"Internal Server Error.\n"},"data":[]}}
 )";
 
-class TestingALM : public OCC::ActivityListModel
-{
-    Q_OBJECT
-
-public:
-    TestingALM() = default;
-
-    void startFetchJob() override
-    {
-        auto *job = new OCC::JsonApiJob(
-            accountState()->account(), QLatin1String("ocs/v2.php/apps/activity/api/v2/activity"), this);
-        QObject::connect(this, &TestingALM::activityJobStatusCode, this, &TestingALM::slotProcessReceivedActivities);
-        QObject::connect(job, &OCC::JsonApiJob::jsonReceived, this, &TestingALM::activitiesReceived);
-
-        QUrlQuery params;
-        params.addQueryItem(QLatin1String("since"), QString::number(currentItem()));
-        params.addQueryItem(QLatin1String("limit"), QString::number(50));
-        job->addQueryParams(params);
-
-        setAndRefreshCurrentlyFetching(true);
-        job->start();
-    }
-
-public slots:
-    void slotProcessReceivedActivities()
-    {
-        if (rowCount() > _numRowsPrev) {
-            auto finalListCopy = finalList();
-            for (int i = _numRowsPrev; i < rowCount(); ++i) {
-                const auto modelIndex = index(i, 0);
-                auto activity = finalListCopy.at(modelIndex.row());
-                if (activity._links.isEmpty()) {
-                    const auto activityJsonObject = FakeRemoteActivityStorage::instance()->activityById(activity._id);
-
-                    if (!activityJsonObject.isNull()) {
-                        // because "_links" are normally populated within the notificationhandler.cpp, which we don't run as part of this unit test, we have to fill them here
-                        // TODO: move the logic to populate "_links" to "activitylistmodel.cpp"
-                        auto actions = activityJsonObject.toObject().value("actions").toArray();
-                        foreach (auto action, actions) {
-                            activity._links.append(OCC::ActivityLink::createFomJsonObject(action.toObject()));
-                        }
-
-                        finalListCopy[modelIndex.row()] = activity;
-                    }
-                }
-            }
-
-            setFinalList(finalListCopy);
-        }
-        _numRowsPrev = rowCount();
-        setAndRefreshCurrentlyFetching(false);
-        emit activitiesProcessed();
-    }
-signals:
-    void activitiesProcessed();
-
-private:
-    int _numRowsPrev = 0;
-};
-
 class TestActivityListModel : public QObject
 {
     Q_OBJECT