mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
Add unit test for KFileItemModel::createMimeData().
The test verifies that creating the mime data for a child of an expanced folder does not cause a crash. The regression happenened in the master branch, but it doesn't hurt to have the test also in KDE/4.12. CCBUG: 329119
This commit is contained in:
parent
c0a851893e
commit
640f5dca62
|
@ -65,6 +65,7 @@ set(kfileitemmodeltest_SRCS
|
||||||
testdir.cpp
|
testdir.cpp
|
||||||
../kitemviews/kfileitemmodel.cpp
|
../kitemviews/kfileitemmodel.cpp
|
||||||
../kitemviews/kitemmodelbase.cpp
|
../kitemviews/kitemmodelbase.cpp
|
||||||
|
../kitemviews/kitemset.cpp
|
||||||
)
|
)
|
||||||
kde4_add_unit_test(kfileitemmodeltest TEST ${kfileitemmodeltest_SRCS})
|
kde4_add_unit_test(kfileitemmodeltest TEST ${kfileitemmodeltest_SRCS})
|
||||||
target_link_libraries(kfileitemmodeltest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
|
target_link_libraries(kfileitemmodeltest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
|
||||||
|
|
|
@ -93,6 +93,7 @@ private slots:
|
||||||
void testChangeRolesForFilteredItems();
|
void testChangeRolesForFilteredItems();
|
||||||
void testChangeSortRoleWhileFiltering();
|
void testChangeSortRoleWhileFiltering();
|
||||||
void testRefreshFilteredItems();
|
void testRefreshFilteredItems();
|
||||||
|
void testCreateMimeData();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QStringList itemsInModel() const;
|
QStringList itemsInModel() const;
|
||||||
|
@ -1591,6 +1592,33 @@ void KFileItemModelTest::testRefreshFilteredItems()
|
||||||
QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "d.jpg" << "e.jpg");
|
QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "d.jpg" << "e.jpg");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KFileItemModelTest::testCreateMimeData()
|
||||||
|
{
|
||||||
|
QSet<QByteArray> modelRoles = m_model->roles();
|
||||||
|
modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
|
||||||
|
m_model->setRoles(modelRoles);
|
||||||
|
|
||||||
|
QStringList files;
|
||||||
|
files << "a/1";
|
||||||
|
m_testDir->createFiles(files);
|
||||||
|
|
||||||
|
m_model->loadDirectory(m_testDir->url());
|
||||||
|
QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
|
||||||
|
QCOMPARE(itemsInModel(), QStringList() << "a");
|
||||||
|
|
||||||
|
// Expand "a/".
|
||||||
|
m_model->setExpanded(0, true);
|
||||||
|
QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
|
||||||
|
QCOMPARE(itemsInModel(), QStringList() << "a" << "1");
|
||||||
|
|
||||||
|
// Verify that creating the MIME data for a child of an expanded folder does
|
||||||
|
// not cause a crash, see https://bugs.kde.org/show_bug.cgi?id=329119
|
||||||
|
KItemSet selection;
|
||||||
|
selection.insert(1);
|
||||||
|
QMimeData* mimeData = m_model->createMimeData(selection);
|
||||||
|
delete mimeData;
|
||||||
|
}
|
||||||
|
|
||||||
QStringList KFileItemModelTest::itemsInModel() const
|
QStringList KFileItemModelTest::itemsInModel() const
|
||||||
{
|
{
|
||||||
QStringList items;
|
QStringList items;
|
||||||
|
|
Loading…
Reference in a new issue