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"