]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Ported tests away from KRandomSequence, QTest::kWaitForSignal and KTempDir.
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Thu, 18 Dec 2014 13:56:46 +0000 (14:56 +0100)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Thu, 18 Dec 2014 13:56:46 +0000 (14:56 +0100)
All tests passed!

14 files changed:
src/tests/CMakeLists.txt
src/tests/dolphinsearchboxtest.cpp
src/tests/kfileitemlistviewtest.cpp
src/tests/kfileitemmodelbenchmark.cpp
src/tests/kfileitemmodeltest.cpp
src/tests/kitemlistcontrollertest.cpp
src/tests/kitemlistkeyboardsearchmanagertest.cpp
src/tests/kitemlistselectionmanagertest.cpp
src/tests/kitemrangetest.cpp
src/tests/kitemsettest.cpp
src/tests/kstandarditemmodeltest.cpp
src/tests/testdir.cpp
src/tests/testdir.h
src/tests/viewpropertiestest.cpp

index 60f6517e8e1310407f9ca8ae87a4e554ad53a0bc..a69400baac8f29312916b36a7cd2b10dc50be907 100644 (file)
@@ -52,7 +52,7 @@ set(kitemlistcontrollertest_SRCS
     ../kitemviews/kitemlistview.cpp
     ../kitemviews/kitemlistcontainer.cpp
     ../kitemviews/kitemlistwidget.cpp
     ../kitemviews/kitemlistview.cpp
     ../kitemviews/kitemlistcontainer.cpp
     ../kitemviews/kitemlistwidget.cpp
-#    ../kitemviews/kitemlistviewaccessible.cpp # TODO: enable once accessibility is ported to Qt5
+    ../kitemviews/kitemlistviewaccessible.cpp
     ../kitemviews/kitemset.cpp
     ../kitemviews/kstandarditemlistview.cpp
     ../kitemviews/kstandarditemlistwidget.cpp
     ../kitemviews/kitemset.cpp
     ../kitemviews/kstandarditemlistview.cpp
     ../kitemviews/kstandarditemlistwidget.cpp
@@ -71,7 +71,7 @@ set(kfileitemlistviewtest_SRCS
     ../kitemviews/kfileitemlistview.cpp
     ../kitemviews/kitemmodelbase.cpp
     ../kitemviews/kitemlistview.cpp
     ../kitemviews/kfileitemlistview.cpp
     ../kitemviews/kitemmodelbase.cpp
     ../kitemviews/kitemlistview.cpp
-#    ../kitemviews/kitemlistviewaccessible.cpp # TODO: enable once accessibility is ported to Qt5
+    ../kitemviews/kitemlistviewaccessible.cpp
     ../kitemviews/kitemlistcontainer.cpp
     ../kitemviews/kitemlistwidget.cpp
     ../kitemviews/kitemset.cpp
     ../kitemviews/kitemlistcontainer.cpp
     ../kitemviews/kitemlistwidget.cpp
     ../kitemviews/kitemset.cpp
index 49bc7e8240bcac00934b8f5d23b11a6c1f19cfc2..862a398a5b62db609e02532d1f85dc41c1c3c4e9 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-
 #include "search/dolphinsearchbox.h"
 #include "search/dolphinsearchbox.h"
-#include <qtestkeyboard.h>
+
+#include <QTest>
 
 class DolphinSearchBoxTest : public QObject
 {
 
 class DolphinSearchBoxTest : public QObject
 {
index 696580c0a846dc994fb35fd267cc73ee06b8e57a..9e1add8cf36c620df9ec37a7c5bbb09c7819044d 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-#include <QSignalSpy>
 #include "kitemviews/kfileitemlistview.h"
 #include "kitemviews/kfileitemmodel.h"
 #include "kitemviews/private/kfileitemmodeldirlister.h"
 #include "testdir.h"
 
 #include <QGraphicsView>
 #include "kitemviews/kfileitemlistview.h"
 #include "kitemviews/kfileitemmodel.h"
 #include "kitemviews/private/kfileitemmodeldirlister.h"
 #include "testdir.h"
 
 #include <QGraphicsView>
-
-namespace {
-    const int DefaultTimeout = 2000;
-};
+#include <QTest>
+#include <QSignalSpy>
 
 class KFileItemListViewTest : public QObject
 {
 
 class KFileItemListViewTest : public QObject
 {
@@ -91,27 +87,24 @@ void KFileItemListViewTest::cleanup()
  */
 void KFileItemListViewTest::testGroupedItemChanges()
 {
  */
 void KFileItemListViewTest::testGroupedItemChanges()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
+
     m_model->setGroupedSorting(true);
 
     m_testDir->createFiles({"1", "3", "5"});
     m_model->setGroupedSorting(true);
 
     m_testDir->createFiles({"1", "3", "5"});
-
     m_model->loadDirectory(m_testDir->url());
     m_model->loadDirectory(m_testDir->url());
-    QSignalSpy psy(m_model, SIGNAL(itemsInserted(KItemRangeList)));
-    QVERIFY(psy.wait(DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 3);
 
     m_testDir->createFiles({"2", "4"});
     m_model->m_dirLister->updateDirectory(m_testDir->url());
     QCOMPARE(m_model->count(), 3);
 
     m_testDir->createFiles({"2", "4"});
     m_model->m_dirLister->updateDirectory(m_testDir->url());
-    QSignalSpy psyItemsInserted(m_model, SIGNAL(itemsInserted(KItemRangeList)));
-    QVERIFY(psyItemsInserted.wait(DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 5);
 
     QCOMPARE(m_model->count(), 5);
 
-    m_testDir->removeFile("1");
-    m_testDir->removeFile("3");
-    m_testDir->removeFile("5");
+    m_testDir->removeFiles({"1", "3", "5"});
     m_model->m_dirLister->updateDirectory(m_testDir->url());
     m_model->m_dirLister->updateDirectory(m_testDir->url());
-    QSignalSpy psyItemsRemoved(m_model, SIGNAL(itemsRemoved(KItemRangeList)));
-    QVERIFY(psyItemsRemoved.wait(DefaultTimeout));
+    QVERIFY(itemsRemovedSpy.wait());
     QCOMPARE(m_model->count(), 2);
 }
 
     QCOMPARE(m_model->count(), 2);
 }
 
index 43d7173de60662356de94ac53cb60cabf0254800..c970a7198c422db41c558a88a5d573bd70172b28 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
+#include <QTest>
 #include <QSignalSpy>
 #include <QSignalSpy>
+
+#include <algorithm>
+#include <random>
+
 #include "kitemviews/kfileitemmodel.h"
 #include "kitemviews/private/kfileitemmodelsortalgorithm.h"
 
 #include "testdir.h"
 
 #include "kitemviews/kfileitemmodel.h"
 #include "kitemviews/private/kfileitemmodelsortalgorithm.h"
 
 #include "testdir.h"
 
-#include <KRandomSequence>
-
 void myMessageOutput(QtMsgType type, const char* msg)
 {
     switch (type) {
 void myMessageOutput(QtMsgType type, const char* msg)
 {
     switch (type) {
@@ -45,10 +47,6 @@ void myMessageOutput(QtMsgType type, const char* msg)
     }
 }
 
     }
 }
 
-namespace {
-    const int DefaultTimeout = 5000;
-};
-
 Q_DECLARE_METATYPE(KFileItemList)
 Q_DECLARE_METATYPE(KItemRangeList)
 
 Q_DECLARE_METATYPE(KFileItemList)
 Q_DECLARE_METATYPE(KItemRangeList)
 
@@ -294,8 +292,9 @@ void KFileItemModelBenchmark::insertManyChildItems()
     }
 
     // Bring the items into random order.
     }
 
     // Bring the items into random order.
-    KRandomSequence randomSequence(0);
-    randomSequence.randomize(newItems);
+    std::random_device rd;
+    std::mt19937 g(rd());
+    std::shuffle(newItems.begin(), newItems.end(), g);
 
     // Measure how long it takes to insert and then remove all files.
     QBENCHMARK {
 
     // Measure how long it takes to insert and then remove all files.
     QBENCHMARK {
index fbe34e2a7c9b134d4fbe3c963a174e8d2e4fe14b..74b2342c84948351582703f2f5e33c9b41dd52c9 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest_kde.h>
+#include <QTest>
+#include <QSignalSpy>
+#include <QTimer>
+#include <QMimeData>
 
 #include <kio/job.h>
 
 
 #include <kio/job.h>
 
@@ -44,10 +47,6 @@ void myMessageOutput(QtMsgType type, const char* msg)
     }
 }
 
     }
 }
 
-namespace {
-    const int DefaultTimeout = 5000;
-};
-
 Q_DECLARE_METATYPE(KItemRange)
 Q_DECLARE_METATYPE(KItemRangeList)
 Q_DECLARE_METATYPE(QList<int>)
 Q_DECLARE_METATYPE(KItemRange)
 Q_DECLARE_METATYPE(KItemRangeList)
 Q_DECLARE_METATYPE(QList<int>)
@@ -142,15 +141,14 @@ void KFileItemModelTest::testDefaultRoles()
 
 void KFileItemModelTest::testDefaultSortRole()
 {
 
 void KFileItemModelTest::testDefaultSortRole()
 {
-    QCOMPARE(m_model->sortRole(), QByteArray("text"));
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
 
 
-    QStringList files;
-    files << "c.txt" << "a.txt" << "b.txt";
+    QCOMPARE(m_model->sortRole(), QByteArray("text"));
 
 
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"c.txt", "a.txt", "b.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     QCOMPARE(m_model->count(), 3);
     QCOMPARE(m_model->data(0)["text"].toString(), QString("a.txt"));
 
     QCOMPARE(m_model->count(), 3);
     QCOMPARE(m_model->data(0)["text"].toString(), QString("a.txt"));
@@ -165,12 +163,12 @@ void KFileItemModelTest::testDefaultGroupedSorting()
 
 void KFileItemModelTest::testNewItems()
 {
 
 void KFileItemModelTest::testNewItems()
 {
-    QStringList files;
-    files << "a.txt" << "b.txt" << "c.txt";
-    m_testDir->createFiles(files);
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
+    m_testDir->createFiles({"a.txt", "b.txt", "c.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     QCOMPARE(m_model->count(), 3);
 
 
     QCOMPARE(m_model->count(), 3);
 
@@ -179,30 +177,32 @@ void KFileItemModelTest::testNewItems()
 
 void KFileItemModelTest::testRemoveItems()
 {
 
 void KFileItemModelTest::testRemoveItems()
 {
-    m_testDir->createFile("a.txt");
-    m_testDir->createFile("b.txt");
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
+
+    m_testDir->createFiles({"a.txt", "b.txt"});
     m_model->loadDirectory(m_testDir->url());
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 2);
     QVERIFY(m_model->isConsistent());
 
     m_testDir->removeFile("a.txt");
     m_model->m_dirLister->updateDirectory(m_testDir->url());
     QCOMPARE(m_model->count(), 2);
     QVERIFY(m_model->isConsistent());
 
     m_testDir->removeFile("a.txt");
     m_model->m_dirLister->updateDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsRemoved(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsRemovedSpy.wait());
     QCOMPARE(m_model->count(), 1);
     QVERIFY(m_model->isConsistent());
 }
 
 void KFileItemModelTest::testDirLoadingCompleted()
 {
     QCOMPARE(m_model->count(), 1);
     QVERIFY(m_model->isConsistent());
 }
 
 void KFileItemModelTest::testDirLoadingCompleted()
 {
-    QSignalSpy loadingCompletedSpy(m_model, SIGNAL(directoryLoadingCompleted()));
-    QSignalSpy itemsInsertedSpy(m_model, SIGNAL(itemsInserted(KItemRangeList)));
-    QSignalSpy itemsRemovedSpy(m_model, SIGNAL(itemsRemoved(KItemRangeList)));
+    QSignalSpy loadingCompletedSpy(m_model, &KFileItemModel::directoryLoadingCompleted);
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
 
     m_testDir->createFiles({"a.txt", "b.txt", "c.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_testDir->createFiles({"a.txt", "b.txt", "c.txt"});
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    QVERIFY(loadingCompletedSpy.wait());
     QCOMPARE(loadingCompletedSpy.count(), 1);
     QCOMPARE(itemsInsertedSpy.count(), 1);
     QCOMPARE(itemsRemovedSpy.count(), 0);
     QCOMPARE(loadingCompletedSpy.count(), 1);
     QCOMPARE(itemsInsertedSpy.count(), 1);
     QCOMPARE(itemsRemovedSpy.count(), 0);
@@ -210,7 +210,7 @@ void KFileItemModelTest::testDirLoadingCompleted()
 
     m_testDir->createFiles({"d.txt", "e.txt"});
     m_model->m_dirLister->updateDirectory(m_testDir->url());
 
     m_testDir->createFiles({"d.txt", "e.txt"});
     m_model->m_dirLister->updateDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    QVERIFY(loadingCompletedSpy.wait());
     QCOMPARE(loadingCompletedSpy.count(), 2);
     QCOMPARE(itemsInsertedSpy.count(), 2);
     QCOMPARE(itemsRemovedSpy.count(), 0);
     QCOMPARE(loadingCompletedSpy.count(), 2);
     QCOMPARE(itemsInsertedSpy.count(), 2);
     QCOMPARE(itemsRemovedSpy.count(), 0);
@@ -219,7 +219,7 @@ void KFileItemModelTest::testDirLoadingCompleted()
     m_testDir->removeFile("a.txt");
     m_testDir->createFile("f.txt");
     m_model->m_dirLister->updateDirectory(m_testDir->url());
     m_testDir->removeFile("a.txt");
     m_testDir->createFile("f.txt");
     m_model->m_dirLister->updateDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    QVERIFY(loadingCompletedSpy.wait());
     QCOMPARE(loadingCompletedSpy.count(), 3);
     QCOMPARE(itemsInsertedSpy.count(), 3);
     QCOMPARE(itemsRemovedSpy.count(), 1);
     QCOMPARE(loadingCompletedSpy.count(), 3);
     QCOMPARE(itemsInsertedSpy.count(), 3);
     QCOMPARE(itemsRemovedSpy.count(), 1);
@@ -227,7 +227,7 @@ void KFileItemModelTest::testDirLoadingCompleted()
 
     m_testDir->removeFile("b.txt");
     m_model->m_dirLister->updateDirectory(m_testDir->url());
 
     m_testDir->removeFile("b.txt");
     m_model->m_dirLister->updateDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsRemoved(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsRemovedSpy.wait());
     QCOMPARE(loadingCompletedSpy.count(), 4);
     QCOMPARE(itemsInsertedSpy.count(), 3);
     QCOMPARE(itemsRemovedSpy.count(), 2);
     QCOMPARE(loadingCompletedSpy.count(), 4);
     QCOMPARE(itemsInsertedSpy.count(), 3);
     QCOMPARE(itemsRemovedSpy.count(), 2);
@@ -238,16 +238,18 @@ void KFileItemModelTest::testDirLoadingCompleted()
 
 void KFileItemModelTest::testSetData()
 {
 
 void KFileItemModelTest::testSetData()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsChangedSpy(m_model, &KFileItemModel::itemsChanged);
+
     m_testDir->createFile("a.txt");
 
     m_model->loadDirectory(m_testDir->url());
     m_testDir->createFile("a.txt");
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     QHash<QByteArray, QVariant> values;
     values.insert("customRole1", "Test1");
     values.insert("customRole2", "Test2");
 
 
     QHash<QByteArray, QVariant> values;
     values.insert("customRole1", "Test1");
     values.insert("customRole2", "Test2");
 
-    QSignalSpy itemsChangedSpy(m_model, SIGNAL(itemsChanged(KItemRangeList,QSet<QByteArray>)));
     m_model->setData(0, values);
     QCOMPARE(itemsChangedSpy.count(), 1);
 
     m_model->setData(0, values);
     QCOMPARE(itemsChangedSpy.count(), 1);
 
@@ -289,18 +291,19 @@ void KFileItemModelTest::testSetDataWithModifiedSortRole()
     QFETCH(int, ratingIndex1);
     QFETCH(int, ratingIndex2);
 
     QFETCH(int, ratingIndex1);
     QFETCH(int, ratingIndex2);
 
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsMovedSpy(m_model, &KFileItemModel::itemsMoved);
+
     // Changing the value of a sort-role must result in
     // a reordering of the items.
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
     m_model->setSortRole("rating");
     QCOMPARE(m_model->sortRole(), QByteArray("rating"));
 
     // Changing the value of a sort-role must result in
     // a reordering of the items.
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
     m_model->setSortRole("rating");
     QCOMPARE(m_model->sortRole(), QByteArray("rating"));
 
-    QStringList files;
-    files << "a.txt" << "b.txt" << "c.txt";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a.txt", "b.txt", "c.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     // Fill the "rating" role of each file:
     // a.txt -> 2
 
     // Fill the "rating" role of each file:
     // a.txt -> 2
@@ -330,7 +333,7 @@ void KFileItemModelTest::testSetDataWithModifiedSortRole()
     m_model->setData(changedIndex, rating);
 
     if (expectMoveSignal) {
     m_model->setData(changedIndex, rating);
 
     if (expectMoveSignal) {
-        QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)), DefaultTimeout));
+        QVERIFY(itemsMovedSpy.wait());
     }
 
     QCOMPARE(m_model->data(0).value("rating").toInt(), ratingIndex0);
     }
 
     QCOMPARE(m_model->data(0).value("rating").toInt(), ratingIndex0);
@@ -341,14 +344,15 @@ void KFileItemModelTest::testSetDataWithModifiedSortRole()
 
 void KFileItemModelTest::testChangeSortRole()
 {
 
 void KFileItemModelTest::testChangeSortRole()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsMovedSpy(m_model, &KFileItemModel::itemsMoved);
+
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
 
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
 
-    QStringList files;
-    files << "a.txt" << "b.jpg" << "c.txt";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a.txt", "b.jpg", "c.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.jpg" << "c.txt");
 
     // Simulate that KFileItemModelRolesUpdater determines the mime type.
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.jpg" << "c.txt");
 
     // Simulate that KFileItemModelRolesUpdater determines the mime type.
@@ -359,10 +363,9 @@ void KFileItemModelTest::testChangeSortRole()
     }
 
     // Now: sort by type.
     }
 
     // Now: sort by type.
-    QSignalSpy spyItemsMoved(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)));
     m_model->setSortRole("type");
     QCOMPARE(m_model->sortRole(), QByteArray("type"));
     m_model->setSortRole("type");
     QCOMPARE(m_model->sortRole(), QByteArray("type"));
-    QVERIFY(!spyItemsMoved.isEmpty());
+    QVERIFY(!itemsMovedSpy.isEmpty());
 
     // The actual order of the files might depend on the translation of the
     // result of KFileItem::mimeComment() in the user's language.
 
     // The actual order of the files might depend on the translation of the
     // result of KFileItem::mimeComment() in the user's language.
@@ -380,16 +383,17 @@ void KFileItemModelTest::testChangeSortRole()
 
 void KFileItemModelTest::testResortAfterChangingName()
 {
 
 void KFileItemModelTest::testResortAfterChangingName()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsMovedSpy(m_model, &KFileItemModel::itemsMoved);
+
     // We sort by size in a directory where all files have the same size.
     // Therefore, the files are sorted by their names.
     m_model->setSortRole("size");
 
     // We sort by size in a directory where all files have the same size.
     // Therefore, the files are sorted by their names.
     m_model->setSortRole("size");
 
-    QStringList files;
-    files << "a.txt" << "b.txt" << "c.txt";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a.txt", "b.txt", "c.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt");
 
     // We rename a.txt to d.txt. Even though the size has not changed at all,
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt");
 
     // We rename a.txt to d.txt. Even though the size has not changed at all,
@@ -398,7 +402,7 @@ void KFileItemModelTest::testResortAfterChangingName()
     data.insert("text", "d.txt");
     m_model->setData(0, data);
 
     data.insert("text", "d.txt");
     m_model->setData(0, data);
 
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)), DefaultTimeout));
+    QVERIFY(itemsMovedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "b.txt" << "c.txt" << "d.txt");
 
     // We rename d.txt back to a.txt using the dir lister's refreshItems() signal.
     QCOMPARE(itemsInModel(), QStringList() << "b.txt" << "c.txt" << "d.txt");
 
     // We rename d.txt back to a.txt using the dir lister's refreshItems() signal.
@@ -410,13 +414,13 @@ void KFileItemModelTest::testResortAfterChangingName()
 
     m_model->slotRefreshItems({qMakePair(fileItemD, fileItemA)});
 
 
     m_model->slotRefreshItems({qMakePair(fileItemD, fileItemA)});
 
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)), DefaultTimeout));
+    QVERIFY(itemsMovedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt");
 }
 
 void KFileItemModelTest::testModelConsistencyWhenInsertingItems()
 {
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt");
 }
 
 void KFileItemModelTest::testModelConsistencyWhenInsertingItems()
 {
-    //QSKIP("Temporary disabled", SkipSingle);
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
 
     // KFileItemModel prevents that inserting a punch of items sequentially
     // results in an itemsInserted()-signal for each item. Instead internally
 
     // KFileItemModel prevents that inserting a punch of items sequentially
     // results in an itemsInserted()-signal for each item. Instead internally
@@ -426,14 +430,14 @@ void KFileItemModelTest::testModelConsistencyWhenInsertingItems()
     // the timeout to 1 millisecond.
     m_testDir->createFile("1");
     m_model->loadDirectory(m_testDir->url());
     // the timeout to 1 millisecond.
     m_testDir->createFile("1");
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 1);
 
     // Insert 10 items for 20 times. After each insert operation the model consistency
     // is checked.
     QSet<int> insertedItems;
     for (int i = 0; i < 20; ++i) {
     QCOMPARE(m_model->count(), 1);
 
     // Insert 10 items for 20 times. After each insert operation the model consistency
     // is checked.
     QSet<int> insertedItems;
     for (int i = 0; i < 20; ++i) {
-        QSignalSpy spy(m_model, SIGNAL(itemsInserted(KItemRangeList)));
+        itemsInsertedSpy.clear();
 
         for (int j = 0; j < 10; ++j) {
             int itemName = qrand();
 
         for (int j = 0; j < 10; ++j) {
             int itemName = qrand();
@@ -446,8 +450,8 @@ void KFileItemModelTest::testModelConsistencyWhenInsertingItems()
         }
 
         m_model->m_dirLister->updateDirectory(m_testDir->url());
         }
 
         m_model->m_dirLister->updateDirectory(m_testDir->url());
-        if (spy.count() == 0) {
-            QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+        if (itemsInsertedSpy.count() == 0) {
+            QVERIFY(itemsInsertedSpy.wait());
         }
 
         QVERIFY(m_model->isConsistent());
         }
 
         QVERIFY(m_model->isConsistent());
@@ -458,18 +462,17 @@ void KFileItemModelTest::testModelConsistencyWhenInsertingItems()
 
 void KFileItemModelTest::testItemRangeConsistencyWhenInsertingItems()
 {
 
 void KFileItemModelTest::testItemRangeConsistencyWhenInsertingItems()
 {
-    QStringList files;
-    files << "B" << "E" << "G";
-    m_testDir->createFiles(files);
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
+    m_testDir->createFiles({"B", "E", "G"});
 
     // Due to inserting the 3 items one item-range with index == 0 and
     // count == 3 must be given
 
     // Due to inserting the 3 items one item-range with index == 0 and
     // count == 3 must be given
-    QSignalSpy spy1(m_model, SIGNAL(itemsInserted(KItemRangeList)));
     m_model->loadDirectory(m_testDir->url());
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
 
-    QCOMPARE(spy1.count(), 1);
-    QList<QVariant> arguments = spy1.takeFirst();
+    QCOMPARE(itemsInsertedSpy.count(), 1);
+    QList<QVariant> arguments = itemsInsertedSpy.takeFirst();
     KItemRangeList itemRangeList = arguments.at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 3));
 
     KItemRangeList itemRangeList = arguments.at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 3));
 
@@ -485,22 +488,23 @@ void KFileItemModelTest::testItemRangeConsistencyWhenInsertingItems()
     //   index: 1, count: 2 for B, C
     //   index: 2, count: 1 for G
 
     //   index: 1, count: 2 for B, C
     //   index: 2, count: 1 for G
 
-    files.clear();
-    files << "A" << "C" << "D" << "F";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"A", "C", "D", "F"});
 
 
-    QSignalSpy spy2(m_model, SIGNAL(itemsInserted(KItemRangeList)));
     m_model->m_dirLister->updateDirectory(m_testDir->url());
     m_model->m_dirLister->updateDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
 
-    QCOMPARE(spy2.count(), 1);
-    arguments = spy2.takeFirst();
+    QCOMPARE(itemsInsertedSpy.count(), 1);
+    arguments = itemsInsertedSpy.takeFirst();
     itemRangeList = arguments.at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 1) << KItemRange(1, 2) << KItemRange(2, 1));
 }
 
 void KFileItemModelTest::testExpandItems()
 {
     itemRangeList = arguments.at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 1) << KItemRange(1, 2) << KItemRange(2, 1));
 }
 
 void KFileItemModelTest::testExpandItems()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
+    QSignalSpy loadingCompletedSpy(m_model, &KFileItemModel::directoryLoadingCompleted);
+
     // Test expanding subfolders in a folder with the items "a/", "a/a/", "a/a/1", "a/a-1/", "a/a-1/1".
     // Besides testing the basic item expansion functionality, the test makes sure that
     // KFileItemModel::expansionLevelsCompare(const KFileItem& a, const KFileItem& b)
     // Test expanding subfolders in a folder with the items "a/", "a/a/", "a/a/1", "a/a-1/", "a/a-1/1".
     // Besides testing the basic item expansion functionality, the test makes sure that
     // KFileItemModel::expansionLevelsCompare(const KFileItem& a, const KFileItem& b)
@@ -511,18 +515,16 @@ void KFileItemModelTest::testExpandItems()
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a/a/1" << "a/a-1/1"; // missing folders are created automatically
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a/a/1", "a/a-1/1"});
 
     // Store the URLs of all folders in a set.
     QSet<QUrl> allFolders;
 
     // Store the URLs of all folders in a set.
     QSet<QUrl> allFolders;
-    allFolders << QUrl::fromLocalFile(m_testDir->name() + 'a')
-               << QUrl::fromLocalFile(m_testDir->name() + "a/a")
-               << QUrl::fromLocalFile(m_testDir->name() + "a/a-1");
+    allFolders << QUrl::fromLocalFile(m_testDir->path() + "/a")
+               << QUrl::fromLocalFile(m_testDir->path() + "/a/a")
+               << QUrl::fromLocalFile(m_testDir->path() + "/a/a-1");
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     // So far, the model contains only "a/"
     QCOMPARE(m_model->count(), 1);
 
     // So far, the model contains only "a/"
     QCOMPARE(m_model->count(), 1);
@@ -530,17 +532,19 @@ void KFileItemModelTest::testExpandItems()
     QVERIFY(!m_model->isExpanded(0));
     QVERIFY(m_model->expandedDirectories().empty());
 
     QVERIFY(!m_model->isExpanded(0));
     QVERIFY(m_model->expandedDirectories().empty());
 
-    QSignalSpy spyInserted(m_model, SIGNAL(itemsInserted(KItemRangeList)));
+    QCOMPARE(itemsInsertedSpy.count(), 1);
+    KItemRangeList itemRangeList = itemsInsertedSpy.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 1)); // 1 new item "a/" with index 0
 
     // Expand the folder "a/" -> "a/a/" and "a/a-1/" become visible
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
 
     // Expand the folder "a/" -> "a/a/" and "a/a-1/" become visible
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 3); // 3 items: "a/", "a/a/", "a/a-1/"
     QCOMPARE(m_model->count(), 3); // 3 items: "a/", "a/a/", "a/a-1/"
-    QCOMPARE(m_model->expandedDirectories(), QSet<QUrl>() << QUrl::fromLocalFile(m_testDir->name() + 'a'));
+    QCOMPARE(m_model->expandedDirectories(), QSet<QUrl>() << QUrl::fromLocalFile(m_testDir->path() + "/a"));
 
 
-    QCOMPARE(spyInserted.count(), 1);
-    KItemRangeList itemRangeList = spyInserted.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsInsertedSpy.count(), 1);
+    itemRangeList = itemsInsertedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(1, 2)); // 2 new items "a/a/" and "a/a-1/" with indices 1 and 2
 
     QVERIFY(m_model->isExpandable(1));
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(1, 2)); // 2 new items "a/a/" and "a/a-1/" with indices 1 and 2
 
     QVERIFY(m_model->isExpandable(1));
@@ -551,12 +555,13 @@ void KFileItemModelTest::testExpandItems()
     // Expand the folder "a/a/" -> "a/a/1" becomes visible
     m_model->setExpanded(1, true);
     QVERIFY(m_model->isExpanded(1));
     // Expand the folder "a/a/" -> "a/a/1" becomes visible
     m_model->setExpanded(1, true);
     QVERIFY(m_model->isExpanded(1));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 4);  // 4 items: "a/", "a/a/", "a/a/1", "a/a-1/"
     QCOMPARE(m_model->count(), 4);  // 4 items: "a/", "a/a/", "a/a/1", "a/a-1/"
-    QCOMPARE(m_model->expandedDirectories(), QSet<QUrl>() << QUrl::fromLocalFile(m_testDir->name() + 'a') << QUrl::fromLocalFile(m_testDir->name() + "a/a"));
+    QCOMPARE(m_model->expandedDirectories(), QSet<QUrl>() << QUrl::fromLocalFile(m_testDir->path() + "/a")
+                                                          << QUrl::fromLocalFile(m_testDir->path() + "/a/a"));
 
 
-    QCOMPARE(spyInserted.count(), 1);
-    itemRangeList = spyInserted.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsInsertedSpy.count(), 1);
+    itemRangeList = itemsInsertedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(2, 1)); // 1 new item "a/a/1" with index 2
 
     QVERIFY(!m_model->isExpandable(2));
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(2, 1)); // 1 new item "a/a/1" with index 2
 
     QVERIFY(!m_model->isExpandable(2));
@@ -565,27 +570,25 @@ void KFileItemModelTest::testExpandItems()
     // Expand the folder "a/a-1/" -> "a/a-1/1" becomes visible
     m_model->setExpanded(3, true);
     QVERIFY(m_model->isExpanded(3));
     // Expand the folder "a/a-1/" -> "a/a-1/1" becomes visible
     m_model->setExpanded(3, true);
     QVERIFY(m_model->isExpanded(3));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 5);  // 5 items: "a/", "a/a/", "a/a/1", "a/a-1/", "a/a-1/1"
     QCOMPARE(m_model->expandedDirectories(), allFolders);
 
     QCOMPARE(m_model->count(), 5);  // 5 items: "a/", "a/a/", "a/a/1", "a/a-1/", "a/a-1/1"
     QCOMPARE(m_model->expandedDirectories(), allFolders);
 
-    QCOMPARE(spyInserted.count(), 1);
-    itemRangeList = spyInserted.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsInsertedSpy.count(), 1);
+    itemRangeList = itemsInsertedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(4, 1)); // 1 new item "a/a-1/1" with index 4
 
     QVERIFY(!m_model->isExpandable(4));
     QVERIFY(!m_model->isExpanded(4));
 
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(4, 1)); // 1 new item "a/a-1/1" with index 4
 
     QVERIFY(!m_model->isExpandable(4));
     QVERIFY(!m_model->isExpanded(4));
 
-    QSignalSpy spyRemoved(m_model, SIGNAL(itemsRemoved(KItemRangeList)));
-
     // Collapse the top-level folder -> all other items should disappear
     m_model->setExpanded(0, false);
     QVERIFY(!m_model->isExpanded(0));
     QCOMPARE(m_model->count(), 1);
     // Collapse the top-level folder -> all other items should disappear
     m_model->setExpanded(0, false);
     QVERIFY(!m_model->isExpanded(0));
     QCOMPARE(m_model->count(), 1);
-    QVERIFY(!m_model->expandedDirectories().contains(QUrl::fromLocalFile(m_testDir->name() + 'a'))); // TODO: Make sure that child URLs are also removed
+    QVERIFY(!m_model->expandedDirectories().contains(QUrl::fromLocalFile(m_testDir->path() + "/a"))); // TODO: Make sure that child URLs are also removed
 
 
-    QCOMPARE(spyRemoved.count(), 1);
-    itemRangeList = spyRemoved.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsRemovedSpy.count(), 1);
+    itemRangeList = itemsRemovedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(1, 4)); // 4 items removed
     QVERIFY(m_model->isConsistent());
 
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(1, 4)); // 4 items removed
     QVERIFY(m_model->isConsistent());
 
@@ -596,7 +599,7 @@ void KFileItemModelTest::testExpandItems()
 
     m_model->loadDirectory(m_testDir->url());
     m_model->restoreExpandedDirectories(allFolders);
 
     m_model->loadDirectory(m_testDir->url());
     m_model->restoreExpandedDirectories(allFolders);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    QVERIFY(loadingCompletedSpy.wait());
     QCOMPARE(m_model->count(), 5);  // 5 items: "a/", "a/a/", "a/a/1", "a/a-1/", "a/a-1/1"
     QVERIFY(m_model->isExpanded(0));
     QVERIFY(m_model->isExpanded(1));
     QCOMPARE(m_model->count(), 5);  // 5 items: "a/", "a/a/", "a/a/1", "a/a-1/", "a/a-1/1"
     QVERIFY(m_model->isExpanded(0));
     QVERIFY(m_model->isExpanded(1));
@@ -608,30 +611,33 @@ void KFileItemModelTest::testExpandItems()
 
     // Move to a sub folder, then call restoreExpandedFolders() *before* going back.
     // This is how DolphinView restores the expanded folders when navigating in history.
 
     // Move to a sub folder, then call restoreExpandedFolders() *before* going back.
     // This is how DolphinView restores the expanded folders when navigating in history.
-    m_model->loadDirectory(QUrl::fromLocalFile(m_testDir->name() + "a/a/"));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    m_model->loadDirectory(QUrl::fromLocalFile(m_testDir->path() + "/a/a/"));
+    QVERIFY(loadingCompletedSpy.wait());
     QCOMPARE(m_model->count(), 1);  // 1 item: "1"
     m_model->restoreExpandedDirectories(allFolders);
     m_model->loadDirectory(m_testDir->url());
     QCOMPARE(m_model->count(), 1);  // 1 item: "1"
     m_model->restoreExpandedDirectories(allFolders);
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    QVERIFY(loadingCompletedSpy.wait());
     QCOMPARE(m_model->count(), 5);  // 5 items: "a/", "a/a/", "a/a/1", "a/a-1/", "a/a-1/1"
     QCOMPARE(m_model->expandedDirectories(), allFolders);
 
     // Remove all expanded items by changing the roles
     QCOMPARE(m_model->count(), 5);  // 5 items: "a/", "a/a/", "a/a/1", "a/a-1/", "a/a-1/1"
     QCOMPARE(m_model->expandedDirectories(), allFolders);
 
     // Remove all expanded items by changing the roles
-    spyRemoved.clear();
+    itemsRemovedSpy.clear();
     m_model->setRoles(originalModelRoles);
     QVERIFY(!m_model->isExpanded(0));
     QCOMPARE(m_model->count(), 1);
     m_model->setRoles(originalModelRoles);
     QVERIFY(!m_model->isExpanded(0));
     QCOMPARE(m_model->count(), 1);
-    QVERIFY(!m_model->expandedDirectories().contains(QUrl::fromLocalFile(m_testDir->name() + 'a')));
+    QVERIFY(!m_model->expandedDirectories().contains(QUrl::fromLocalFile(m_testDir->path() + "/a")));
 
 
-    QCOMPARE(spyRemoved.count(), 1);
-    itemRangeList = spyRemoved.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsRemovedSpy.count(), 1);
+    itemRangeList = itemsRemovedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(1, 4)); // 4 items removed
     QVERIFY(m_model->isConsistent());
 }
 
 void KFileItemModelTest::testExpandParentItems()
 {
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(1, 4)); // 4 items removed
     QVERIFY(m_model->isConsistent());
 }
 
 void KFileItemModelTest::testExpandParentItems()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy loadingCompletedSpy(m_model, &KFileItemModel::directoryLoadingCompleted);
+
     // Create a tree structure of folders:
     // a 1/
     // a 1/b1/
     // Create a tree structure of folders:
     // a 1/
     // a 1/b1/
@@ -644,20 +650,18 @@ void KFileItemModelTest::testExpandParentItems()
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a 1/b1/c1/file.txt" << "a2/b2/c2/d2/file.txt"; // missing folders are created automatically
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a 1/b1/c1/file.txt", "a2/b2/c2/d2/file.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     // So far, the model contains only "a 1/" and "a2/".
     QCOMPARE(m_model->count(), 2);
     QVERIFY(m_model->expandedDirectories().empty());
 
     // Expand the parents of "a2/b2/c2".
 
     // So far, the model contains only "a 1/" and "a2/".
     QCOMPARE(m_model->count(), 2);
     QVERIFY(m_model->expandedDirectories().empty());
 
     // Expand the parents of "a2/b2/c2".
-    m_model->expandParentDirectories(QUrl::fromLocalFile(m_testDir->name() + "a2/b2/c2"));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    m_model->expandParentDirectories(QUrl::fromLocalFile(m_testDir->path() + "a2/b2/c2"));
+    QVERIFY(loadingCompletedSpy.wait());
 
     // The model should now contain "a 1/", "a2/", "a2/b2/", and "a2/b2/c2/".
     // It's important that only the parents of "a1/b1/c1" are expanded.
 
     // The model should now contain "a 1/", "a2/", "a2/b2/", and "a2/b2/c2/".
     // It's important that only the parents of "a1/b1/c1" are expanded.
@@ -668,8 +672,8 @@ void KFileItemModelTest::testExpandParentItems()
     QVERIFY(!m_model->isExpanded(3));
 
     // Expand the parents of "a 1/b1".
     QVERIFY(!m_model->isExpanded(3));
 
     // Expand the parents of "a 1/b1".
-    m_model->expandParentDirectories(QUrl::fromLocalFile(m_testDir->name() + "a 1/b1"));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    m_model->expandParentDirectories(QUrl::fromLocalFile(m_testDir->path() + "a 1/b1"));
+    QVERIFY(loadingCompletedSpy.wait());
 
     // The model should now contain "a 1/", "a 1/b1/", "a2/", "a2/b2", and "a2/b2/c2/".
     // It's important that only the parents of "a 1/b1/" and "a2/b2/c2/" are expanded.
 
     // The model should now contain "a 1/", "a 1/b1/", "a2/", "a2/b2", and "a2/b2/c2/".
     // It's important that only the parents of "a 1/b1/" and "a2/b2/c2/" are expanded.
@@ -683,7 +687,7 @@ void KFileItemModelTest::testExpandParentItems()
 
     // Expand "a 1/b1/".
     m_model->setExpanded(1, true);
 
     // Expand "a 1/b1/".
     m_model->setExpanded(1, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(directoryLoadingCompleted()), DefaultTimeout));
+    QVERIFY(loadingCompletedSpy.wait());
     QCOMPARE(m_model->count(), 6);
     QVERIFY(m_model->isExpanded(0));
     QVERIFY(m_model->isExpanded(1));
     QCOMPARE(m_model->count(), 6);
     QVERIFY(m_model->isExpanded(0));
     QVERIFY(m_model->isExpanded(1));
@@ -711,28 +715,27 @@ void KFileItemModelTest::testExpandParentItems()
  */
 void KFileItemModelTest::testMakeExpandedItemHidden()
 {
  */
 void KFileItemModelTest::testMakeExpandedItemHidden()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    m_testDir->createFile("1a/2a/3a");
-    m_testDir->createFile("1a/2a/3b");
-    m_testDir->createFile("1a/2b");
-    m_testDir->createFile("1b");
+    m_testDir->createFiles({"1a/2a/3a", "1a/2a/3b", "1a/2b", "1b"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     // So far, the model contains only "1a/" and "1b".
     QCOMPARE(m_model->count(), 2);
     m_model->setExpanded(0, true);
 
     // So far, the model contains only "1a/" and "1b".
     QCOMPARE(m_model->count(), 2);
     m_model->setExpanded(0, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     // Now "1a/2a" and "1a/2b" have appeared.
     QCOMPARE(m_model->count(), 4);
     m_model->setExpanded(1, true);
 
     // Now "1a/2a" and "1a/2b" have appeared.
     QCOMPARE(m_model->count(), 4);
     m_model->setExpanded(1, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 6);
 
     // Rename "1a/2" and make it hidden.
     QCOMPARE(m_model->count(), 6);
 
     // Rename "1a/2" and make it hidden.
@@ -742,7 +745,7 @@ void KFileItemModelTest::testMakeExpandedItemHidden()
     KIO::SimpleJob* job = KIO::rename(oldUrl, newUrl, KIO::HideProgressInfo);
     bool ok = job->exec();
     QVERIFY(ok);
     KIO::SimpleJob* job = KIO::rename(oldUrl, newUrl, KIO::HideProgressInfo);
     bool ok = job->exec();
     QVERIFY(ok);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsRemoved(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsRemovedSpy.wait());
 
     // "1a/2" and its subfolders have disappeared now.
     QVERIFY(m_model->isConsistent());
 
     // "1a/2" and its subfolders have disappeared now.
     QVERIFY(m_model->isConsistent());
@@ -755,17 +758,17 @@ void KFileItemModelTest::testMakeExpandedItemHidden()
 
 void KFileItemModelTest::testRemoveFilteredExpandedItems()
 {
 
 void KFileItemModelTest::testRemoveFilteredExpandedItems()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
     QSet<QByteArray> originalModelRoles = m_model->roles();
     QSet<QByteArray> modelRoles = originalModelRoles;
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> originalModelRoles = m_model->roles();
     QSet<QByteArray> modelRoles = originalModelRoles;
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "folder/child" << "file"; // missing folders are created automatically
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"folder/child", "file"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     // So far, the model contains only "folder/" and "file".
     QCOMPARE(m_model->count(), 2);
 
     // So far, the model contains only "folder/" and "file".
     QCOMPARE(m_model->count(), 2);
@@ -778,7 +781,7 @@ void KFileItemModelTest::testRemoveFilteredExpandedItems()
     // Expand "folder" -> "folder/child" becomes visible.
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
     // Expand "folder" -> "folder/child" becomes visible.
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "folder" << "child" << "file");
 
     // Add a name filter.
     QCOMPARE(itemsInModel(), QStringList() << "folder" << "child" << "file");
 
     // Add a name filter.
@@ -800,6 +803,9 @@ void KFileItemModelTest::testRemoveFilteredExpandedItems()
 
 void KFileItemModelTest::testSorting()
 {
 
 void KFileItemModelTest::testSorting()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsMovedSpy(m_model, &KFileItemModel::itemsMoved);
+
     // Create some files with different sizes and modification times to check the different sorting options
     QDateTime now = QDateTime::currentDateTime();
 
     // Create some files with different sizes and modification times to check the different sorting options
     QDateTime now = QDateTime::currentDateTime();
 
@@ -822,15 +828,15 @@ void KFileItemModelTest::testSorting()
     m_testDir->createFile(".f");
 
     m_model->loadDirectory(m_testDir->url());
     m_testDir->createFile(".f");
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
 
-    int index = m_model->index(QUrl(m_testDir->url().url() + 'c'));
+    int index = m_model->index(QUrl(m_testDir->url().url() + "/c"));
     m_model->setExpanded(index, true);
     m_model->setExpanded(index, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
 
-    index = m_model->index(QUrl(m_testDir->url().url() + "c/c-2"));
+    index = m_model->index(QUrl(m_testDir->url().url() + "/c/c-2"));
     m_model->setExpanded(index, true);
     m_model->setExpanded(index, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     // Default: Sort by Name, ascending
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
 
     // Default: Sort by Name, ascending
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
@@ -839,16 +845,14 @@ void KFileItemModelTest::testSorting()
     QVERIFY(!m_model->showHiddenFiles());
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "a" << "b" << "d" << "e");
 
     QVERIFY(!m_model->showHiddenFiles());
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "a" << "b" << "d" << "e");
 
-    QSignalSpy spyItemsMoved(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)));
-
     // Sort by Name, ascending, 'Sort Folders First' disabled
     m_model->setSortDirectoriesFirst(false);
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c" << "c-1" << "c-2" << "c-3" << "d" << "e");
     // Sort by Name, ascending, 'Sort Folders First' disabled
     m_model->setSortDirectoriesFirst(false);
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c" << "c-1" << "c-2" << "c-3" << "d" << "e");
-    QCOMPARE(spyItemsMoved.count(), 1);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(0, 6));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 2 << 4 << 5 << 3 << 0 << 1);
+    QCOMPARE(itemsMovedSpy.count(), 1);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(0, 6));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 2 << 4 << 5 << 3 << 0 << 1);
 
     // Sort by Name, descending
     m_model->setSortDirectoriesFirst(true);
 
     // Sort by Name, descending
     m_model->setSortDirectoriesFirst(true);
@@ -856,11 +860,11 @@ void KFileItemModelTest::testSorting()
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
     QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder);
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "e" << "d" << "b" << "a");
     QCOMPARE(m_model->sortRole(), QByteArray("text"));
     QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder);
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "e" << "d" << "b" << "a");
-    QCOMPARE(spyItemsMoved.count(), 2);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(0, 6));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 4 << 5 << 0 << 3 << 1 << 2);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(4, 4));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 6 << 5 << 4);
+    QCOMPARE(itemsMovedSpy.count(), 2);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(0, 6));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 4 << 5 << 0 << 3 << 1 << 2);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(4, 4));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 6 << 5 << 4);
 
     // Sort by Date, descending
     m_model->setSortDirectoriesFirst(true);
 
     // Sort by Date, descending
     m_model->setSortDirectoriesFirst(true);
@@ -868,18 +872,18 @@ void KFileItemModelTest::testSorting()
     QCOMPARE(m_model->sortRole(), QByteArray("date"));
     QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder);
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "b" << "d" << "a" << "e");
     QCOMPARE(m_model->sortRole(), QByteArray("date"));
     QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder);
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "b" << "d" << "a" << "e");
-    QCOMPARE(spyItemsMoved.count(), 1);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(4, 4));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 5 << 4 << 6);
+    QCOMPARE(itemsMovedSpy.count(), 1);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(4, 4));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 5 << 4 << 6);
 
     // Sort by Date, ascending
     m_model->setSortOrder(Qt::AscendingOrder);
     QCOMPARE(m_model->sortRole(), QByteArray("date"));
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "e" << "a" << "d" << "b");
 
     // Sort by Date, ascending
     m_model->setSortOrder(Qt::AscendingOrder);
     QCOMPARE(m_model->sortRole(), QByteArray("date"));
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "e" << "a" << "d" << "b");
-    QCOMPARE(spyItemsMoved.count(), 1);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(4, 4));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 6 << 5 << 4);
+    QCOMPARE(itemsMovedSpy.count(), 1);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(4, 4));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 6 << 5 << 4);
 
     // Sort by Date, ascending, 'Sort Folders First' disabled
     m_model->setSortDirectoriesFirst(false);
 
     // Sort by Date, ascending, 'Sort Folders First' disabled
     m_model->setSortDirectoriesFirst(false);
@@ -887,18 +891,18 @@ void KFileItemModelTest::testSorting()
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QVERIFY(!m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "e" << "a" << "c" << "c-1" << "c-2" << "c-3" << "d" << "b");
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QVERIFY(!m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "e" << "a" << "c" << "c-1" << "c-2" << "c-3" << "d" << "b");
-    QCOMPARE(spyItemsMoved.count(), 1);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(0, 6));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 2 << 4 << 5 << 3 << 0 << 1);
+    QCOMPARE(itemsMovedSpy.count(), 1);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(0, 6));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 2 << 4 << 5 << 3 << 0 << 1);
 
     // Sort by Name, ascending, 'Sort Folders First' disabled
     m_model->setSortRole("text");
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QVERIFY(!m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c" << "c-1" << "c-2" << "c-3" << "d" << "e");
 
     // Sort by Name, ascending, 'Sort Folders First' disabled
     m_model->setSortRole("text");
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QVERIFY(!m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c" << "c-1" << "c-2" << "c-3" << "d" << "e");
-    QCOMPARE(spyItemsMoved.count(), 1);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(0, 8));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 0 << 2 << 3 << 4 << 5 << 6 << 1);
+    QCOMPARE(itemsMovedSpy.count(), 1);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(0, 8));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 0 << 2 << 3 << 4 << 5 << 6 << 1);
 
     // Sort by Size, ascending, 'Sort Folders First' disabled
     m_model->setSortRole("size");
 
     // Sort by Size, ascending, 'Sort Folders First' disabled
     m_model->setSortRole("size");
@@ -906,9 +910,9 @@ void KFileItemModelTest::testSorting()
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QVERIFY(!m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "a" << "b" << "e" << "d");
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QVERIFY(!m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "a" << "b" << "e" << "d");
-    QCOMPARE(spyItemsMoved.count(), 1);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(0, 8));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 4 << 5 << 0 << 3 << 1 << 2 << 7 << 6);
+    QCOMPARE(itemsMovedSpy.count(), 1);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(0, 8));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 4 << 5 << 0 << 3 << 1 << 2 << 7 << 6);
 
     // In 'Sort by Size' mode, folders are always first -> changing 'Sort Folders First' does not resort the model
     m_model->setSortDirectoriesFirst(true);
 
     // In 'Sort by Size' mode, folders are always first -> changing 'Sort Folders First' does not resort the model
     m_model->setSortDirectoriesFirst(true);
@@ -916,7 +920,7 @@ void KFileItemModelTest::testSorting()
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QVERIFY(m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "a" << "b" << "e" << "d");
     QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder);
     QVERIFY(m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "a" << "b" << "e" << "d");
-    QCOMPARE(spyItemsMoved.count(), 0);
+    QCOMPARE(itemsMovedSpy.count(), 0);
 
     // Sort by Size, descending, 'Sort Folders First' enabled
     m_model->setSortOrder(Qt::DescendingOrder);
 
     // Sort by Size, descending, 'Sort Folders First' enabled
     m_model->setSortOrder(Qt::DescendingOrder);
@@ -924,21 +928,21 @@ void KFileItemModelTest::testSorting()
     QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder);
     QVERIFY(m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "d" << "e" << "b" << "a");
     QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder);
     QVERIFY(m_model->sortDirectoriesFirst());
     QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "d" << "e" << "b" << "a");
-    QCOMPARE(spyItemsMoved.count(), 1);
-    QCOMPARE(spyItemsMoved.first().at(0).value<KItemRange>(), KItemRange(4, 4));
-    QCOMPARE(spyItemsMoved.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 6 << 5 << 4);
+    QCOMPARE(itemsMovedSpy.count(), 1);
+    QCOMPARE(itemsMovedSpy.first().at(0).value<KItemRange>(), KItemRange(4, 4));
+    QCOMPARE(itemsMovedSpy.takeFirst().at(1).value<QList<int> >(), QList<int>() << 7 << 6 << 5 << 4);
 
     // TODO: Sort by other roles; show/hide hidden files
 }
 
 void KFileItemModelTest::testIndexForKeyboardSearch()
 {
 
     // TODO: Sort by other roles; show/hide hidden files
 }
 
 void KFileItemModelTest::testIndexForKeyboardSearch()
 {
-    QStringList files;
-    files << "a" << "aa" << "Image.jpg" << "Image.png" << "Text" << "Text1" << "Text2" << "Text11";
-    m_testDir->createFiles(files);
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
+    m_testDir->createFiles({"a", "aa", "Image.jpg", "Image.png", "Text", "Text1", "Text2", "Text11"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     // Search from index 0
     QCOMPARE(m_model->indexForKeyboardSearch("a", 0), 0);
 
     // Search from index 0
     QCOMPARE(m_model->indexForKeyboardSearch("a", 0), 0);
@@ -983,12 +987,12 @@ void KFileItemModelTest::testIndexForKeyboardSearch()
 
 void KFileItemModelTest::testNameFilter()
 {
 
 void KFileItemModelTest::testNameFilter()
 {
-    QStringList files;
-    files << "A1" << "A2" << "Abc" << "Bcd" << "Cde";
-    m_testDir->createFiles(files);
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
+    m_testDir->createFiles({"A1", "A2", "Abc", "Bcd", "Cde"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
 
     m_model->setNameFilter("A"); // Shows A1, A2 and Abc
     QCOMPARE(m_model->count(), 3);
 
     m_model->setNameFilter("A"); // Shows A1, A2 and Abc
     QCOMPARE(m_model->count(), 3);
@@ -1040,28 +1044,27 @@ void KFileItemModelTest::testEmptyPath()
  */
 void KFileItemModelTest::testRefreshExpandedItem()
 {
  */
 void KFileItemModelTest::testRefreshExpandedItem()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsChangedSpy(m_model, &KFileItemModel::itemsChanged);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a/1" << "a/2" << "3" << "4";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a/1", "a/2", "3", "4"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 3); // "a/", "3", "4"
 
     m_model->setExpanded(0, true);
     QCOMPARE(m_model->count(), 3); // "a/", "3", "4"
 
     m_model->setExpanded(0, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 5); // "a/", "a/1", "a/2", "3", "4"
     QVERIFY(m_model->isExpanded(0));
 
     QCOMPARE(m_model->count(), 5); // "a/", "a/1", "a/2", "3", "4"
     QVERIFY(m_model->isExpanded(0));
 
-    QSignalSpy spyItemsChanged(m_model, SIGNAL(itemsChanged(KItemRangeList,QSet<QByteArray>)));
-
     const KFileItem item = m_model->fileItem(0);
     m_model->slotRefreshItems({qMakePair(item, item)});
     const KFileItem item = m_model->fileItem(0);
     m_model->slotRefreshItems({qMakePair(item, item)});
-    QVERIFY(!spyItemsChanged.isEmpty());
+    QVERIFY(!itemsChangedSpy.isEmpty());
 
     QCOMPARE(m_model->count(), 5); // "a/", "a/1", "a/2", "3", "4"
     QVERIFY(m_model->isExpanded(0));
 
     QCOMPARE(m_model->count(), 5); // "a/", "a/1", "a/2", "3", "4"
     QVERIFY(m_model->isExpanded(0));
@@ -1079,37 +1082,37 @@ void KFileItemModelTest::testRemoveHiddenItems()
     m_testDir->createDir("d");
     m_testDir->createFiles({".f", ".g", "h", "i"});
 
     m_testDir->createDir("d");
     m_testDir->createFiles({".f", ".g", "h", "i"});
 
-    QSignalSpy spyItemsInserted(m_model, SIGNAL(itemsInserted(KItemRangeList)));
-    QSignalSpy spyItemsRemoved(m_model, SIGNAL(itemsRemoved(KItemRangeList)));
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
 
     m_model->setShowHiddenFiles(true);
     m_model->loadDirectory(m_testDir->url());
 
     m_model->setShowHiddenFiles(true);
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << ".a" << ".b" << "c" << "d" <<".f" << ".g" << "h" << "i");
     QCOMPARE(itemsInModel(), QStringList() << ".a" << ".b" << "c" << "d" <<".f" << ".g" << "h" << "i");
-    QCOMPARE(spyItemsInserted.count(), 1);
-    QCOMPARE(spyItemsRemoved.count(), 0);
-    KItemRangeList itemRangeList = spyItemsInserted.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsInsertedSpy.count(), 1);
+    QCOMPARE(itemsRemovedSpy.count(), 0);
+    KItemRangeList itemRangeList = itemsInsertedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 8));
 
     m_model->setShowHiddenFiles(false);
     QCOMPARE(itemsInModel(), QStringList() << "c" << "d" << "h" << "i");
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 8));
 
     m_model->setShowHiddenFiles(false);
     QCOMPARE(itemsInModel(), QStringList() << "c" << "d" << "h" << "i");
-    QCOMPARE(spyItemsInserted.count(), 0);
-    QCOMPARE(spyItemsRemoved.count(), 1);
-    itemRangeList = spyItemsRemoved.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsInsertedSpy.count(), 0);
+    QCOMPARE(itemsRemovedSpy.count(), 1);
+    itemRangeList = itemsRemovedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 2) << KItemRange(4, 2));
 
     m_model->setShowHiddenFiles(true);
     QCOMPARE(itemsInModel(), QStringList() << ".a" << ".b" << "c" << "d" <<".f" << ".g" << "h" << "i");
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 2) << KItemRange(4, 2));
 
     m_model->setShowHiddenFiles(true);
     QCOMPARE(itemsInModel(), QStringList() << ".a" << ".b" << "c" << "d" <<".f" << ".g" << "h" << "i");
-    QCOMPARE(spyItemsInserted.count(), 1);
-    QCOMPARE(spyItemsRemoved.count(), 0);
-    itemRangeList = spyItemsInserted.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsInsertedSpy.count(), 1);
+    QCOMPARE(itemsRemovedSpy.count(), 0);
+    itemRangeList = itemsInsertedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 2) << KItemRange(2, 2));
 
     m_model->clear();
     QCOMPARE(itemsInModel(), QStringList());
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 2) << KItemRange(2, 2));
 
     m_model->clear();
     QCOMPARE(itemsInModel(), QStringList());
-    QCOMPARE(spyItemsInserted.count(), 0);
-    QCOMPARE(spyItemsRemoved.count(), 1);
-    itemRangeList = spyItemsRemoved.takeFirst().at(0).value<KItemRangeList>();
+    QCOMPARE(itemsInsertedSpy.count(), 0);
+    QCOMPARE(itemsRemovedSpy.count(), 1);
+    itemRangeList = itemsRemovedSpy.takeFirst().at(0).value<KItemRangeList>();
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 8));
 
     // Hiding hidden files makes the dir lister emit its itemsDeleted signal.
     QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 8));
 
     // Hiding hidden files makes the dir lister emit its itemsDeleted signal.
@@ -1122,42 +1125,43 @@ void KFileItemModelTest::testRemoveHiddenItems()
  */
 void KFileItemModelTest::collapseParentOfHiddenItems()
 {
  */
 void KFileItemModelTest::collapseParentOfHiddenItems()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a/1" << "a/b/1" << "a/b/c/1" << "a/b/c/d/1";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a/1", "a/b/1", "a/b/c/1", "a/b/c/d/1"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 1); // Only "a/"
 
     // Expand "a/".
     m_model->setExpanded(0, true);
     QCOMPARE(m_model->count(), 1); // Only "a/"
 
     // Expand "a/".
     m_model->setExpanded(0, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 3); // 3 items: "a/", "a/b/", "a/1"
 
     // Expand "a/b/".
     m_model->setExpanded(1, true);
     QCOMPARE(m_model->count(), 3); // 3 items: "a/", "a/b/", "a/1"
 
     // Expand "a/b/".
     m_model->setExpanded(1, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 5); // 5 items: "a/", "a/b/", "a/b/c", "a/b/1", "a/1"
 
     // Expand "a/b/c/".
     m_model->setExpanded(2, true);
     QCOMPARE(m_model->count(), 5); // 5 items: "a/", "a/b/", "a/b/c", "a/b/1", "a/1"
 
     // Expand "a/b/c/".
     m_model->setExpanded(2, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 7); // 7 items: "a/", "a/b/", "a/b/c", "a/b/c/d/", "a/b/c/1", "a/b/1", "a/1"
 
     // Set a name filter that matches nothing -> only the expanded folders remain.
     m_model->setNameFilter("xyz");
     QCOMPARE(m_model->count(), 7); // 7 items: "a/", "a/b/", "a/b/c", "a/b/c/d/", "a/b/c/1", "a/b/1", "a/1"
 
     // Set a name filter that matches nothing -> only the expanded folders remain.
     m_model->setNameFilter("xyz");
+    QCOMPARE(itemsRemovedSpy.count(), 1);
     QCOMPARE(m_model->count(), 3);
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c");
 
     // Collapse the folder "a/".
     QCOMPARE(m_model->count(), 3);
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c");
 
     // Collapse the folder "a/".
-    QSignalSpy spyItemsRemoved(m_model, SIGNAL(itemsRemoved(KItemRangeList)));
     m_model->setExpanded(0, false);
     m_model->setExpanded(0, false);
-    QCOMPARE(spyItemsRemoved.count(), 1);
+    QCOMPARE(itemsRemovedSpy.count(), 2);
     QCOMPARE(m_model->count(), 1);
     QCOMPARE(itemsInModel(), QStringList() << "a");
 
     QCOMPARE(m_model->count(), 1);
     QCOMPARE(itemsInModel(), QStringList() << "a");
 
@@ -1171,42 +1175,43 @@ void KFileItemModelTest::collapseParentOfHiddenItems()
  */
 void KFileItemModelTest::removeParentOfHiddenItems()
 {
  */
 void KFileItemModelTest::removeParentOfHiddenItems()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a/1" << "a/b/1" << "a/b/c/1" << "a/b/c/d/1";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a/1", "a/b/1", "a/b/c/1", "a/b/c/d/1"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 1); // Only "a/"
 
     // Expand "a/".
     m_model->setExpanded(0, true);
     QCOMPARE(m_model->count(), 1); // Only "a/"
 
     // Expand "a/".
     m_model->setExpanded(0, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 3); // 3 items: "a/", "a/b/", "a/1"
 
     // Expand "a/b/".
     m_model->setExpanded(1, true);
     QCOMPARE(m_model->count(), 3); // 3 items: "a/", "a/b/", "a/1"
 
     // Expand "a/b/".
     m_model->setExpanded(1, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 5); // 5 items: "a/", "a/b/", "a/b/c", "a/b/1", "a/1"
 
     // Expand "a/b/c/".
     m_model->setExpanded(2, true);
     QCOMPARE(m_model->count(), 5); // 5 items: "a/", "a/b/", "a/b/c", "a/b/1", "a/1"
 
     // Expand "a/b/c/".
     m_model->setExpanded(2, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(m_model->count(), 7); // 7 items: "a/", "a/b/", "a/b/c", "a/b/c/d/", "a/b/c/1", "a/b/1", "a/1"
 
     // Set a name filter that matches nothing -> only the expanded folders remain.
     m_model->setNameFilter("xyz");
     QCOMPARE(m_model->count(), 7); // 7 items: "a/", "a/b/", "a/b/c", "a/b/c/d/", "a/b/c/1", "a/b/1", "a/1"
 
     // Set a name filter that matches nothing -> only the expanded folders remain.
     m_model->setNameFilter("xyz");
+    QCOMPARE(itemsRemovedSpy.count(), 1);
     QCOMPARE(m_model->count(), 3);
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c");
 
     // Simulate the deletion of the directory "a/b/".
     QCOMPARE(m_model->count(), 3);
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c");
 
     // Simulate the deletion of the directory "a/b/".
-    QSignalSpy spyItemsRemoved(m_model, SIGNAL(itemsRemoved(KItemRangeList)));
     m_model->slotItemsDeleted(KFileItemList() << m_model->fileItem(1));
     m_model->slotItemsDeleted(KFileItemList() << m_model->fileItem(1));
-    QCOMPARE(spyItemsRemoved.count(), 1);
+    QCOMPARE(itemsRemovedSpy.count(), 2);
     QCOMPARE(m_model->count(), 1);
     QCOMPARE(itemsInModel(), QStringList() << "a");
 
     QCOMPARE(m_model->count(), 1);
     QCOMPARE(itemsInModel(), QStringList() << "a");
 
@@ -1223,33 +1228,34 @@ void KFileItemModelTest::removeParentOfHiddenItems()
  */
 void KFileItemModelTest::testGeneralParentChildRelationships()
 {
  */
 void KFileItemModelTest::testGeneralParentChildRelationships()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsRemovedSpy(m_model, &KFileItemModel::itemsRemoved);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "parent1/realChild1/realGrandChild1" << "parent2/realChild2/realGrandChild2";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"parent1/realChild1/realGrandChild1", "parent2/realChild2/realGrandChild2"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "parent2");
 
     // Expand all folders.
     m_model->setExpanded(0, true);
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "parent2");
 
     // Expand all folders.
     m_model->setExpanded(0, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "parent2");
 
     m_model->setExpanded(1, true);
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "parent2");
 
     m_model->setExpanded(1, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "realGrandChild1" << "parent2");
 
     m_model->setExpanded(3, true);
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "realGrandChild1" << "parent2");
 
     m_model->setExpanded(3, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "realGrandChild1" << "parent2" << "realChild2");
 
     m_model->setExpanded(4, true);
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "realGrandChild1" << "parent2" << "realChild2");
 
     m_model->setExpanded(4, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "realGrandChild1" << "parent2" << "realChild2" << "realGrandChild2");
 
     // Add some more children and grand-children.
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "realGrandChild1" << "parent2" << "realChild2" << "realGrandChild2");
 
     // Add some more children and grand-children.
@@ -1279,7 +1285,6 @@ void KFileItemModelTest::testGeneralParentChildRelationships()
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "grandChild1" << "realGrandChild1" << "child1" << "parent2" << "realChild2" << "grandChild2" << "realGrandChild2" << "child2");
 
     // Set a name filter that matches nothing -> only expanded folders remain.
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "grandChild1" << "realGrandChild1" << "child1" << "parent2" << "realChild2" << "grandChild2" << "realGrandChild2" << "child2");
 
     // Set a name filter that matches nothing -> only expanded folders remain.
-    QSignalSpy itemsRemovedSpy(m_model, SIGNAL(itemsRemoved(KItemRangeList)));
     m_model->setNameFilter("xyz");
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "parent2" << "realChild2");
     QCOMPARE(itemsRemovedSpy.count(), 1);
     m_model->setNameFilter("xyz");
     QCOMPARE(itemsInModel(), QStringList() << "parent1" << "realChild1" << "parent2" << "realChild2");
     QCOMPARE(itemsRemovedSpy.count(), 1);
@@ -1310,14 +1315,15 @@ void KFileItemModelTest::testGeneralParentChildRelationships()
 
 void KFileItemModelTest::testNameRoleGroups()
 {
 
 void KFileItemModelTest::testNameRoleGroups()
 {
-    QStringList files;
-    files << "b.txt" << "c.txt" << "d.txt" << "e.txt";
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+    QSignalSpy itemsMovedSpy(m_model, &KFileItemModel::itemsMoved);
+    QSignalSpy groupsChangedSpy(m_model, &KFileItemModel::groupsChanged);
 
 
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"b.txt", "c.txt", "d.txt", "e.txt"});
 
     m_model->setGroupedSorting(true);
     m_model->loadDirectory(m_testDir->url());
 
     m_model->setGroupedSorting(true);
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "b.txt" << "c.txt" << "d.txt" << "e.txt");
 
     QList<QPair<int, QVariant> > expectedGroups;
     QCOMPARE(itemsInModel(), QStringList() << "b.txt" << "c.txt" << "d.txt" << "e.txt");
 
     QList<QPair<int, QVariant> > expectedGroups;
@@ -1331,7 +1337,7 @@ void KFileItemModelTest::testNameRoleGroups()
     QHash<QByteArray, QVariant> data;
     data.insert("text", "a.txt");
     m_model->setData(2, data);
     QHash<QByteArray, QVariant> data;
     data.insert("text", "a.txt");
     m_model->setData(2, data);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsMoved(KItemRange,QList<int>)), DefaultTimeout));
+    QVERIFY(itemsMovedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "e.txt");
 
     expectedGroups.clear();
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "e.txt");
 
     expectedGroups.clear();
@@ -1344,7 +1350,7 @@ void KFileItemModelTest::testNameRoleGroups()
     // Rename c.txt to d.txt.
     data.insert("text", "d.txt");
     m_model->setData(2, data);
     // Rename c.txt to d.txt.
     data.insert("text", "d.txt");
     m_model->setData(2, data);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(groupsChanged()), DefaultTimeout));
+    QVERIFY(groupsChangedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "d.txt" << "e.txt");
 
     expectedGroups.clear();
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "d.txt" << "e.txt");
 
     expectedGroups.clear();
@@ -1362,7 +1368,7 @@ void KFileItemModelTest::testNameRoleGroups()
     fileItemC.setUrl(urlC);
 
     m_model->slotRefreshItems({qMakePair(fileItemD, fileItemC)});
     fileItemC.setUrl(urlC);
 
     m_model->slotRefreshItems({qMakePair(fileItemD, fileItemC)});
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(groupsChanged()), DefaultTimeout));
+    QVERIFY(groupsChangedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "e.txt");
 
     expectedGroups.clear();
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "e.txt");
 
     expectedGroups.clear();
@@ -1375,18 +1381,17 @@ void KFileItemModelTest::testNameRoleGroups()
 
 void KFileItemModelTest::testNameRoleGroupsWithExpandedItems()
 {
 
 void KFileItemModelTest::testNameRoleGroupsWithExpandedItems()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a/b.txt" << "a/c.txt" << "d/e.txt" << "d/f.txt";
-
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a/b.txt", "a/c.txt", "d/e.txt", "d/f.txt"});
 
     m_model->setGroupedSorting(true);
     m_model->loadDirectory(m_testDir->url());
 
     m_model->setGroupedSorting(true);
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a" << "d");
 
     QList<QPair<int, QVariant> > expectedGroups;
     QCOMPARE(itemsInModel(), QStringList() << "a" << "d");
 
     QList<QPair<int, QVariant> > expectedGroups;
@@ -1401,41 +1406,40 @@ void KFileItemModelTest::testNameRoleGroupsWithExpandedItems()
 
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
 
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b.txt" << "c.txt" << "d");
     QCOMPARE(m_model->groups(), expectedGroups);
 
     m_model->setExpanded(3, true);
     QVERIFY(m_model->isExpanded(3));
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b.txt" << "c.txt" << "d");
     QCOMPARE(m_model->groups(), expectedGroups);
 
     m_model->setExpanded(3, true);
     QVERIFY(m_model->isExpanded(3));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b.txt" << "c.txt" << "d" << "e.txt" << "f.txt");
     QCOMPARE(m_model->groups(), expectedGroups);
 }
 
 void KFileItemModelTest::testInconsistentModel()
 {
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b.txt" << "c.txt" << "d" << "e.txt" << "f.txt");
     QCOMPARE(m_model->groups(), expectedGroups);
 }
 
 void KFileItemModelTest::testInconsistentModel()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a/b/c1.txt" << "a/b/c2.txt";
-
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a/b/c1.txt", "a/b/c2.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a");
 
     // Expand "a/" and "a/b/".
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
     QCOMPARE(itemsInModel(), QStringList() << "a");
 
     // Expand "a/" and "a/b/".
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b");
 
     m_model->setExpanded(1, true);
     QVERIFY(m_model->isExpanded(1));
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b");
 
     m_model->setExpanded(1, true);
     QVERIFY(m_model->isExpanded(1));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c1.txt" << "c2.txt");
 
     // Add the files "c1.txt" and "c2.txt" to the model also as top-level items.
     QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c1.txt" << "c2.txt");
 
     // Add the files "c1.txt" and "c2.txt" to the model also as top-level items.
@@ -1471,16 +1475,16 @@ void KFileItemModelTest::testInconsistentModel()
 
 void KFileItemModelTest::testChangeRolesForFilteredItems()
 {
 
 void KFileItemModelTest::testChangeRolesForFilteredItems()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "owner";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "owner";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a.txt" << "aa.txt" << "aaa.txt";
-    m_testDir->createFiles(files);
+    m_testDir->createFiles({"a.txt", "aa.txt", "aaa.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "aa.txt" << "aaa.txt");
 
     for (int index = 0; index < m_model->count(); ++index) {
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "aa.txt" << "aaa.txt");
 
     for (int index = 0; index < m_model->count(); ++index) {
@@ -1568,12 +1572,12 @@ void KFileItemModelTest::testChangeSortRoleWhileFiltering()
 
 void KFileItemModelTest::testRefreshFilteredItems()
 {
 
 void KFileItemModelTest::testRefreshFilteredItems()
 {
-    QStringList files;
-    files << "a.txt" << "b.txt" << "c.jpg" << "d.jpg";
-    m_testDir->createFiles(files);
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
+    m_testDir->createFiles({"a.txt", "b.txt", "c.jpg", "d.jpg"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.jpg" << "d.jpg");
 
     const KFileItem fileItemC = m_model->fileItem(2);
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.jpg" << "d.jpg");
 
     const KFileItem fileItemC = m_model->fileItem(2);
@@ -1585,7 +1589,7 @@ void KFileItemModelTest::testRefreshFilteredItems()
     // Rename one of the .jpg files.
     KFileItem fileItemE = fileItemC;
     QUrl urlE = fileItemE.url().adjusted(QUrl::RemoveFilename);
     // Rename one of the .jpg files.
     KFileItem fileItemE = fileItemC;
     QUrl urlE = fileItemE.url().adjusted(QUrl::RemoveFilename);
-    urlE.setPath(urlE.path() + "e.jpg");
+    urlE.setPath(urlE.path() + "/e.jpg");
     fileItemE.setUrl(urlE);
 
     m_model->slotRefreshItems({qMakePair(fileItemC, fileItemE)});
     fileItemE.setUrl(urlE);
 
     m_model->slotRefreshItems({qMakePair(fileItemC, fileItemE)});
@@ -1597,21 +1601,21 @@ void KFileItemModelTest::testRefreshFilteredItems()
 
 void KFileItemModelTest::testCreateMimeData()
 {
 
 void KFileItemModelTest::testCreateMimeData()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a/1";
-    m_testDir->createFiles(files);
+    m_testDir->createFile("a/1");
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a");
 
     // Expand "a/".
     m_model->setExpanded(0, true);
     QCOMPARE(itemsInModel(), QStringList() << "a");
 
     // Expand "a/".
     m_model->setExpanded(0, true);
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a" << "1");
 
     // Verify that creating the MIME data for a child of an expanded folder does
     QCOMPARE(itemsInModel(), QStringList() << "a" << "1");
 
     // Verify that creating the MIME data for a child of an expanded folder does
@@ -1624,28 +1628,28 @@ void KFileItemModelTest::testCreateMimeData()
 
 void KFileItemModelTest::testCollapseFolderWhileLoading()
 {
 
 void KFileItemModelTest::testCollapseFolderWhileLoading()
 {
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
     QSet<QByteArray> modelRoles = m_model->roles();
     modelRoles << "isExpanded" << "isExpandable" << "expandedParentsCount";
     m_model->setRoles(modelRoles);
 
-    QStringList files;
-    files << "a2/b/c1.txt";
-    m_testDir->createFiles(files);
+    m_testDir->createFile("a2/b/c1.txt");
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a2");
 
     // Expand "a2/".
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
     QCOMPARE(itemsInModel(), QStringList() << "a2");
 
     // Expand "a2/".
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a2" << "b");
 
     // Expand "a2/b/".
     m_model->setExpanded(1, true);
     QVERIFY(m_model->isExpanded(1));
     QCOMPARE(itemsInModel(), QStringList() << "a2" << "b");
 
     // Expand "a2/b/".
     m_model->setExpanded(1, true);
     QVERIFY(m_model->isExpanded(1));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a2" << "b" << "c1.txt");
 
     // Simulate that a new item "c2.txt" appears, but that the dir lister's completed()
     QCOMPARE(itemsInModel(), QStringList() << "a2" << "b" << "c1.txt");
 
     // Simulate that a new item "c2.txt" appears, but that the dir lister's completed()
@@ -1677,7 +1681,7 @@ void KFileItemModelTest::testCollapseFolderWhileLoading()
     // Expand "a2/" again.
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
     // Expand "a2/" again.
     m_model->setExpanded(0, true);
     QVERIFY(m_model->isExpanded(0));
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a2" << "b");
 
     // Now simulate that a new folder "a1/" is appears, but that the dir lister's
     QCOMPARE(itemsInModel(), QStringList() << "a2" << "b");
 
     // Now simulate that a new folder "a1/" is appears, but that the dir lister's
@@ -1702,12 +1706,12 @@ void KFileItemModelTest::testCollapseFolderWhileLoading()
 
 void KFileItemModelTest::testDeleteFileMoreThanOnce()
 {
 
 void KFileItemModelTest::testDeleteFileMoreThanOnce()
 {
-    QStringList files;
-    files << "a.txt" << "b.txt" << "c.txt" << "d.txt";
-    m_testDir->createFiles(files);
+    QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted);
+
+    m_testDir->createFiles({"a.txt", "b.txt", "c.txt", "d.txt"});
 
     m_model->loadDirectory(m_testDir->url());
 
     m_model->loadDirectory(m_testDir->url());
-    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QVERIFY(itemsInsertedSpy.wait());
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "d.txt");
 
     const KFileItem fileItemB = m_model->fileItem(1);
     QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "d.txt");
 
     const KFileItem fileItemB = m_model->fileItem(1);
@@ -1730,6 +1734,6 @@ QStringList KFileItemModelTest::itemsInModel() const
     return items;
 }
 
     return items;
 }
 
-QTEST_KDEMAIN(KFileItemModelTest, NoGUI)
+QTEST_MAIN(KFileItemModelTest)
 
 #include "kfileitemmodeltest.moc"
 
 #include "kfileitemmodeltest.moc"
index 42c0a8ed2c3410fea2f383f8e25a0633959ca8f0..cd4d0a681b43dae9838f2f176def2ae5300442ff 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-#include <qtestmouse.h>
-#include <qtestkeyboard.h>
-
 #include "kitemviews/kitemlistcontainer.h"
 #include "kitemviews/kfileitemlistview.h"
 #include "kitemviews/kfileitemmodel.h"
 #include "kitemviews/kitemlistcontainer.h"
 #include "kitemviews/kfileitemlistview.h"
 #include "kitemviews/kfileitemmodel.h"
 #include <KConfigGroup>
 #include <KGlobalSettings>
 
 #include <KConfigGroup>
 #include <KGlobalSettings>
 
+#include <QTest>
 #include <QGraphicsSceneMouseEvent>
 #include <QSignalSpy>
 
 #include <QGraphicsSceneMouseEvent>
 #include <QSignalSpy>
 
-namespace {
-    const int DefaultTimeout = 2000;
-};
-
 Q_DECLARE_METATYPE(KFileItemListView::ItemLayout);
 Q_DECLARE_METATYPE(Qt::Orientation);
 Q_DECLARE_METATYPE(KItemListController::SelectionBehavior);
 Q_DECLARE_METATYPE(KFileItemListView::ItemLayout);
 Q_DECLARE_METATYPE(Qt::Orientation);
 Q_DECLARE_METATYPE(KItemListController::SelectionBehavior);
@@ -104,7 +97,7 @@ void KItemListControllerTest::initTestCase()
     m_testDir->createFiles(files);
     m_model->loadDirectory(m_testDir->url());
     QSignalSpy spyDirectoryLoadingCompleted(m_model, SIGNAL(directoryLoadingCompleted()));
     m_testDir->createFiles(files);
     m_model->loadDirectory(m_testDir->url());
     QSignalSpy spyDirectoryLoadingCompleted(m_model, SIGNAL(directoryLoadingCompleted()));
-    QVERIFY(spyDirectoryLoadingCompleted.wait(DefaultTimeout));
+    QVERIFY(spyDirectoryLoadingCompleted.wait());
 
     m_container->show();
     QTest::qWaitForWindowShown(m_container);
 
     m_container->show();
     QTest::qWaitForWindowShown(m_container);
@@ -567,7 +560,7 @@ void KItemListControllerTest::testMouseClickActivation()
 
     if (!KGlobalSettings::singleClick()) {
         // TODO: Try to find a way to make sure that changing the global setting works.
 
     if (!KGlobalSettings::singleClick()) {
         // TODO: Try to find a way to make sure that changing the global setting works.
-        QSKIP("Failed to change the KGlobalSettings::singleClick() setting!", SkipSingle);
+        QSKIP("Failed to change the KGlobalSettings::singleClick() setting!");
     }
 
     m_view->event(&mousePressEvent);
     }
 
     m_view->event(&mousePressEvent);
@@ -588,7 +581,7 @@ void KItemListControllerTest::testMouseClickActivation()
 
     if (KGlobalSettings::singleClick()) {
         // TODO: Try to find a way to make sure that changing the global setting works.
 
     if (KGlobalSettings::singleClick()) {
         // TODO: Try to find a way to make sure that changing the global setting works.
-        QSKIP("Failed to change the KGlobalSettings::singleClick() setting!", SkipSingle);
+        QSKIP("Failed to change the KGlobalSettings::singleClick() setting!");
     }
 
     m_view->event(&mousePressEvent);
     }
 
     m_view->event(&mousePressEvent);
@@ -623,7 +616,7 @@ void KItemListControllerTest::testMouseClickActivation()
 
     if (!KGlobalSettings::singleClick()) {
         // TODO: Try to find a way to make sure that changing the global setting works.
 
     if (!KGlobalSettings::singleClick()) {
         // TODO: Try to find a way to make sure that changing the global setting works.
-        QSKIP("Failed to change the KGlobalSettings::singleClick() setting!", SkipSingle);
+        QSKIP("Failed to change the KGlobalSettings::singleClick() setting!");
     }
 
     m_view->event(&mousePressEvent);
     }
 
     m_view->event(&mousePressEvent);
@@ -652,7 +645,7 @@ void KItemListControllerTest::testMouseClickActivation()
 
     if (KGlobalSettings::singleClick() != restoreKGlobalSettingsSingleClick) {
         // TODO: Try to find a way to make sure that changing the global setting works.
 
     if (KGlobalSettings::singleClick() != restoreKGlobalSettingsSingleClick) {
         // TODO: Try to find a way to make sure that changing the global setting works.
-        QSKIP("Failed to change the KGlobalSettings::singleClick() setting!", SkipSingle);
+        QSKIP("Failed to change the KGlobalSettings::singleClick() setting!");
     }
 }
 
     }
 }
 
index 373f4f30120402cb257192375e87f393f0cb6c9e..41475660de7f8d8dbb3412bbd7558f46c0a7f9a8 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-#include <QSignalSpy>
 #include "kitemviews/private/kitemlistkeyboardsearchmanager.h"
 
 #include "kitemviews/private/kitemlistkeyboardsearchmanager.h"
 
+#include <QTest>
+#include <QSignalSpy>
+
 class KItemListKeyboardSearchManagerTest : public QObject
 {
     Q_OBJECT
 class KItemListKeyboardSearchManagerTest : public QObject
 {
     Q_OBJECT
@@ -45,7 +46,7 @@ void KItemListKeyboardSearchManagerTest::init()
 
 void KItemListKeyboardSearchManagerTest::testBasicKeyboardSearch()
 {
 
 void KItemListKeyboardSearchManagerTest::testBasicKeyboardSearch()
 {
-    QSignalSpy spy(&m_keyboardSearchManager, SIGNAL(changeCurrentItem(QString,bool)));
+    QSignalSpy spy(&m_keyboardSearchManager, &KItemListKeyboardSearchManager::changeCurrentItem);
 
     m_keyboardSearchManager.addKeys("f");
     QCOMPARE(spy.count(), 1);
 
     m_keyboardSearchManager.addKeys("f");
     QCOMPARE(spy.count(), 1);
@@ -70,7 +71,7 @@ void KItemListKeyboardSearchManagerTest::testAbortedKeyboardSearch()
     // to save time when running this test.
     m_keyboardSearchManager.setTimeout(100);
 
     // to save time when running this test.
     m_keyboardSearchManager.setTimeout(100);
 
-    QSignalSpy spy(&m_keyboardSearchManager, SIGNAL(changeCurrentItem(QString,bool)));
+    QSignalSpy spy(&m_keyboardSearchManager, &KItemListKeyboardSearchManager::changeCurrentItem);
 
     m_keyboardSearchManager.addKeys("f");
     QCOMPARE(spy.count(), 1);
 
     m_keyboardSearchManager.addKeys("f");
     QCOMPARE(spy.count(), 1);
@@ -101,7 +102,7 @@ void KItemListKeyboardSearchManagerTest::testRepeatedKeyPress()
     // 1. the string contains the repeated key only once, and
     // 2. the bool searchFromNextItem is true.
 
     // 1. the string contains the repeated key only once, and
     // 2. the bool searchFromNextItem is true.
 
-    QSignalSpy spy(&m_keyboardSearchManager, SIGNAL(changeCurrentItem(QString,bool)));
+    QSignalSpy spy(&m_keyboardSearchManager, &KItemListKeyboardSearchManager::changeCurrentItem);
 
     m_keyboardSearchManager.addKeys("p");
     QCOMPARE(spy.count(), 1);
 
     m_keyboardSearchManager.addKeys("p");
     QCOMPARE(spy.count(), 1);
@@ -128,7 +129,7 @@ void KItemListKeyboardSearchManagerTest::testPressShift()
     // string. Make sure that this does not reset the current search. See
     // https://bugs.kde.org/show_bug.cgi?id=321286
 
     // string. Make sure that this does not reset the current search. See
     // https://bugs.kde.org/show_bug.cgi?id=321286
 
-    QSignalSpy spy(&m_keyboardSearchManager, SIGNAL(changeCurrentItem(QString,bool)));
+    QSignalSpy spy(&m_keyboardSearchManager, &KItemListKeyboardSearchManager::changeCurrentItem);
 
     // Simulate that the user enters "a_b".
     m_keyboardSearchManager.addKeys("a");
 
     // Simulate that the user enters "a_b".
     m_keyboardSearchManager.addKeys("a");
index fb0f4fc2b59c0b40e5d83699852c9a9dbbae98a6..8403de70160b846bc1fbe9e0fa63f50090dc208e 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-#include <QSignalSpy>
 #include "kitemviews/kitemmodelbase.h"
 #include "kitemviews/kitemlistselectionmanager.h"
 
 #include "kitemviews/kitemmodelbase.h"
 #include "kitemviews/kitemlistselectionmanager.h"
 
+#include <QTest>
+#include <QSignalSpy>
+
 class DummyModel : public KItemModelBase
 {
 public:
 class DummyModel : public KItemModelBase
 {
 public:
index 011f5ae86a6f2d87f7d10f914bcb24673840924e..882cd66e72286e7ae29eb0261831e0882d7d93dc 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-
 #include "kitemviews/kitemrange.h"
 
 #include "kitemviews/kitemrange.h"
 
+#include <QTest>
 #include <QVector>
 
 Q_DECLARE_METATYPE(QVector<int>);
 #include <QVector>
 
 Q_DECLARE_METATYPE(QVector<int>);
index 9cc02d0604aabaa461a7a103c2ea468aea1d9d6f..ed683e1a8c93018f8544189b8e71ce2db856cc64 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-
 #include "kitemviews/kitemset.h"
 
 #include "kitemviews/kitemset.h"
 
+#include <QTest>
 #include <QVector>
 
 Q_DECLARE_METATYPE(KItemRangeList);
 #include <QVector>
 
 Q_DECLARE_METATYPE(KItemRangeList);
index f7e61ce900f3d571d33ddc820c6159da478b0dc6..e83e2031d496434185b35b873150d26b7f065710 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-
 #include "kitemviews/kstandarditem.h"
 #include "kitemviews/kstandarditemmodel.h"
 
 #include "kitemviews/kstandarditem.h"
 #include "kitemviews/kstandarditemmodel.h"
 
+#include <QTest>
+
 class KStandardItemModelTest : public QObject
 {
     Q_OBJECT
 class KStandardItemModelTest : public QObject
 {
     Q_OBJECT
index dcc4c87a5dc3f3c5fff090d9807873ef52bc75f3..b84b344b77f5c9d9833d6e8570891afbc8565156 100644 (file)
@@ -28,7 +28,7 @@
 #endif
 
 TestDir::TestDir(const QString& directoryPrefix) :
 #endif
 
 TestDir::TestDir(const QString& directoryPrefix) :
-    KTempDir(directoryPrefix)
+    QTemporaryDir(directoryPrefix)
 {
 }
 
 {
 }
 
@@ -38,7 +38,7 @@ TestDir::~TestDir()
 
 QUrl TestDir::url() const
 {
 
 QUrl TestDir::url() const
 {
-    return QUrl::fromLocalFile(name());
+    return QUrl::fromLocalFile(path());
 }
 
 /** The following function is taken from kdelibs/kio/tests/kiotesthelper.h, copyright (C) 2006 by David Faure */
 }
 
 /** The following function is taken from kdelibs/kio/tests/kiotesthelper.h, copyright (C) 2006 by David Faure */
@@ -85,7 +85,7 @@ void TestDir::createDir(const QString& path, const QDateTime& time)
 {
     QString absolutePath = path;
     makePathAbsoluteAndCreateParents(absolutePath);
 {
     QString absolutePath = path;
     makePathAbsoluteAndCreateParents(absolutePath);
-    QDir(name()).mkdir(absolutePath);
+    QDir(TestDir::path()).mkdir(absolutePath);
 
     if (time.isValid()) {
         setTimeStamp(absolutePath, time);
 
     if (time.isValid()) {
         setTimeStamp(absolutePath, time);
@@ -94,12 +94,19 @@ void TestDir::createDir(const QString& path, const QDateTime& time)
     Q_ASSERT(QFile::exists(absolutePath));
 }
 
     Q_ASSERT(QFile::exists(absolutePath));
 }
 
+void TestDir::removeFiles(const QStringList& files)
+{
+    foreach (const QString& path, files) {
+        removeFile(path);
+    }
+}
+
 void TestDir::removeFile(const QString& path)
 {
     QString absolutePath = path;
     QFileInfo fileInfo(absolutePath);
     if (!fileInfo.isAbsolute()) {
 void TestDir::removeFile(const QString& path)
 {
     QString absolutePath = path;
     QFileInfo fileInfo(absolutePath);
     if (!fileInfo.isAbsolute()) {
-        absolutePath = name() + path;
+        absolutePath = TestDir::path() + QLatin1Char('/') + path;
     }
     QFile::remove(absolutePath);
 }
     }
     QFile::remove(absolutePath);
 }
@@ -108,7 +115,7 @@ void TestDir::makePathAbsoluteAndCreateParents(QString& path)
 {
     QFileInfo fileInfo(path);
     if (!fileInfo.isAbsolute()) {
 {
     QFileInfo fileInfo(path);
     if (!fileInfo.isAbsolute()) {
-        path = name() + path;
+        path = TestDir::path() + QLatin1Char('/') + path;
         fileInfo.setFile(path);
     }
 
         fileInfo.setFile(path);
     }
 
index 24c4d77b0b4d2691fcd5e2df775fb25745123161..3f244448c165d21c7a1aa18a78177b363d02fa74 100644 (file)
 #ifndef TESTDIR_H
 #define TESTDIR_H
 
 #ifndef TESTDIR_H
 #define TESTDIR_H
 
-#include <KTempDir>
 #include <QUrl>
 #include <QUrl>
-
+#include <QTemporaryDir>
 #include <QDateTime>
 
 /**
 #include <QDateTime>
 
 /**
- * TestDir provides a temporary directory. In addition to KTempDir, it has
+ * TestDir provides a temporary directory. In addition to QTemporaryDir, it has
  * methods that create files and subdirectories inside the directory.
  */
  * methods that create files and subdirectories inside the directory.
  */
-class TestDir : public KTempDir
+class TestDir : public QTemporaryDir
 {
 
 public:
 {
 
 public:
@@ -50,6 +49,7 @@ public:
     void createDir(const QString& path, const QDateTime& time = QDateTime());
 
     void removeFile(const QString& path);
     void createDir(const QString& path, const QDateTime& time = QDateTime());
 
     void removeFile(const QString& path);
+    void removeFiles(const QStringList& files);
 
 private:
     void makePathAbsoluteAndCreateParents(QString& path);
 
 private:
     void makePathAbsoluteAndCreateParents(QString& path);
index d5584ce82b1be8bb8777fe89760e469b9b811173..ba2ca307c86ec567a8bd446c0cb6dade55f229f2 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <qtest.h>
-
 #include "dolphin_generalsettings.h"
 #include "views/viewproperties.h"
 #include "testdir.h"
 
 #include "dolphin_generalsettings.h"
 #include "views/viewproperties.h"
 #include "testdir.h"
 
+#include <QTest>
 #include <QDir>
 
 class ViewPropertiesTest : public QObject
 #include <QDir>
 
 class ViewPropertiesTest : public QObject
@@ -68,29 +67,27 @@ void ViewPropertiesTest::cleanup()
  */
 void ViewPropertiesTest::testReadOnlyBehavior()
 {
  */
 void ViewPropertiesTest::testReadOnlyBehavior()
 {
-    QString dotDirectoryFile = m_testDir->url().toLocalFile() + ".directory";
+    QString dotDirectoryFile = m_testDir->url().toLocalFile() + "/.directory";
     QVERIFY(!QFile::exists(dotDirectoryFile));
 
     QVERIFY(!QFile::exists(dotDirectoryFile));
 
-    ViewProperties* props = new ViewProperties(m_testDir->url());
+    QScopedPointer<ViewProperties> props(new ViewProperties(m_testDir->url()));
     QVERIFY(props->isAutoSaveEnabled());
     const QByteArray sortRole = props->sortRole();
     Q_UNUSED(sortRole);
     QVERIFY(props->isAutoSaveEnabled());
     const QByteArray sortRole = props->sortRole();
     Q_UNUSED(sortRole);
-    delete props;
-    props = 0;
+    props.reset();
 
     QVERIFY(!QFile::exists(dotDirectoryFile));
 }
 
 void ViewPropertiesTest::testAutoSave()
 {
 
     QVERIFY(!QFile::exists(dotDirectoryFile));
 }
 
 void ViewPropertiesTest::testAutoSave()
 {
-    QString dotDirectoryFile = m_testDir->url().toLocalFile() + ".directory";
+    QString dotDirectoryFile = m_testDir->url().toLocalFile() + "/.directory";
     QVERIFY(!QFile::exists(dotDirectoryFile));
 
     QVERIFY(!QFile::exists(dotDirectoryFile));
 
-    ViewProperties* props = new ViewProperties(m_testDir->url());
+    QScopedPointer<ViewProperties> props(new ViewProperties(m_testDir->url()));
     QVERIFY(props->isAutoSaveEnabled());
     props->setSortRole("someNewSortRole");
     QVERIFY(props->isAutoSaveEnabled());
     props->setSortRole("someNewSortRole");
-    delete props;
-    props = 0;
+    props.reset();
 
     QVERIFY(QFile::exists(dotDirectoryFile));
 }
 
     QVERIFY(QFile::exists(dotDirectoryFile));
 }