From: Frank Reininghaus Date: Sun, 27 Jan 2013 14:25:47 +0000 (+0100) Subject: Merge remote-tracking branch 'origin/KDE/4.10' X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/1bd91417dbb7752795ca763d221a7e39c99985aa Merge remote-tracking branch 'origin/KDE/4.10' Conflicts: dolphin/src/tests/kfileitemmodeltest.cpp --- 1bd91417dbb7752795ca763d221a7e39c99985aa diff --cc src/tests/kfileitemmodeltest.cpp index 3fc2b7c9a,65368b75b..d0f2e1eaa --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@@ -72,12 -72,12 +72,11 @@@ private slots void testExpandItems(); void testExpandParentItems(); void testSorting(); - void testIndexForKeyboardSearch(); - void testNameFilter(); + void testEmptyPath(); private: - bool isModelConsistent() const; QStringList itemsInModel() const; private: @@@ -773,6 -773,54 +772,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()) { - return false; - } - - for (int i = 0; i < m_model->count(); ++i) { - const KFileItem item = m_model->fileItem(i); - if (item.isNull()) { - qWarning() << "Item" << i << "is null"; - return false; - } - - const int itemIndex = m_model->index(item); - if (itemIndex != i) { - qWarning() << "Item" << i << "has a wrong index:" << itemIndex; - return false; - } - } - - return true; -} - QStringList KFileItemModelTest::itemsInModel() const { QStringList items;