1 /*
2     SPDX-FileCopyrightText: 2012 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
3 
4     SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6 
7 #include "columnproxymodeltest.h"
8 #include "../src/qmlcontrols/kquickcontrolsaddons/columnproxymodel.h"
9 #include <QAbstractItemModelTester>
10 #include <QSignalSpy>
11 #include <QStandardItemModel>
12 #include <QTest>
13 
QTEST_MAIN(ColumnProxyModelTest)14 QTEST_MAIN(ColumnProxyModelTest)
15 
16 void ColumnProxyModelTest::testInit()
17 {
18     qRegisterMetaType<QModelIndex>("QModelIndex");
19 
20     ColumnProxyModel *listify = new ColumnProxyModel;
21     QSignalSpy spy(listify, &QAbstractItemModel::rowsInserted);
22 
23     new QAbstractItemModelTester(listify, listify);
24     QStandardItemModel *m = new QStandardItemModel(listify);
25     listify->setRootIndex(QModelIndex());
26     listify->setSourceModel(m);
27     m->appendRow(new QStandardItem(QStringLiteral("lalalal")));
28     m->appendRow(new QStandardItem(QStringLiteral("lalalal")));
29     m->appendRow(new QStandardItem(QStringLiteral("lalalal")));
30     m->appendRow(new QStandardItem(QStringLiteral("lalalal")));
31     QStandardItem *item = new QStandardItem(QStringLiteral("lalalal"));
32     item->appendRow(new QStandardItem(QStringLiteral("lelele")));
33     item->appendRow(new QStandardItem(QStringLiteral("lelele")));
34     m->appendRow(item);
35     item->appendRow(new QStandardItem(QStringLiteral("lelele")));
36 
37     QCOMPARE(listify->rowCount(), 5);
38     QCOMPARE(spy.count(), 5);
39 
40     ColumnProxyModel *listifyB = new ColumnProxyModel;
41     new QAbstractItemModelTester(listifyB, listifyB);
42     listifyB->setSourceModel(m);
43     QCOMPARE(listifyB->rowCount(), 5);
44 
45     ColumnProxyModel *listifyC = new ColumnProxyModel;
46     new QAbstractItemModelTester(listifyC, listifyC);
47     listifyC->setRootIndex(item->index());
48     QCOMPARE(listifyC->rowCount(), 3);
49 
50     delete listify;
51     delete listifyB;
52     delete listifyC;
53 }
54 
testSet()55 void ColumnProxyModelTest::testSet()
56 {
57     ColumnProxyModel listify;
58     QSignalSpy spy(&listify, &QAbstractItemModel::rowsInserted);
59 
60     new QAbstractItemModelTester(&listify, &listify);
61     QStandardItemModel *m = new QStandardItemModel(&listify);
62     listify.setRootIndex(QModelIndex());
63     listify.setSourceModel(m);
64     m->appendRow(new QStandardItem(QStringLiteral("lalalal")));
65     m->appendRow(new QStandardItem(QStringLiteral("lalalal")));
66     m->appendRow(new QStandardItem(QStringLiteral("lalalal")));
67     m->appendRow(new QStandardItem(QStringLiteral("lalalal")));
68     QStandardItem *item = new QStandardItem(QStringLiteral("lalalal"));
69     item->appendRow(new QStandardItem(QStringLiteral("lelele")));
70     item->appendRow(new QStandardItem(QStringLiteral("lelele")));
71     m->appendRow(item);
72     item->appendRow(new QStandardItem(QStringLiteral("lelele")));
73 
74     const QString newString = QStringLiteral("fu");
75     QModelIndex changeIndex = listify.indexAt(0);
76     listify.setData(changeIndex, QVariant::fromValue(newString), Qt::DisplayRole);
77     QCOMPARE(changeIndex.data(Qt::DisplayRole).toString(), newString);
78 }
79