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