File indexing completed on 2024-05-12 16:58:59
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <Category/CategoriesReader.h> 0008 #include <Category/Category.h> 0009 #include <QList> 0010 #include <QtTest> 0011 0012 class CategoriesTest : public QObject 0013 { 0014 Q_OBJECT 0015 public: 0016 CategoriesTest() 0017 { 0018 } 0019 0020 QVector<Category *> populateCategories() 0021 { 0022 const QVector<QString> categoryFiles = { 0023 QFINDTESTDATA("../backends/PackageKitBackend/packagekit-backend-categories.xml"), 0024 QFINDTESTDATA("../backends/FlatpakBackend/flatpak-backend-categories.xml"), 0025 QFINDTESTDATA("../backends/DummyBackend/dummy-backend-categories.xml"), 0026 }; 0027 0028 QVector<Category *> ret; 0029 CategoriesReader reader; 0030 for (const QString &name : categoryFiles) { 0031 qDebug() << "doing..." << name; 0032 const QVector<Category *> cats = reader.loadCategoriesPath(name); 0033 0034 if (ret.isEmpty()) { 0035 ret = cats; 0036 } else { 0037 for (Category *c : cats) 0038 Category::addSubcategory(ret, c); 0039 } 0040 } 0041 std::sort(ret.begin(), ret.end(), Category::categoryLessThan); 0042 return ret; 0043 } 0044 0045 private Q_SLOTS: 0046 void testReadCategories() 0047 { 0048 auto categories = populateCategories(); 0049 QVERIFY(!categories.isEmpty()); 0050 0051 for (Category *c : categories) { 0052 if (c->name() != "Dummy Category") 0053 continue; 0054 0055 auto filter = c->filter(); 0056 QVERIFY(filter.type == CategoryFilter::CategoryNameFilter); 0057 QVERIFY(std::get<QString>(filter.value) == "dummy"); 0058 } 0059 } 0060 }; 0061 0062 QTEST_MAIN(CategoriesTest) 0063 0064 #include "CategoriesTest.moc"