From: Frank Reininghaus Date: Sun, 27 Jan 2013 13:09:39 +0000 (+0100) Subject: Add a unit test for a recently fixed crash X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/891ee0c41a3b2e80aa8191a6f8152c6095ce0351 Add a unit test for a recently fixed crash Before commit 90c7fd400c34e6d4d583c54c04631856c387d359, adding a KFileItem with an empty path caused a crash in KFileItemModel::expandedParentsCountCompare(). --- diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index 9d53ea7e6..65368b75b 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -72,10 +72,9 @@ private slots: void testExpandItems(); void testExpandParentItems(); void testSorting(); - void testIndexForKeyboardSearch(); - void testNameFilter(); + void testEmptyPath(); private: bool isModelConsistent() const; @@ -774,6 +773,31 @@ void KFileItemModelTest::testNameFilter() QCOMPARE(m_model->count(), 5); } +/** + * Verifies that we do not crash when adding a KFileItem with an empty path. + * Before this issue was fixed, KFileItemModel::expandedParentsCountCompare() + * tried to always read the first character of the path, even if the path is empty. + */ +void KFileItemModelTest::testEmptyPath() +{ + QSet roles; + roles.insert("text"); + roles.insert("isExpanded"); + roles.insert("isExpandable"); + roles.insert("expandedParentsCount"); + m_model->setRoles(roles); + + const KUrl emptyUrl; + QVERIFY(emptyUrl.path().isEmpty()); + + const KUrl url("file:///test/"); + + KFileItemList items; + items << KFileItem(emptyUrl, QString(), KFileItem::Unknown) << KFileItem(url, QString(), KFileItem::Unknown); + m_model->slotNewItems(items); + m_model->slotCompleted(); +} + bool KFileItemModelTest::isModelConsistent() const { if (m_model->m_items.count() != m_model->m_itemData.count()) {