From dec7016c0d52129340a5b47f6de4df8af5115e21 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 13:05:55 +0200 Subject: Add test cases for enabled status of DolphinNewFileMenu Summary: Root and Trash test cases are currently failing because of commit e133c4557ecc37ed3f7e1b9418306aa8cc516865. Reviewers: #dolphin Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D16005 --- src/dolphinmainwindow.cpp | 1 + src/tests/dolphinmainwindowtest.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 3e3803d68..a93405f53 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -1066,6 +1066,7 @@ void DolphinMainWindow::setupActions() { // setup 'File' menu m_newFileMenu = new DolphinNewFileMenu(actionCollection(), this); + m_newFileMenu->setObjectName("newFileMenu"); QMenu* menu = m_newFileMenu->menu(); menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New")); menu->setIcon(QIcon::fromTheme(QStringLiteral("document-new"))); diff --git a/src/tests/dolphinmainwindowtest.cpp b/src/tests/dolphinmainwindowtest.cpp index eee387116..0dc330124 100644 --- a/src/tests/dolphinmainwindowtest.cpp +++ b/src/tests/dolphinmainwindowtest.cpp @@ -18,6 +18,7 @@ ***************************************************************************/ #include "dolphinmainwindow.h" +#include "dolphinnewfilemenu.h" #include "dolphintabpage.h" #include "dolphintabwidget.h" #include "dolphinviewcontainer.h" @@ -39,6 +40,8 @@ private slots: void testActiveViewAfterClosingSplitView_data(); void testActiveViewAfterClosingSplitView(); void testUpdateWindowTitleAfterClosingSplitView(); + void testNewFileMenuEnabled_data(); + void testNewFileMenuEnabled(); private: QScopedPointer m_mainWindow; @@ -170,6 +173,31 @@ void DolphinMainWindowTest::testUpdateWindowTitleAfterClosingSplitView() QCOMPARE(currentUrlChangedSpy.count(), 1); } +void DolphinMainWindowTest::testNewFileMenuEnabled_data() +{ + QTest::addColumn("activeViewUrl"); + QTest::addColumn("expectedEnabled"); + + QTest::newRow("home") << QUrl::fromLocalFile(QDir::homePath()) << true; + QTest::newRow("root") << QUrl::fromLocalFile(QDir::rootPath()) << false; + QTest::newRow("trash") << QUrl::fromUserInput(QStringLiteral("trash:/")) << false; +} + +void DolphinMainWindowTest::testNewFileMenuEnabled() +{ + QFETCH(QUrl, activeViewUrl); + m_mainWindow->openDirectories({ activeViewUrl }, false); + m_mainWindow->show(); + QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); + QVERIFY(m_mainWindow->isVisible()); + + auto newFileMenu = m_mainWindow->findChild("newFileMenu"); + QVERIFY(newFileMenu); + + QFETCH(bool, expectedEnabled); + QCOMPARE(newFileMenu->isEnabled(), expectedEnabled); +} + QTEST_MAIN(DolphinMainWindowTest) #include "dolphinmainwindowtest.moc" -- cgit v1.3 From 5e8b892a519b8d1fef58a747fafb5846b7fa3492 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 13:19:17 +0200 Subject: Fix disabling of DolphinNewFileMenu Summary: Commit e133c4557ecc37ed3f7e1b9 doesn't work because the actions in the KNewFileMenu are added only when we show the context menu for the first time. Fixes the failing test cases in D16005. Test Plan: Run `dolphinmainwindowtest` and open the context menu in different places (Home, Root, Trash, `bluetooth:/`, etc.) Reviewers: #dolphin Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D16006 --- src/dolphinmainwindow.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index a93405f53..38537d92a 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -457,10 +457,6 @@ void DolphinMainWindow::updateNewMenu() m_newFileMenu->setViewShowsHiddenFiles(activeViewContainer()->view()->hiddenFilesShown()); m_newFileMenu->checkUpToDate(); m_newFileMenu->setPopupFiles(activeViewContainer()->url()); - - // If we're in the trash, also disable all the 'create new' items - // TODO: remove this once https://phabricator.kde.org/T8234 is implemented - slotWriteStateChanged(m_activeViewContainer->view()->url().scheme() != QLatin1String("trash")); } void DolphinMainWindow::createDirectory() @@ -808,10 +804,9 @@ void DolphinMainWindow::slotHandleUrlStatFinished(KJob* job) void DolphinMainWindow::slotWriteStateChanged(bool isFolderWritable) { - const auto actions = m_newFileMenu->menu()->actions(); - for (auto menuItem : actions) { - menuItem->setEnabled(isFolderWritable); - } + // trash:/ is writable but we don't want to create new items in it. + // TODO: remove the trash check once https://phabricator.kde.org/T8234 is implemented + newFileMenu()->setEnabled(isFolderWritable && m_activeViewContainer->url().scheme() != QLatin1String("trash")); } void DolphinMainWindow::openContextMenu(const QPoint& pos, -- cgit v1.3 From 9760f9607d48555452557f22749b291fd3981b76 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 16:50:27 +0200 Subject: [PlacesItemModelTest] Check whether Desktop and Download folders exist KFilePlacesModel creates the Desktop and Downloads bookmarks only if their folder exists. This should hopefully fix the failing test on the CI (actual count = 15, expected count = 17), since the CI runs in docker and probably doesn't have those two folders by default. --- src/tests/placesitemmodeltest.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index 2e814220a..e0fdb1d86 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -85,6 +85,7 @@ private: PlacesItemModel* m_model; QSet m_tobeRemoved; QMap m_interfacesMap; + int m_expectedModelCount = 15; void setBalooEnabled(bool enabled); int indexOf(const QUrl &url); @@ -227,7 +228,7 @@ void PlacesItemModelTest::init() m_model = new PlacesItemModel(); // WORKAROUND: need to wait for bookmark to load, check: PlacesItemModel::updateBookmarks QTest::qWait(300); - QCOMPARE(m_model->count(), 17); + QCOMPARE(m_model->count(), m_expectedModelCount); } void PlacesItemModelTest::cleanup() @@ -261,6 +262,14 @@ void PlacesItemModelTest::initTestCase() QVERIFY(QFile::remove(bookmarsFileName)); } + if (QDir(QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)).exists()) { + m_expectedModelCount++; + } + + if (QDir(QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)).exists()) { + m_expectedModelCount++; + } + qRegisterMetaType(); qRegisterMetaType(); } -- cgit v1.3 From 92157f6d7d1d6a2226ee3ae7db4bed2e50ee371e Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 17:07:56 +0200 Subject: Follow-up of commit 9760f9607d Also drop the hardcoded model count all over the place. --- src/tests/placesitemmodeltest.cpp | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index e0fdb1d86..9f5e49d38 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -86,6 +86,8 @@ private: QSet m_tobeRemoved; QMap m_interfacesMap; int m_expectedModelCount = 15; + bool m_hasDesktopFolder = false; + bool m_hasDownloadsFolder = false; void setBalooEnabled(bool enabled); int indexOf(const QUrl &url); @@ -162,10 +164,17 @@ QStringList PlacesItemModelTest::initialUrls() const { static QStringList urls; if (urls.isEmpty()) { - urls << QDir::homePath() - << QDir::homePath() + QStringLiteral("/Desktop") - << QDir::homePath() + QStringLiteral("/Downloads") - << QStringLiteral(KDE_ROOT_PATH) << QStringLiteral("trash:/") + urls << QDir::homePath(); + + if (m_hasDesktopFolder) { + urls << QDir::homePath() + QStringLiteral("/Desktop"); + } + + if (m_hasDownloadsFolder) { + urls << QDir::homePath() + QStringLiteral("/Downloads"); + } + + urls << QStringLiteral(KDE_ROOT_PATH) << QStringLiteral("trash:/") << QStringLiteral("remote:/") << QStringLiteral("/media/nfs") << QStringLiteral("timeline:/today") << QStringLiteral("timeline:/yesterday") @@ -263,10 +272,12 @@ void PlacesItemModelTest::initTestCase() } if (QDir(QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)).exists()) { + m_hasDesktopFolder = true; m_expectedModelCount++; } if (QDir(QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)).exists()) { + m_hasDownloadsFolder = true; m_expectedModelCount++; } @@ -375,7 +386,7 @@ void PlacesItemModelTest::testDeletePlace() // make sure that the new item is removed QTRY_COMPARE(itemsRemovedSpy.count(), 1); - QTRY_COMPARE(m_model->count(), 17); + QTRY_COMPARE(m_model->count(), m_expectedModelCount); CHECK_PLACES_URLS(initialUrls()); QTRY_COMPARE(model->count(), m_model->count()); } @@ -392,7 +403,7 @@ void PlacesItemModelTest::testTearDownDevice() auto teardownAction = m_model->teardownAction(index); QVERIFY(teardownAction); - QCOMPARE(m_model->count(), 17); + QCOMPARE(m_model->count(), m_expectedModelCount); QSignalSpy spyItemsRemoved(m_model, &PlacesItemModel::itemsRemoved); fakeManager()->call(QStringLiteral("unplug"), "/org/kde/solid/fakehw/volume_part1_size_993284096"); @@ -408,7 +419,7 @@ void PlacesItemModelTest::testTearDownDevice() QSignalSpy spyItemsInserted(m_model, &PlacesItemModel::itemsInserted); fakeManager()->call(QStringLiteral("plug"), "/org/kde/solid/fakehw/volume_part1_size_993284096"); - QTRY_COMPARE(m_model->count(), 17); + QTRY_COMPARE(m_model->count(), m_expectedModelCount); QCOMPARE(spyItemsInserted.count(), 1); index = indexOf(mediaUrl); @@ -458,12 +469,12 @@ void PlacesItemModelTest::testDefaultViewProperties() void PlacesItemModelTest::testClear() { - QCOMPARE(m_model->count(), 17); + QCOMPARE(m_model->count(), m_expectedModelCount); m_model->clear(); QCOMPARE(m_model->count(), 0); QCOMPARE(m_model->hiddenCount(), 0); m_model->refresh(); - QTRY_COMPARE(m_model->count(), 17); + QTRY_COMPARE(m_model->count(), m_expectedModelCount); } void PlacesItemModelTest::testHideItem() @@ -511,12 +522,12 @@ void PlacesItemModelTest::testHideItem() // mark model to hide invisible items m_model->setHiddenItemsShown(true); - QTRY_COMPARE(m_model->count(), 17); + QTRY_COMPARE(m_model->count(), m_expectedModelCount); } void PlacesItemModelTest::testSystemItems() { - QCOMPARE(m_model->count(), 17); + QCOMPARE(m_model->count(), m_expectedModelCount); for (int r = 0; r < m_model->count(); r++) { QCOMPARE(m_model->placesItem(r)->isSystemItem(), !m_model->placesItem(r)->device().isValid()); } @@ -548,7 +559,7 @@ void PlacesItemModelTest::testSystemItems() range = args.at(0).value(); QCOMPARE(range.first().index, 5); QCOMPARE(range.first().count, 1); - QTRY_COMPARE(m_model->count(), 17); + QTRY_COMPARE(m_model->count(), m_expectedModelCount); //cancel removal (it was removed above) cancelPlaceRemoval(5); -- cgit v1.3 From 9204f3272bf7232df86d5da1824f7355c9c0b9c4 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 17:26:28 +0200 Subject: [PlacesItemModelTest] Fix testGroups() test case The test was also assuming that the Desktop and Downloads folders are always available, which isn't the case. --- src/tests/placesitemmodeltest.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index 9f5e49d38..8415a58d0 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -302,26 +302,32 @@ void PlacesItemModelTest::testModelSort() void PlacesItemModelTest::testGroups() { const auto groups = m_model->groups(); - + int expectedGroupSize = 3; + if (m_hasDesktopFolder) { + expectedGroupSize++; + } + if (m_hasDownloadsFolder) { + expectedGroupSize++; + } QCOMPARE(groups.size(), 6); QCOMPARE(groups.at(0).first, 0); QCOMPARE(groups.at(0).second.toString(), QStringLiteral("Places")); - QCOMPARE(groups.at(1).first, 5); + QCOMPARE(groups.at(1).first, expectedGroupSize); QCOMPARE(groups.at(1).second.toString(), QStringLiteral("Remote")); - QCOMPARE(groups.at(2).first, 7); + QCOMPARE(groups.at(2).first, expectedGroupSize + 2); QCOMPARE(groups.at(2).second.toString(), QStringLiteral("Recently Saved")); - QCOMPARE(groups.at(3).first, 9); + QCOMPARE(groups.at(3).first, expectedGroupSize + 4); QCOMPARE(groups.at(3).second.toString(), QStringLiteral("Search For")); - QCOMPARE(groups.at(4).first, 13); + QCOMPARE(groups.at(4).first, expectedGroupSize + 8); QCOMPARE(groups.at(4).second.toString(), QStringLiteral("Devices")); - QCOMPARE(groups.at(5).first, 14); + QCOMPARE(groups.at(5).first, expectedGroupSize + 9); QCOMPARE(groups.at(5).second.toString(), QStringLiteral("Removable Devices")); } -- cgit v1.3 From 0abba76eea63d3939e9942c92a3377d401d3c9b5 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 17:41:54 +0200 Subject: [PlacesItemModelTest] Fix testDeletePlace() If the Desktop or Downloads folder is missing, using 5 as index would be wrong. --- src/tests/placesitemmodeltest.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index 8415a58d0..c47575c46 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -378,9 +378,17 @@ void PlacesItemModelTest::testDeletePlace() PlacesItemModel *model = new PlacesItemModel(); + int tempDirIndex = 3; + if (m_hasDesktopFolder) { + tempDirIndex++; + } + if (m_hasDownloadsFolder) { + tempDirIndex++; + } + // create a new place createPlaceItem(QStringLiteral("Temporary Dir"), tempUrl, QString()); - urls.insert(5, tempUrl.toLocalFile()); + urls.insert(tempDirIndex, tempUrl.toLocalFile()); // check if the new entry was created QTRY_COMPARE(itemsInsertedSpy.count(), 1); @@ -388,7 +396,7 @@ void PlacesItemModelTest::testDeletePlace() QTRY_COMPARE(model->count(), m_model->count()); // delete item - m_model->deleteItem(5); + m_model->deleteItem(tempDirIndex); // make sure that the new item is removed QTRY_COMPARE(itemsRemovedSpy.count(), 1); -- cgit v1.3 From 26d02ecbdb8b95bff5371a4deb414b7076cc28b8 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 17:49:36 +0200 Subject: [PlacesItemModelTest] Fix testTearDownDevice() --- src/tests/placesitemmodeltest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index c47575c46..695aa580a 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -421,7 +421,7 @@ void PlacesItemModelTest::testTearDownDevice() QSignalSpy spyItemsRemoved(m_model, &PlacesItemModel::itemsRemoved); fakeManager()->call(QStringLiteral("unplug"), "/org/kde/solid/fakehw/volume_part1_size_993284096"); - QTRY_COMPARE(m_model->count(), 16); + QTRY_COMPARE(m_model->count(), m_expectedModelCount - 1); QCOMPARE(spyItemsRemoved.count(), 1); const QList spyItemsRemovedArgs = spyItemsRemoved.takeFirst(); const KItemRangeList removedRange = spyItemsRemovedArgs.at(0).value(); -- cgit v1.3 From e99827293bea035b99e4f1e1881821ce378bd253 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 18:01:00 +0200 Subject: [PlacesItemModelTest] Fix testHideItem() --- src/tests/placesitemmodeltest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index 695aa580a..e045e9198 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -511,7 +511,7 @@ void PlacesItemModelTest::testHideItem() item->setHidden(true); // check if items removed was fired - QTRY_COMPARE(m_model->count(), 16); + QTRY_COMPARE(m_model->count(), m_expectedModelCount - 1); QCOMPARE(spyItemsRemoved.count(), 1); spyItemsRemovedArgs = spyItemsRemoved.takeFirst(); removedRange = spyItemsRemovedArgs.at(0).value(); -- cgit v1.3 From 4a56d21fb1e98cd41e2e82a68ef3d23687c233e2 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 19:28:56 +0200 Subject: [PlacesItemModel] Fix testSystemItems() --- src/tests/placesitemmodeltest.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index e045e9198..3a99204e4 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -541,6 +541,14 @@ void PlacesItemModelTest::testHideItem() void PlacesItemModelTest::testSystemItems() { + int tempDirIndex = 3; + if (m_hasDesktopFolder) { + tempDirIndex++; + } + if (m_hasDownloadsFolder) { + tempDirIndex++; + } + QCOMPARE(m_model->count(), m_expectedModelCount); for (int r = 0; r < m_model->count(); r++) { QCOMPARE(m_model->placesItem(r)->isSystemItem(), !m_model->placesItem(r)->device().isValid()); @@ -555,28 +563,28 @@ void PlacesItemModelTest::testSystemItems() QTRY_COMPARE(itemsInsertedSpy.count(), 1); // make sure the new place get removed - removePlaceAfter(5); + removePlaceAfter(tempDirIndex); QList args = itemsInsertedSpy.takeFirst(); KItemRangeList range = args.at(0).value(); - QCOMPARE(range.first().index, 5); + QCOMPARE(range.first().index, tempDirIndex); QCOMPARE(range.first().count, 1); - QVERIFY(!m_model->placesItem(5)->isSystemItem()); - QCOMPARE(m_model->count(), 18); + QVERIFY(!m_model->placesItem(tempDirIndex)->isSystemItem()); + QCOMPARE(m_model->count(), m_expectedModelCount + 1); QTest::qWait(300); // check if the removal signal is correct QSignalSpy itemsRemovedSpy(m_model, &PlacesItemModel::itemsRemoved); - m_model->deleteItem(5); + m_model->deleteItem(tempDirIndex); QTRY_COMPARE(itemsRemovedSpy.count(), 1); args = itemsRemovedSpy.takeFirst(); range = args.at(0).value(); - QCOMPARE(range.first().index, 5); + QCOMPARE(range.first().index, tempDirIndex); QCOMPARE(range.first().count, 1); QTRY_COMPARE(m_model->count(), m_expectedModelCount); //cancel removal (it was removed above) - cancelPlaceRemoval(5); + cancelPlaceRemoval(tempDirIndex); } void PlacesItemModelTest::testEditBookmark() -- cgit v1.3 From e2f93a28294fd0575cf8427f31a2fba4f8d6b099 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 7 Oct 2018 19:41:54 +0200 Subject: [PlacesItemModelTest] More index-related fixes Again, we cannot assume the Desktop and Downloads places are always around. --- src/tests/placesitemmodeltest.cpp | 74 ++++++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 13 deletions(-) diff --git a/src/tests/placesitemmodeltest.cpp b/src/tests/placesitemmodeltest.cpp index 3a99204e4..545bba89c 100644 --- a/src/tests/placesitemmodeltest.cpp +++ b/src/tests/placesitemmodeltest.cpp @@ -589,12 +589,20 @@ void PlacesItemModelTest::testSystemItems() void PlacesItemModelTest::testEditBookmark() { + int tempDirIndex = 3; + if (m_hasDesktopFolder) { + tempDirIndex++; + } + if (m_hasDownloadsFolder) { + tempDirIndex++; + } + QScopedPointer other(new PlacesItemModel()); createPlaceItem(QStringLiteral("Temporary Dir"), QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::TempLocation)), QString()); // make sure that the new item will be removed later - removePlaceAfter(5); + removePlaceAfter(tempDirIndex); QSignalSpy itemsChangedSply(m_model, &PlacesItemModel::itemsChanged); @@ -619,6 +627,14 @@ void PlacesItemModelTest::testEditBookmark() void PlacesItemModelTest::testEditAfterCreation() { + int tempDirIndex = 3; + if (m_hasDesktopFolder) { + tempDirIndex++; + } + if (m_hasDownloadsFolder) { + tempDirIndex++; + } + const QUrl tempUrl = QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::TempLocation)); QSignalSpy itemsInsertedSpy(m_model, &PlacesItemModel::itemsInserted); @@ -630,7 +646,7 @@ void PlacesItemModelTest::testEditAfterCreation() QTRY_COMPARE(model->count(), m_model->count()); // make sure that the new item will be removed later - removePlaceAfter(5); + removePlaceAfter(tempDirIndex); // modify place text PlacesItem *item = m_model->placesItem(3); @@ -648,6 +664,14 @@ void PlacesItemModelTest::testEditAfterCreation() void PlacesItemModelTest::testEditMetadata() { + int tempDirIndex = 3; + if (m_hasDesktopFolder) { + tempDirIndex++; + } + if (m_hasDownloadsFolder) { + tempDirIndex++; + } + const QUrl tempUrl = QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::TempLocation)); QSignalSpy itemsInsertedSpy(m_model, &PlacesItemModel::itemsInserted); @@ -660,7 +684,7 @@ void PlacesItemModelTest::testEditMetadata() QTRY_COMPARE(model->count(), m_model->count()); // make sure that the new item will be removed later - removePlaceAfter(5); + removePlaceAfter(tempDirIndex); // modify place metadata PlacesItem *item = m_model->placesItem(3); @@ -679,6 +703,14 @@ void PlacesItemModelTest::testEditMetadata() void PlacesItemModelTest::testRefresh() { + int tempDirIndex = 3; + if (m_hasDesktopFolder) { + tempDirIndex++; + } + if (m_hasDownloadsFolder) { + tempDirIndex++; + } + const QUrl tempUrl = QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::TempLocation)); QSignalSpy itemsInsertedSpy(m_model, &PlacesItemModel::itemsInserted); @@ -690,10 +722,10 @@ void PlacesItemModelTest::testRefresh() QTRY_COMPARE(model->count(), m_model->count()); // make sure that the new item will be removed later - removePlaceAfter(5); + removePlaceAfter(tempDirIndex); - PlacesItem *item = m_model->placesItem(5); - PlacesItem *sameItem = model->placesItem(5); + PlacesItem *item = m_model->placesItem(tempDirIndex); + PlacesItem *sameItem = model->placesItem(tempDirIndex); QCOMPARE(item->text(), sameItem->text()); // modify place text @@ -742,6 +774,14 @@ void PlacesItemModelTest::testIcons() void PlacesItemModelTest::testDragAndDrop() { + int lastIndex = 2; // last index of places group + if (m_hasDesktopFolder) { + lastIndex++; + } + if (m_hasDownloadsFolder) { + lastIndex++; + } + QList args; KItemRangeList range; QStringList urls = initialUrls(); @@ -752,7 +792,7 @@ void PlacesItemModelTest::testDragAndDrop() // Move the home directory to the end of the places group QMimeData *dropData = createMimeData(QList() << 0); m_model->dropMimeDataBefore(m_model->count() - 1, dropData); - urls.move(0, 4); + urls.move(0, lastIndex); delete dropData; QTRY_COMPARE(itemsInsertedSpy.count(), 1); @@ -770,7 +810,7 @@ void PlacesItemModelTest::testDragAndDrop() range = args.at(0).value(); QCOMPARE(range.size(), 1); QCOMPARE(range.at(0).count, 1); - QCOMPARE(range.at(0).index, 4); + QCOMPARE(range.at(0).index, lastIndex); CHECK_PLACES_URLS(urls); @@ -778,9 +818,9 @@ void PlacesItemModelTest::testDragAndDrop() itemsRemovedSpy.clear(); // Move home directory item back to its original position - dropData = createMimeData(QList() << 4); + dropData = createMimeData(QList() << lastIndex); m_model->dropMimeDataBefore(0, dropData); - urls.move(4, 0); + urls.move(lastIndex, 0); delete dropData; QTRY_COMPARE(itemsInsertedSpy.count(), 1); @@ -791,7 +831,7 @@ void PlacesItemModelTest::testDragAndDrop() range = args.at(0).value(); QCOMPARE(range.size(), 1); QCOMPARE(range.at(0).count, 1); - QCOMPARE(range.at(0).index, 4); + QCOMPARE(range.at(0).index, lastIndex); // insert intem in the requested position args = itemsInsertedSpy.takeFirst(); @@ -853,6 +893,14 @@ void PlacesItemModelTest::testDuplicatedEntries() void PlacesItemModelTest::renameAfterCreation() { + int tempDirIndex = 3; + if (m_hasDesktopFolder) { + tempDirIndex++; + } + if (m_hasDownloadsFolder) { + tempDirIndex++; + } + const QUrl tempUrl = QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::TempLocation)); QStringList urls = initialUrls(); PlacesItemModel *model = new PlacesItemModel(); @@ -862,10 +910,10 @@ void PlacesItemModelTest::renameAfterCreation() // create a new place createPlaceItem(QStringLiteral("Temporary Dir"), tempUrl, QString()); - urls.insert(5, tempUrl.toLocalFile()); + urls.insert(tempDirIndex, tempUrl.toLocalFile()); // make sure that the new item will be removed later - removePlaceAfter(5); + removePlaceAfter(tempDirIndex); CHECK_PLACES_URLS(urls); QCOMPARE(model->count(), m_model->count()); -- cgit v1.3