From 8cbae43d2269a056b530e10ae8c11168bc66ebb5 Mon Sep 17 00:00:00 2001 From: Sebastian Englbrecht Date: Mon, 1 Jun 2026 19:29:34 +0200 Subject: tests: exclude two tests on windows dolphinmainwindowtest requires a real window server no_bare_qwait_in_tests requires bash and only serves as lint, so linux only is OK --- src/tests/viewpropertiestest.cpp | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'src/tests/viewpropertiestest.cpp') diff --git a/src/tests/viewpropertiestest.cpp b/src/tests/viewpropertiestest.cpp index f90d57b88..1d9e886e1 100644 --- a/src/tests/viewpropertiestest.cpp +++ b/src/tests/viewpropertiestest.cpp @@ -109,30 +109,45 @@ void ViewPropertiesTest::testReadOnlyDirectory() QVERIFY(QFile(localFolder).setPermissions(QFileDevice::ReadOwner)); QScopedPointer props(new ViewProperties(testDirUrl)); - const QString destinationDir = props->destinationDir(QStringLiteral("local")) + localFolder; - QVERIFY(props->isAutoSaveEnabled()); props->setSortRole("someNewSortRole"); props.reset(); +#ifdef Q_OS_WIN + // On Windows the read-only attribute is not honored on directories: files and + // Alternate Data Streams can still be created inside them. The properties are + // therefore stored locally rather than redirected to the destination directory. + KFileMetaData::UserMetaData metadata(localFolder); + if (metadata.isSupported()) { + QVERIFY(metadata.hasAttribute("kde.fm.viewproperties#1")); + } else { + QVERIFY(QFile::exists(dotDirectoryFile)); + } +#else + // On a directory without write permission the properties are redirected to the + // destination directory, leaving the local directory untouched. + const QString destinationDir = props->destinationDir(QStringLiteral("local")) + localFolder; QVERIFY(QDir(destinationDir).exists()); QVERIFY(!QFile::exists(dotDirectoryFile)); KFileMetaData::UserMetaData metadata(localFolder); - const QString viewProperties = metadata.attribute(QStringLiteral("kde.fm.viewproperties#1")); - QVERIFY(viewProperties.isEmpty()); + QVERIFY(metadata.attribute(QStringLiteral("kde.fm.viewproperties#1")).isEmpty()); +#endif + // The stored value round-trips regardless of where it was written. props.reset(new ViewProperties(testDirUrl)); QVERIFY(props->isAutoSaveEnabled()); QCOMPARE(props->sortRole(), "someNewSortRole"); props.reset(); - metadata = KFileMetaData::UserMetaData(destinationDir); - if (metadata.isSupported()) { - QVERIFY(metadata.hasAttribute("kde.fm.viewproperties#1")); +#ifndef Q_OS_WIN + KFileMetaData::UserMetaData destMetadata(destinationDir); + if (destMetadata.isSupported()) { + QVERIFY(destMetadata.hasAttribute("kde.fm.viewproperties#1")); } else { QVERIFY(QFile::exists(destinationDir + "/.directory")); } +#endif // un-restrict write permissions QFile(localFolder).setPermissions(QFileDevice::ReadOwner | QFileDevice::WriteOwner); -- cgit v1.3.1