File indexing completed on 2024-05-12 16:23:40
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Jonah BrĂ¼chert <jbb@kaidan.im> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #include <QtTest/QTest> 0008 #include <QSignalSpy> 0009 #include <QCoreApplication> 0010 #include <QStandardPaths> 0011 #include <QSqlQuery> 0012 0013 #include "dbmanager.h" 0014 0015 class DbManagerTest : public QObject 0016 { 0017 Q_OBJECT 0018 0019 private Q_SLOTS: 0020 void initTestCase() 0021 { 0022 QCoreApplication::setOrganizationName(QStringLiteral("autotests")); 0023 QCoreApplication::setApplicationName(QStringLiteral("angelfish_dbmanagertest")); 0024 QDir dir(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)); 0025 dir.mkpath(QStringLiteral(".")); 0026 0027 m_dbmanager = new DBManager(); 0028 } 0029 0030 void testAddBookmark() 0031 { 0032 QSignalSpy spy(m_dbmanager, &DBManager::databaseTableChanged); 0033 auto future = m_dbmanager->addBookmark({ 0034 {QStringLiteral("url"), QStringLiteral("https://kde.org")}, 0035 {QStringLiteral("title"), QStringLiteral("KDE")}, 0036 {QStringLiteral("icon"), QStringLiteral("TESTDATA")} 0037 }); 0038 0039 QCoro::waitFor(future); 0040 QCOMPARE(spy.count(), 1); 0041 } 0042 0043 void testAddToHistory() 0044 { 0045 QSignalSpy spy(m_dbmanager, &DBManager::databaseTableChanged); 0046 auto future = m_dbmanager->addToHistory({ 0047 {QStringLiteral("url"), QStringLiteral("https://kde.org")}, 0048 {QStringLiteral("title"), QStringLiteral("KDE")}, 0049 {QStringLiteral("icon"), QStringLiteral("TESTDATA")}}); 0050 0051 QCoro::waitFor(future); 0052 QCOMPARE(spy.count(), 1); 0053 } 0054 0055 void testLastVisited() 0056 { 0057 QSignalSpy spy(m_dbmanager, &DBManager::databaseTableChanged); 0058 auto future = m_dbmanager->updateLastVisited(QStringLiteral("https://kde.org")); 0059 0060 // Will be updated in both tables 0061 QCoro::waitFor(future); 0062 QCOMPARE(spy.count(), 2); 0063 } 0064 0065 void testRemoveBookmark() 0066 { 0067 QSignalSpy spy(m_dbmanager, &DBManager::databaseTableChanged); 0068 auto future = m_dbmanager->removeBookmark(QStringLiteral("https://kde.org")); 0069 0070 QCoro::waitFor(future); 0071 QCOMPARE(spy.count(), 1); 0072 } 0073 0074 void testRemoveFromHistory() 0075 { 0076 QSignalSpy spy(m_dbmanager, &DBManager::databaseTableChanged); 0077 auto future = m_dbmanager->removeBookmark(QStringLiteral("https://kde.org")); 0078 0079 QCoro::waitFor(future); 0080 QCOMPARE(spy.count(), 1); 0081 } 0082 0083 private: 0084 DBManager *m_dbmanager; 0085 }; 0086 0087 QTEST_GUILESS_MAIN(DbManagerTest); 0088 0089 #include "dbmanagertest.moc"