File indexing completed on 2024-05-26 04:29:38
0001 /* 0002 * SPDX-FileCopyrightText: 2018 boud <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #include "TestResourceTypeModel.h" 0007 0008 #include <simpletest.h> 0009 #include <QStandardPaths> 0010 #include <QDir> 0011 #include <QVersionNumber> 0012 #include <QDirIterator> 0013 #include <QSqlError> 0014 #include <QSqlQuery> 0015 #include <QtSql> 0016 #include <QModelIndex> 0017 #include <QAbstractItemModelTester> 0018 #include <kconfig.h> 0019 #include <kconfiggroup.h> 0020 #include <ksharedconfig.h> 0021 0022 #include <KisResourceCacheDb.h> 0023 #include <KisResourceLocator.h> 0024 #include <KisResourceLoaderRegistry.h> 0025 #include <KisResourceTypeModel.h> 0026 0027 #include <DummyResource.h> 0028 #include <ResourceTestHelper.h> 0029 0030 0031 #ifndef FILES_DATA_DIR 0032 #error "FILES_DATA_DIR not set. A directory with the data used for testing installing resources" 0033 #endif 0034 0035 0036 void TestResourceTypeModel::initTestCase() 0037 { 0038 ResourceTestHelper::initTestDb(); 0039 ResourceTestHelper::createDummyLoaderRegistry(); 0040 0041 m_srcLocation = QString(FILES_DATA_DIR); 0042 QVERIFY2(QDir(m_srcLocation).exists(), m_srcLocation.toUtf8()); 0043 0044 m_dstLocation = ResourceTestHelper::filesDestDir(); 0045 ResourceTestHelper::cleanDstLocation(m_dstLocation); 0046 0047 KConfigGroup cfg(KSharedConfig::openConfig(), ""); 0048 cfg.writeEntry(KisResourceLocator::resourceLocationKey, m_dstLocation); 0049 0050 m_locator = KisResourceLocator::instance(); 0051 0052 if (!KisResourceCacheDb::initialize(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation))) { 0053 qDebug() << "Could not initialize KisResourceCacheDb on" << QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); 0054 } 0055 QVERIFY(KisResourceCacheDb::isValid()); 0056 0057 KisResourceLocator::LocatorError r = m_locator->initialize(m_srcLocation); 0058 if (!m_locator->errorMessages().isEmpty()) qDebug() << m_locator->errorMessages(); 0059 0060 QVERIFY(r == KisResourceLocator::LocatorError::Ok); 0061 QVERIFY(QDir(m_dstLocation).exists()); 0062 } 0063 0064 void TestResourceTypeModel::testWithTagModelTester() 0065 { 0066 KisResourceTypeModel model; 0067 auto tester = new QAbstractItemModelTester(&model); 0068 Q_UNUSED(tester); 0069 } 0070 0071 0072 void TestResourceTypeModel::testRowCount() 0073 { 0074 QSqlQuery q; 0075 QVERIFY(q.prepare("SELECT count(*)\n" 0076 "FROM resource_types")); 0077 QVERIFY(q.exec()); 0078 q.first(); 0079 int rowCount = q.value(0).toInt(); 0080 QCOMPARE(rowCount, KisResourceLoaderRegistry::instance()->resourceTypes().count()); 0081 0082 KisResourceTypeModel typeModel; 0083 QCOMPARE(typeModel.rowCount(), rowCount); 0084 } 0085 0086 void TestResourceTypeModel::testData() 0087 { 0088 KisResourceTypeModel typeModel; 0089 for(int i = 0; i < typeModel.rowCount(); ++i) { 0090 0091 QModelIndex idx = typeModel.index(0, KisResourceTypeModel::ResourceType); 0092 // qDebug() << "test" << idx.data(Qt::DisplayRole) 0093 // << idx.data(Qt::UserRole + KisResourceTypeModel::Id) 0094 // << idx.data(Qt::UserRole + KisResourceTypeModel::ResourceType) 0095 // << idx.data(Qt::UserRole + KisResourceTypeModel::Name); 0096 0097 QCOMPARE(ResourceName::resourceTypeToName(ResourceType::Brushes), idx.data(Qt::UserRole + KisResourceTypeModel::Name).toString()); 0098 } 0099 } 0100 0101 0102 void TestResourceTypeModel::cleanupTestCase() 0103 { 0104 ResourceTestHelper::rmTestDb(); 0105 ResourceTestHelper::cleanDstLocation(m_dstLocation); 0106 } 0107 0108 0109 0110 0111 SIMPLE_TEST_MAIN(TestResourceTypeModel) 0112