┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/tests/kfileitemmodeltest.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-12-04 18:16:39 +0100
committerPeter Penz <[email protected]>2011-12-04 18:21:46 +0100
commit854b0acd1a259fab40e42c8470bb144c955dcc5a (patch)
tree376e1aa31a85dd410ba1d4236cb0b3c26c83763a /src/tests/kfileitemmodeltest.cpp
parent031b1a4c19945456a389ddb00630aadf95b0c09a (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.cpp11
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()) {