]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Test if the groups are updated correctly when items are refreshed
authorFrank Reininghaus <frank78ac@googlemail.com>
Mon, 9 Sep 2013 19:13:38 +0000 (21:13 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Mon, 9 Sep 2013 19:13:38 +0000 (21:13 +0200)
This unit test will hopefully prevent regressions in the future. It is
the first part of https://git.reviewboard.kde.org/r/112561/.

src/tests/kfileitemmodeltest.cpp

index f8439789bd1875cf9c2d65af30ea833391539778..b0a27cd01267628e0b7222ed1ffaedc782127df6 100644 (file)
@@ -1246,6 +1246,24 @@ void KFileItemModelTest::testNameRoleGroups()
     expectedGroups << QPair<int, QVariant>(2, QLatin1String("D"));
     expectedGroups << QPair<int, QVariant>(3, QLatin1String("E"));
     QCOMPARE(m_model->groups(), expectedGroups);
+
+    // Change d.txt back to c.txt, but this time using the dir lister's refreshItems() signal.
+    const KFileItem fileItemD = m_model->fileItem(2);
+    KFileItem fileItemC = fileItemD;
+    KUrl urlC = fileItemC.url();
+    urlC.setFileName("c.txt");
+    fileItemC.setUrl(urlC);
+
+    m_model->slotRefreshItems(QList<QPair<KFileItem, KFileItem> >() << qMakePair(fileItemD, fileItemC));
+    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)), DefaultTimeout));
+    QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "e.txt");
+
+    expectedGroups.clear();
+    expectedGroups << QPair<int, QVariant>(0, QLatin1String("A"));
+    expectedGroups << QPair<int, QVariant>(1, QLatin1String("B"));
+    expectedGroups << QPair<int, QVariant>(2, QLatin1String("C"));
+    expectedGroups << QPair<int, QVariant>(3, QLatin1String("E"));
+    QCOMPARE(m_model->groups(), expectedGroups);
 }
 
 QStringList KFileItemModelTest::itemsInModel() const