diff options
| author | Peter Penz <[email protected]> | 2011-12-04 18:16:39 +0100 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-12-04 18:21:46 +0100 |
| commit | 854b0acd1a259fab40e42c8470bb144c955dcc5a (patch) | |
| tree | 376e1aa31a85dd410ba1d4236cb0b3c26c83763a /src/tests/kfileitemmodeltest.cpp | |
| parent | 031b1a4c19945456a389ddb00630aadf95b0c09a (diff) | |
Fix crash #1 when filtering items
When filtering items it was possible that the current index got
an invalid value which resulted in accessing the URL of a
null-KFileItem.
There is still one (general) open issue in KFileItemModelRolesUpdater
(crash #2) where a KFileItem that is already null gets read.
It is not really related to filtering but can be triggered
quite easy when filtering huge directories with enabled previews.
CCBUG: 287642
Diffstat (limited to 'src/tests/kfileitemmodeltest.cpp')
| -rw-r--r-- | src/tests/kfileitemmodeltest.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index 23b899136..18580c24b 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -162,14 +162,17 @@ void KFileItemModelTest::testNewItems() void KFileItemModelTest::testRemoveItems() { m_testDir->createFile("a.txt"); + m_testDir->createFile("b.txt"); m_dirLister->openUrl(m_testDir->url()); QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout)); - QCOMPARE(m_model->count(), 1); + QCOMPARE(m_model->count(), 2); + QVERIFY(isModelConsistent()); m_testDir->removeFile("a.txt"); m_dirLister->updateDirectory(m_testDir->url()); QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsRemoved(KItemRangeList)), DefaultTimeout)); - QCOMPARE(m_model->count(), 0); + QCOMPARE(m_model->count(), 1); + QVERIFY(isModelConsistent()); } void KFileItemModelTest::testSetData() @@ -675,6 +678,10 @@ void KFileItemModelTest::testNameFilter() bool KFileItemModelTest::isModelConsistent() const { + if (m_model->m_items.count() != m_model->m_itemData.count()) { + return false; + } + for (int i = 0; i < m_model->count(); ++i) { const KFileItem item = m_model->fileItem(i); if (item.isNull()) { |
