X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d0933155e2dc179cde49b4306ff7feee9ca47697..4815fbd00bfcaaa8daaae447c1f61d1acfd68de0:/src/tests/kfileitemmodeltest.cpp diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index d0accd68a..393192582 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -62,6 +62,7 @@ private slots: void testDefaultGroupedSorting(); void testNewItems(); void testRemoveItems(); + void testLoadingCompleted(); void testSetData(); void testSetDataWithModifiedSortRole_data(); void testSetDataWithModifiedSortRole(); @@ -100,6 +101,7 @@ void KFileItemModelTest::init() m_testDir = new TestDir(); m_dirLister = new KDirLister(); + m_dirLister->setAutoUpdate(false); m_model = new KFileItemModel(m_dirLister); } @@ -176,6 +178,49 @@ void KFileItemModelTest::testRemoveItems() QVERIFY(isModelConsistent()); } +void KFileItemModelTest::testLoadingCompleted() +{ + QSignalSpy loadingCompletedSpy(m_model, SIGNAL(loadingCompleted())); + QSignalSpy itemsInsertedSpy(m_model, SIGNAL(itemsInserted(KItemRangeList))); + QSignalSpy itemsRemovedSpy(m_model, SIGNAL(itemsRemoved(KItemRangeList))); + + m_testDir->createFiles(QStringList() << "a.txt" << "b.txt" << "c.txt"); + + m_dirLister->openUrl(m_testDir->url()); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(loadingCompleted()), DefaultTimeout)); + QCOMPARE(loadingCompletedSpy.count(), 1); + QCOMPARE(itemsInsertedSpy.count(), 1); + QCOMPARE(itemsRemovedSpy.count(), 0); + QCOMPARE(m_model->count(), 3); + + m_testDir->createFiles(QStringList() << "d.txt" << "e.txt"); + m_dirLister->updateDirectory(m_testDir->url()); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(loadingCompleted()), DefaultTimeout)); + QCOMPARE(loadingCompletedSpy.count(), 2); + QCOMPARE(itemsInsertedSpy.count(), 2); + QCOMPARE(itemsRemovedSpy.count(), 0); + QCOMPARE(m_model->count(), 5); + + m_testDir->removeFile("a.txt"); + m_testDir->createFile("f.txt"); + m_dirLister->updateDirectory(m_testDir->url()); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(loadingCompleted()), DefaultTimeout)); + QCOMPARE(loadingCompletedSpy.count(), 3); + QCOMPARE(itemsInsertedSpy.count(), 3); + QCOMPARE(itemsRemovedSpy.count(), 1); + QCOMPARE(m_model->count(), 5); + + m_testDir->removeFile("b.txt"); + m_dirLister->updateDirectory(m_testDir->url()); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsRemoved(KItemRangeList)), DefaultTimeout)); + QCOMPARE(loadingCompletedSpy.count(), 4); + QCOMPARE(itemsInsertedSpy.count(), 3); + QCOMPARE(itemsRemovedSpy.count(), 2); + QCOMPARE(m_model->count(), 4); + + QVERIFY(isModelConsistent()); +} + void KFileItemModelTest::testSetData() { m_testDir->createFile("a.txt"); @@ -271,7 +316,7 @@ void KFileItemModelTest::testSetDataWithModifiedSortRole() if (expectMoveSignal) { QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsMoved(KItemRange,QList)), DefaultTimeout)); } - + QCOMPARE(m_model->data(0).value("rating").toInt(), ratingIndex0); QCOMPARE(m_model->data(1).value("rating").toInt(), ratingIndex1); QCOMPARE(m_model->data(2).value("rating").toInt(), ratingIndex2); @@ -288,8 +333,6 @@ void KFileItemModelTest::testModelConsistencyWhenInsertingItems() // one itemsInserted()-signal. However in this test we want to stress // KFileItemModel to do a lot of insert operation and hence decrease // the timeout to 1 millisecond. - m_model->m_minimumUpdateIntervalTimer->setInterval(1); - m_testDir->createFile("1"); m_dirLister->openUrl(m_testDir->url()); QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout)); @@ -373,7 +416,7 @@ void KFileItemModelTest::testExpandItems() // yields the correct result for "a/a/1" and "a/a-1/", whis is non-trivial because they share the // first three characters. QSet modelRoles = m_model->roles(); - modelRoles << "isExpanded" << "isExpandable" << "expansionLevel"; + modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount"; m_model->setRoles(modelRoles); QStringList files; @@ -490,7 +533,7 @@ void KFileItemModelTest::testExpandParentItems() // a2/b2/c2/ // a2/b2/c2/d2/ QSet modelRoles = m_model->roles(); - modelRoles << "isExpanded" << "isExpandable" << "expansionLevel"; + modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount"; m_model->setRoles(modelRoles); QStringList files; @@ -665,7 +708,7 @@ void KFileItemModelTest::testExpansionLevelsCompare() b.item = itemB; b.parent = 0; - QCOMPARE(m_model->expansionLevelsCompare(&a, &b), result); + QCOMPARE(m_model->expandedParentsCountCompare(&a, &b), result); } void KFileItemModelTest::testIndexForKeyboardSearch()