]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tests/kfileitemmodeltest.cpp
Update filtered items when the "refreshItems" signal is received
[dolphin.git] / src / tests / kfileitemmodeltest.cpp
index ede9a3d6e6c720cccfe68d8b739aa2b45fe8998b..9079e584ecb9b562ce932afa1c75d66b1facb637 100644 (file)
@@ -92,6 +92,7 @@ private slots:
     void testInconsistentModel();
     void testChangeRolesForFilteredItems();
     void testChangeSortRoleWhileFiltering();
+    void testRefreshFilteredItems();
 
 private:
     QStringList itemsInModel() const;
@@ -1561,6 +1562,35 @@ void KFileItemModelTest::testChangeSortRoleWhileFiltering()
     QCOMPARE(itemsInModel(), QStringList() << "c.txt" << "a.txt" << "b.txt");
 }
 
+void KFileItemModelTest::testRefreshFilteredItems()
+{
+    QStringList files;
+    files << "a.txt" << "b.txt" << "c.jpg" << "d.jpg";
+    m_testDir->createFiles(files);
+
+    m_model->loadDirectory(m_testDir->url());
+    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.jpg" << "d.jpg");
+
+    const KFileItem fileItemC = m_model->fileItem(2);
+
+    // Show only the .txt files.
+    m_model->setNameFilter(".txt");
+    QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt");
+
+    // Rename one of the .jpg files.
+    KFileItem fileItemE = fileItemC;
+    KUrl urlE = fileItemE.url();
+    urlE.setFileName("e.jpg");
+    fileItemE.setUrl(urlE);
+
+    m_model->slotRefreshItems(QList<QPair<KFileItem, KFileItem> >() << qMakePair(fileItemC, fileItemE));
+
+    // Show all files again, and verify that the model has updated the file name.
+    m_model->setNameFilter(QString());
+    QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "d.jpg" << "e.jpg");
+}
+
 QStringList KFileItemModelTest::itemsInModel() const
 {
     QStringList items;