File indexing completed on 2024-06-16 05:00:37

0001 /*
0002    SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "selectiontypetreewidgettest.h"
0008 #include "../widgets/selectiontypetreewidget.h"
0009 #include <QFile>
0010 #include <QStandardPaths>
0011 #include <QTest>
0012 // #define SHOW_WIDGET
0013 SelectionTypeTreeWidgetTest::SelectionTypeTreeWidgetTest(QObject *parent)
0014     : QObject(parent)
0015 {
0016     QStandardPaths::setTestModeEnabled(true);
0017 }
0018 
0019 SelectionTypeTreeWidgetTest::~SelectionTypeTreeWidgetTest() = default;
0020 
0021 void SelectionTypeTreeWidgetTest::shouldHaveDefaultSelectedWidget()
0022 {
0023     SelectionTypeTreeWidget w(true);
0024     QVERIFY(w.topLevelItemCount() != 0);
0025 }
0026 
0027 void SelectionTypeTreeWidgetTest::shouldLoadTemplate_data()
0028 {
0029     QTest::addColumn<QString>("filename");
0030     QTest::addColumn<int>("topLevelItems");
0031     QTest::newRow("selectedtypemodel1.xml") << QStringLiteral("selectedtypemodel1.xml") << 3; // because blogilo is not supported anymore
0032     QTest::newRow("selectedtypemodel2.xml") << QStringLiteral("selectedtypemodel2.xml") << 1;
0033 }
0034 
0035 void checkState(SelectionTypeTreeWidget *mSelectionTreeWidget, bool checked)
0036 {
0037     for (int i = 0; i < mSelectionTreeWidget->topLevelItemCount(); i++) {
0038         QTreeWidgetItem *item = mSelectionTreeWidget->topLevelItem(i);
0039         bool isChecked = item->checkState(0);
0040         QCOMPARE(isChecked, checked);
0041         for (int j = 0; j < item->childCount(); j++) {
0042             bool childIsChecked = item->child(j)->checkState(0);
0043             QCOMPARE(childIsChecked, checked);
0044         }
0045     }
0046 }
0047 
0048 void SelectionTypeTreeWidgetTest::shouldLoadTemplate()
0049 {
0050     QFETCH(QString, filename);
0051     QFETCH(int, topLevelItems);
0052 
0053     QString fileNameFullPath = QLatin1StringView(PIMDATAEXPORTER_DATA_DIR) + QLatin1StringView("/") + filename;
0054     QFile f(fileNameFullPath);
0055     QVERIFY(f.exists());
0056     SelectionTypeTreeWidget w(true);
0057     qDebug() << " filename" << fileNameFullPath;
0058     w.loadTemplate(fileNameFullPath);
0059     w.removeNotSelectedItems();
0060 #ifdef SHOW_WIDGET
0061     w.show();
0062     QTest::qWait(5000);
0063 #endif
0064     checkState(&w, true);
0065     QCOMPARE(w.topLevelItemCount(), topLevelItems);
0066 }
0067 
0068 QTEST_MAIN(SelectionTypeTreeWidgetTest)
0069 
0070 #include "moc_selectiontypetreewidgettest.cpp"