]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tests/placesitemmodeltest.cpp
Merge branch 'Applications/19.04'
[dolphin.git] / src / tests / placesitemmodeltest.cpp
index 4ed4945b2010e3bcdef5ced73623ff81364769c7..af466908cd8cba0c121c6b007740e4d477b80427 100644 (file)
@@ -88,6 +88,7 @@ private:
     QMap<QString, QDBusInterface *> m_interfacesMap;
     int m_expectedModelCount = 15;
     bool m_hasDesktopFolder = false;
+    bool m_hasDocumentsFolder = false;
     bool m_hasDownloadsFolder = false;
 
     void setBalooEnabled(bool enabled);
@@ -99,8 +100,8 @@ private:
     void createPlaceItem(const QString &text, const QUrl &url, const QString &icon);
     void schedulePlaceRemoval(int index);
     void cancelPlaceRemoval(int index);
-    void removeTestUserData();
     QMimeData *createMimeData(const QList<int> &indexes) const;
+    QTemporaryDir m_tempHomeDir;
 };
 
 #define CHECK_PLACES_URLS(urls)                                             \
@@ -171,6 +172,10 @@ QStringList PlacesItemModelTest::initialUrls() const
             urls << QDir::homePath() + QStringLiteral("/Desktop");
         }
 
+        if (m_hasDocumentsFolder) {
+            urls << QDir::homePath() + QStringLiteral("/Documents");
+        }
+
         if (m_hasDownloadsFolder) {
             urls << QDir::homePath() + QStringLiteral("/Downloads");
         }
@@ -201,15 +206,6 @@ void PlacesItemModelTest::cancelPlaceRemoval(int index)
     m_tobeRemoved.remove(index);
 }
 
-void PlacesItemModelTest::removeTestUserData()
-{
-    // user hardcoded path to avoid removal of any user personal data
-    QDir dir(QStringLiteral("/home/renato/.qttest/share/placesitemmodeltest"));
-    if (dir.exists()) {
-        QVERIFY(dir.removeRecursively());
-    }
-}
-
 QMimeData *PlacesItemModelTest::createMimeData(const QList<int> &indexes) const
 {
     QByteArray itemData;
@@ -252,14 +248,15 @@ void PlacesItemModelTest::cleanup()
     m_tobeRemoved.clear();
     delete m_model;
     m_model = nullptr;
-    removeTestUserData();
 }
 
 void PlacesItemModelTest::initTestCase()
 {
+    QVERIFY(m_tempHomeDir.isValid());
+    QVERIFY(qputenv("HOME", m_tempHomeDir.path().toUtf8()));
+    QVERIFY(qputenv("KDE_FORK_SLAVES", "yes"));
+
     QStandardPaths::setTestModeEnabled(true);
-    // remove test user data
-    removeTestUserData();
 
     const QString fakeHw = QFINDTESTDATA("data/fakecomputer.xml");
     QVERIFY(!fakeHw.isEmpty());
@@ -277,6 +274,11 @@ void PlacesItemModelTest::initTestCase()
         m_expectedModelCount++;
     }
 
+    if (QDir(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)).exists()) {
+        m_hasDocumentsFolder = true;
+        m_expectedModelCount++;
+    }
+
     if (QDir(QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)).exists()) {
         m_hasDownloadsFolder = true;
         m_expectedModelCount++;
@@ -290,9 +292,6 @@ void PlacesItemModelTest::cleanupTestCase()
 {
     qDeleteAll(m_interfacesMap);
     QFile::remove(bookmarksFile());
-
-    // Remove any previous properties file
-    removeTestUserData();
 }
 
 void PlacesItemModelTest::testModelSort()
@@ -303,12 +302,15 @@ void PlacesItemModelTest::testModelSort()
 void PlacesItemModelTest::testGroups()
 {
     const auto groups = m_model->groups();
-    int expectedGroupSize = 3;
+    int expectedRemoteIndex = 3;
     if (m_hasDesktopFolder) {
-        expectedGroupSize++;
+        expectedRemoteIndex++;
+    }
+    if (m_hasDocumentsFolder) {
+        expectedRemoteIndex++;
     }
     if (m_hasDownloadsFolder) {
-        expectedGroupSize++;
+        expectedRemoteIndex++;
     }
 
     QCOMPARE(groups.size(), 6);
@@ -316,19 +318,19 @@ void PlacesItemModelTest::testGroups()
     QCOMPARE(groups.at(0).first, 0);
     QCOMPARE(groups.at(0).second.toString(), QStringLiteral("Places"));
 
-    QCOMPARE(groups.at(1).first, expectedGroupSize);
+    QCOMPARE(groups.at(1).first, expectedRemoteIndex);
     QCOMPARE(groups.at(1).second.toString(), QStringLiteral("Remote"));
 
-    QCOMPARE(groups.at(2).first, expectedGroupSize + 2);
+    QCOMPARE(groups.at(2).first, expectedRemoteIndex + 2);
     QCOMPARE(groups.at(2).second.toString(), QStringLiteral("Recently Saved"));
 
-    QCOMPARE(groups.at(3).first, expectedGroupSize + 4);
+    QCOMPARE(groups.at(3).first, expectedRemoteIndex + 4);
     QCOMPARE(groups.at(3).second.toString(), QStringLiteral("Search For"));
 
-    QCOMPARE(groups.at(4).first, expectedGroupSize + 8);
+    QCOMPARE(groups.at(4).first, expectedRemoteIndex + 8);
     QCOMPARE(groups.at(4).second.toString(), QStringLiteral("Devices"));
 
-    QCOMPARE(groups.at(5).first, expectedGroupSize + 9);
+    QCOMPARE(groups.at(5).first, expectedRemoteIndex + 9);
     QCOMPARE(groups.at(5).second.toString(), QStringLiteral("Removable Devices"));
 }
 
@@ -383,6 +385,9 @@ void PlacesItemModelTest::testDeletePlace()
     if (m_hasDesktopFolder) {
         tempDirIndex++;
     }
+    if (m_hasDocumentsFolder) {
+        tempDirIndex++;
+    }
     if (m_hasDownloadsFolder) {
         tempDirIndex++;
     }
@@ -556,6 +561,9 @@ void PlacesItemModelTest::testSystemItems()
     if (m_hasDesktopFolder) {
         tempDirIndex++;
     }
+    if (m_hasDocumentsFolder) {
+        tempDirIndex++;
+    }
     if (m_hasDownloadsFolder) {
         tempDirIndex++;
     }
@@ -604,6 +612,9 @@ void PlacesItemModelTest::testEditBookmark()
     if (m_hasDesktopFolder) {
         tempDirIndex++;
     }
+    if (m_hasDocumentsFolder) {
+        tempDirIndex++;
+    }
     if (m_hasDownloadsFolder) {
         tempDirIndex++;
     }
@@ -642,6 +653,9 @@ void PlacesItemModelTest::testEditAfterCreation()
     if (m_hasDesktopFolder) {
         tempDirIndex++;
     }
+    if (m_hasDocumentsFolder) {
+        tempDirIndex++;
+    }
     if (m_hasDownloadsFolder) {
         tempDirIndex++;
     }
@@ -679,6 +693,9 @@ void PlacesItemModelTest::testEditMetadata()
     if (m_hasDesktopFolder) {
         tempDirIndex++;
     }
+    if (m_hasDocumentsFolder) {
+        tempDirIndex++;
+    }
     if (m_hasDownloadsFolder) {
         tempDirIndex++;
     }
@@ -718,6 +735,9 @@ void PlacesItemModelTest::testRefresh()
     if (m_hasDesktopFolder) {
         tempDirIndex++;
     }
+    if (m_hasDocumentsFolder) {
+        tempDirIndex++;
+    }
     if (m_hasDownloadsFolder) {
         tempDirIndex++;
     }
@@ -789,6 +809,9 @@ void PlacesItemModelTest::testDragAndDrop()
     if (m_hasDesktopFolder) {
         lastIndex++;
     }
+    if (m_hasDocumentsFolder) {
+        lastIndex++;
+    }
     if (m_hasDownloadsFolder) {
         lastIndex++;
     }
@@ -908,6 +931,9 @@ void PlacesItemModelTest::renameAfterCreation()
     if (m_hasDesktopFolder) {
         tempDirIndex++;
     }
+    if (m_hasDocumentsFolder) {
+        tempDirIndex++;
+    }
     if (m_hasDownloadsFolder) {
         tempDirIndex++;
     }