File indexing completed on 2024-10-06 12:56:09
0001 // SPDX-FileCopyrightText: 2022 Carl Schwan <carl@carlschwan.eu> 0002 // SPDX-License-Identifier: GPL-3.0-or-later 0003 0004 #include <QtTest/QtTest> 0005 0006 #include "helperreply.h" 0007 #include "mockaccount.h" 0008 #include "search/searchmodel.h" 0009 #include <QAbstractItemModelTester> 0010 #include <QSignalSpy> 0011 0012 class SearchTest : public QObject 0013 { 0014 Q_OBJECT 0015 0016 private Q_SLOTS: 0017 void initTestCase() 0018 { 0019 } 0020 0021 void testModel() 0022 { 0023 auto account = new MockAccount(); 0024 AccountManager::instance().addAccount(account); 0025 AccountManager::instance().selectAccount(account); 0026 QUrl url = account->apiUrl("/api/v2/search"); 0027 url.setQuery(QUrlQuery{{"q", "myQuery"}}); 0028 account->registerGet(url, new TestReply("search-result.json", account)); 0029 0030 SearchModel searchModel; 0031 searchModel.search("myQuery"); 0032 0033 QCOMPARE(searchModel.rowCount({}), 3); 0034 QCOMPARE(searchModel.data(searchModel.index(0, 0), AbstractTimelineModel::TypeRole), SearchModel::Account); 0035 QCOMPARE(searchModel.data(searchModel.index(1, 0), AbstractTimelineModel::TypeRole), SearchModel::Status); 0036 QCOMPARE(searchModel.data(searchModel.index(0, 0), AbstractTimelineModel::AuthorIdentityRole).value<Identity *>()->avatarUrl(), 0037 QUrl("https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg")); 0038 QCOMPARE(searchModel.data(searchModel.index(1, 0), AbstractTimelineModel::AuthorIdentityRole).value<Identity *>()->avatarUrl(), 0039 QUrl("https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg")); 0040 } 0041 }; 0042 0043 QTEST_MAIN(SearchTest) 0044 #include "searchtest.moc"