X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/2907a34bb54beea207f0a2b816521c75ba571684..67ebd66f94356b4e66005b1072919cb7b5e858bb:/src/tests/placesitemmodeltest.cpp diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index 78c5eabfe..ac7b6900b 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -1,21 +1,8 @@ -/*************************************************************************** - * Copyright (C) 2017 by Renato Araujo Oliveira * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2017 Renato Araujo Oliveira + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #include #include @@ -28,6 +15,7 @@ #include #include #include +#include #include "dolphin_generalsettings.h" #include "panels/places/placesitemmodel.h" @@ -37,13 +25,6 @@ Q_DECLARE_METATYPE(KItemRangeList) Q_DECLARE_METATYPE(KItemRange) -#ifdef Q_OS_WIN -//c:\ as root for windows -#define KDE_ROOT_PATH "C:\\" -#else -#define KDE_ROOT_PATH "/" -#endif - static QString bookmarksFile() { return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/user-places.xbel"; @@ -86,8 +67,9 @@ private: PlacesItemModel* m_model; QSet m_tobeRemoved; QMap m_interfacesMap; - int m_expectedModelCount = 15; + int m_expectedModelCount = qEnvironmentVariableIsSet("KDE_FULL_SESSION") && KProtocolInfo::isKnownProtocol(QStringLiteral("recentlyused")) ? 16 : 14; bool m_hasDesktopFolder = false; + bool m_hasDocumentsFolder = false; bool m_hasDownloadsFolder = false; void setBalooEnabled(bool enabled); @@ -171,14 +153,24 @@ 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"); } - urls << QStringLiteral(KDE_ROOT_PATH) << QStringLiteral("trash:/") + urls << QStringLiteral("trash:/") << QStringLiteral("remote:/") - << QStringLiteral("/media/nfs") - << QStringLiteral("timeline:/today") << QStringLiteral("timeline:/yesterday") + << QStringLiteral("/media/nfs"); + + if (qEnvironmentVariableIsSet("KDE_FULL_SESSION") && KProtocolInfo::isKnownProtocol(QStringLiteral("recentlyused"))) { + urls << QStringLiteral("recentlyused:/files"); + urls << QStringLiteral("recentlyused:/locations"); + } + + urls << QStringLiteral("timeline:/today") << QStringLiteral("timeline:/yesterday") << QStringLiteral("search:/documents") << QStringLiteral("search:/images") << QStringLiteral("search:/audio") << QStringLiteral("search:/videos") << QStringLiteral("/foreign") << QStringLiteral("/media/floppy0") << QStringLiteral("/media/XO-Y4") << QStringLiteral("/media/cdrom"); @@ -269,6 +261,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++; @@ -292,10 +289,13 @@ void PlacesItemModelTest::testModelSort() void PlacesItemModelTest::testGroups() { const auto groups = m_model->groups(); - int expectedRemoteIndex = 3; + int expectedRemoteIndex = 2; if (m_hasDesktopFolder) { expectedRemoteIndex++; } + if (m_hasDocumentsFolder) { + expectedRemoteIndex++; + } if (m_hasDownloadsFolder) { expectedRemoteIndex++; } @@ -309,7 +309,11 @@ void PlacesItemModelTest::testGroups() QCOMPARE(groups.at(1).second.toString(), QStringLiteral("Remote")); QCOMPARE(groups.at(2).first, expectedRemoteIndex + 2); - QCOMPARE(groups.at(2).second.toString(), QStringLiteral("Recently Saved")); + QCOMPARE(groups.at(2).second.toString(), QStringLiteral("Recent")); + + if (qEnvironmentVariableIsSet("KDE_FULL_SESSION") && KProtocolInfo::isKnownProtocol(QStringLiteral("recentlyused"))) { + expectedRemoteIndex += 2; + } QCOMPARE(groups.at(3).first, expectedRemoteIndex + 4); QCOMPARE(groups.at(3).second.toString(), QStringLiteral("Search For")); @@ -336,7 +340,7 @@ void PlacesItemModelTest::testPlaceItem_data() QTest::newRow("Baloo - Documents") << QUrl("search:/documents") << false << true << QStringLiteral("Search For") << false; // baloo - timeline - QTest::newRow("Baloo - Today") << QUrl("timeline:/today") << false << true << QStringLiteral("Recently Saved") << false; + QTest::newRow("Baloo - Today") << QUrl("timeline:/today") << false << true << QStringLiteral("Recent") << false; // devices QTest::newRow("Devices - Floppy") << QUrl("file:///media/floppy0") << false << false << QStringLiteral("Removable Devices") << false; @@ -368,10 +372,13 @@ void PlacesItemModelTest::testDeletePlace() PlacesItemModel *model = new PlacesItemModel(); - int tempDirIndex = 3; + int tempDirIndex = 2; if (m_hasDesktopFolder) { tempDirIndex++; } + if (m_hasDocumentsFolder) { + tempDirIndex++; + } if (m_hasDownloadsFolder) { tempDirIndex++; } @@ -541,10 +548,13 @@ void PlacesItemModelTest::testHideItem() void PlacesItemModelTest::testSystemItems() { - int tempDirIndex = 3; + int tempDirIndex = 2; if (m_hasDesktopFolder) { tempDirIndex++; } + if (m_hasDocumentsFolder) { + tempDirIndex++; + } if (m_hasDownloadsFolder) { tempDirIndex++; } @@ -589,10 +599,13 @@ void PlacesItemModelTest::testSystemItems() void PlacesItemModelTest::testEditBookmark() { - int tempDirIndex = 1; + int tempDirIndex = 2; if (m_hasDesktopFolder) { tempDirIndex++; } + if (m_hasDocumentsFolder) { + tempDirIndex++; + } if (m_hasDownloadsFolder) { tempDirIndex++; } @@ -602,7 +615,7 @@ void PlacesItemModelTest::testEditBookmark() createPlaceItem(QStringLiteral("Temporary Dir"), QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::TempLocation)), QString()); // make sure that the new item will be removed later - schedulePlaceRemoval(tempDirIndex + 2); + schedulePlaceRemoval(tempDirIndex); QSignalSpy itemsChangedSply(m_model, &PlacesItemModel::itemsChanged); @@ -627,10 +640,13 @@ void PlacesItemModelTest::testEditBookmark() void PlacesItemModelTest::testEditAfterCreation() { - int tempDirIndex = 1; + int tempDirIndex = 2; if (m_hasDesktopFolder) { tempDirIndex++; } + if (m_hasDocumentsFolder) { + tempDirIndex++; + } if (m_hasDownloadsFolder) { tempDirIndex++; } @@ -646,7 +662,7 @@ void PlacesItemModelTest::testEditAfterCreation() QTRY_COMPARE(model->count(), m_model->count()); // make sure that the new item will be removed later - schedulePlaceRemoval(tempDirIndex + 2); + schedulePlaceRemoval(tempDirIndex); // modify place text PlacesItem *item = m_model->placesItem(tempDirIndex); @@ -664,10 +680,13 @@ void PlacesItemModelTest::testEditAfterCreation() void PlacesItemModelTest::testEditMetadata() { - int tempDirIndex = 1; + int tempDirIndex = 2; if (m_hasDesktopFolder) { tempDirIndex++; } + if (m_hasDocumentsFolder) { + tempDirIndex++; + } if (m_hasDownloadsFolder) { tempDirIndex++; } @@ -684,11 +703,11 @@ void PlacesItemModelTest::testEditMetadata() QTRY_COMPARE(model->count(), m_model->count()); // make sure that the new item will be removed later - schedulePlaceRemoval(tempDirIndex + 2); + schedulePlaceRemoval(tempDirIndex); // modify place metadata - PlacesItem *item = m_model->placesItem(tempDirIndex); - item->bookmark().setMetaDataItem(QStringLiteral("OnlyInApp"), KAboutData::applicationData().componentName()); + auto bookmark = m_model->placesItem(tempDirIndex)->bookmark(); + bookmark.setMetaDataItem(QStringLiteral("OnlyInApp"), KAboutData::applicationData().componentName()); m_model->refresh(); // check if the place was modified in both models @@ -703,10 +722,13 @@ void PlacesItemModelTest::testEditMetadata() void PlacesItemModelTest::testRefresh() { - int tempDirIndex = 3; + int tempDirIndex = 2; if (m_hasDesktopFolder) { tempDirIndex++; } + if (m_hasDocumentsFolder) { + tempDirIndex++; + } if (m_hasDownloadsFolder) { tempDirIndex++; } @@ -774,10 +796,13 @@ void PlacesItemModelTest::testIcons() void PlacesItemModelTest::testDragAndDrop() { - int lastIndex = 2; // last index of places group + int lastIndex = 1; // last index of places group if (m_hasDesktopFolder) { lastIndex++; } + if (m_hasDocumentsFolder) { + lastIndex++; + } if (m_hasDownloadsFolder) { lastIndex++; } @@ -785,6 +810,7 @@ void PlacesItemModelTest::testDragAndDrop() QList args; KItemRangeList range; QStringList urls = initialUrls(); + QSignalSpy itemsInsertedSpy(m_model, &PlacesItemModel::itemsInserted); QSignalSpy itemsRemovedSpy(m_model, &PlacesItemModel::itemsRemoved); @@ -893,10 +919,13 @@ void PlacesItemModelTest::testDuplicatedEntries() void PlacesItemModelTest::renameAfterCreation() { - int tempDirIndex = 1; + int tempDirIndex = 2; if (m_hasDesktopFolder) { tempDirIndex++; } + if (m_hasDocumentsFolder) { + tempDirIndex++; + } if (m_hasDownloadsFolder) { tempDirIndex++; } @@ -910,10 +939,10 @@ void PlacesItemModelTest::renameAfterCreation() // create a new place createPlaceItem(QStringLiteral("Temporary Dir"), tempUrl, QString()); - urls.insert(tempDirIndex + 2, tempUrl.toLocalFile()); + urls.insert(tempDirIndex, tempUrl.toLocalFile()); // make sure that the new item will be removed later - schedulePlaceRemoval(tempDirIndex + 2); + schedulePlaceRemoval(tempDirIndex); CHECK_PLACES_URLS(urls); QCOMPARE(model->count(), m_model->count());