diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8a9d245b4..69ebc08d5 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -64,6 +64,7 @@ nextcloud_add_test(IconUtils) nextcloud_add_test(SetUserStatusDialog) nextcloud_add_test(UnifiedSearchListmodel) nextcloud_add_test(ActivityListModel) +nextcloud_add_test(SortedActivityListModel) nextcloud_add_test(ActivityData) nextcloud_add_test(TalkReply) nextcloud_add_test(LockFile) diff --git a/test/testsortedactivitylistmodel.cpp b/test/testsortedactivitylistmodel.cpp new file mode 100644 index 000000000..7a3f6b125 --- /dev/null +++ b/test/testsortedactivitylistmodel.cpp @@ -0,0 +1,89 @@ +/* + * Copyright (C) by Claudio Cambra + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "activitylistmodeltestutils.h" +#include "syncenginetestutils.h" +#include "syncresult.h" +#include "tray/sortedactivitylistmodel.h" + +#include +#include +#include +#include + +using namespace ActivityListModelTestUtils; + +class TestSortedActivityListModel : public QObject +{ + Q_OBJECT + +public: + TestSortedActivityListModel() = default; + ~TestSortedActivityListModel() override + { + OCC::AccountManager::instance()->deleteAccount(accountState.data()); + } + + QScopedPointer fakeQnam; + OCC::AccountPtr account; + QScopedPointer accountState; + + OCC::Activity testNotificationActivity; + OCC::Activity testSyncResultErrorActivity; + OCC::Activity testSyncFileItemActivity; + OCC::Activity testFileIgnoredActivity; + + QSharedPointer testingSortedALM() { + const auto model = new TestingALM; + model->setAccountState(accountState.data()); + + QSharedPointer sortedModel(new OCC::SortedActivityListModel); + QAbstractItemModelTester sortedModelTester(sortedModel.data()); + + return sortedModel; + } + +private slots: + void initTestCase() + { + fakeQnam.reset(new FakeQNAM({})); + account = OCC::Account::create(); + account->setCredentials(new FakeCredentials{fakeQnam.data()}); + account->setUrl(QUrl(("http://example.de"))); + + accountState.reset(new OCC::AccountState(account)); + + fakeQnam->setOverride([this](QNetworkAccessManager::Operation op, const QNetworkRequest &req, QIODevice *device) { + Q_UNUSED(device) + return almTestQnamOverride(fakeQnam.data(), + op, + req, + accountState->account()->url().toString(), + this); + }); + + OCC::AccountManager::instance()->addAccount(account); + + const auto accName = accountState->account()->displayName(); + const auto accUrl = accountState->account()->url(); + + testNotificationActivity = exampleNotificationActivity(accName); + testSyncResultErrorActivity = exampleSyncResultErrorActivity(accName); + testSyncFileItemActivity = exampleSyncFileItemActivity(accName, accUrl); + testFileIgnoredActivity = exampleFileIgnoredActivity(accName, accUrl); + }; +}; + +QTEST_MAIN(TestSortedActivityListModel) +#include "testsortedactivitylistmodel.moc"