diff options
| author | Frank Reininghaus <[email protected]> | 2013-08-04 21:08:26 +0200 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2013-08-04 21:08:57 +0200 |
| commit | 8bf4aab73e1e8584a06a9c954853369c08f41d8a (patch) | |
| tree | 79c6282eac3cd910c0127f2e09fa3a85dc63ab41 | |
| parent | 3f0ed8c44a676e791bb0a3836415336e4566aa79 (diff) | |
Add some unit tests for grouping in KFileItemModel
Hopefully, this will prevent regressions in the future.
REVIEW: 111807
| -rw-r--r-- | src/tests/kfileitemmodeltest.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index fcc805269..513ecef5a 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -84,6 +84,7 @@ private slots: void collapseParentOfHiddenItems(); void removeParentOfHiddenItems(); void testGeneralParentChildRelationships(); + void testNameRoleGroups(); private: QStringList itemsInModel() const; @@ -1175,6 +1176,53 @@ void KFileItemModelTest::testGeneralParentChildRelationships() QCOMPARE(itemsInModel(), QStringList() << "parent1"); } +void KFileItemModelTest::testNameRoleGroups() +{ + QStringList files; + files << "b.txt" << "c.txt" << "d.txt" << "e.txt"; + + m_testDir->createFiles(files); + + m_model->setGroupedSorting(true); + m_model->loadDirectory(m_testDir->url()); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout)); + QCOMPARE(itemsInModel(), QStringList() << "b.txt" << "c.txt" << "d.txt" << "e.txt"); + + QList<QPair<int, QVariant> > expectedGroups; + expectedGroups << QPair<int, QVariant>(0, QLatin1String("B")); + expectedGroups << QPair<int, QVariant>(1, QLatin1String("C")); + expectedGroups << QPair<int, QVariant>(2, QLatin1String("D")); + expectedGroups << QPair<int, QVariant>(3, QLatin1String("E")); + QCOMPARE(m_model->groups(), expectedGroups); + + // Rename d.txt to a.txt. + QHash<QByteArray, QVariant> data; + data.insert("text", "a.txt"); + m_model->setData(2, data); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)), DefaultTimeout)); + QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "e.txt"); + + expectedGroups.clear(); + expectedGroups << QPair<int, QVariant>(0, QLatin1String("A")); + expectedGroups << QPair<int, QVariant>(1, QLatin1String("B")); + expectedGroups << QPair<int, QVariant>(2, QLatin1String("C")); + expectedGroups << QPair<int, QVariant>(3, QLatin1String("E")); + QCOMPARE(m_model->groups(), expectedGroups); + + // Rename c.txt to d.txt. + data.insert("text", "d.txt"); + m_model->setData(2, data); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)), DefaultTimeout)); + QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "d.txt" << "e.txt"); + + expectedGroups.clear(); + expectedGroups << QPair<int, QVariant>(0, QLatin1String("A")); + expectedGroups << QPair<int, QVariant>(1, QLatin1String("B")); + expectedGroups << QPair<int, QVariant>(2, QLatin1String("D")); + expectedGroups << QPair<int, QVariant>(3, QLatin1String("E")); + QCOMPARE(m_model->groups(), expectedGroups); +} + QStringList KFileItemModelTest::itemsInModel() const { QStringList items; |
