summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2019-11-04 15:35:17 +0200
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2019-11-11 07:06:20 +0000
commitf667bf73d0e38b4970d6b643b93109f7b318563d (patch)
tree9f88d55088294e603c38ca11d9d2c6908871a183
parent03166d8e496c0aa81b5b9b790d90ab07968e56cc (diff)
Add better test branch for testSetDefaultFilePermissions() on Windows
As the function to be tested is now enabled also on Windows platforms, this should at least check that the unsetting of legacy read-only flag works as intended. Task-number: QTIFW-1464 Change-Id: Ibe126d279a31aaa3d204cf6a8fe04a05ea195bb8 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
-rw-r--r--tests/auto/installer/fileutils/tst_fileutils.cpp36
1 files changed, 32 insertions, 4 deletions
diff --git a/tests/auto/installer/fileutils/tst_fileutils.cpp b/tests/auto/installer/fileutils/tst_fileutils.cpp
index feb96d30c..5472e1403 100644
--- a/tests/auto/installer/fileutils/tst_fileutils.cpp
+++ b/tests/auto/installer/fileutils/tst_fileutils.cpp
@@ -44,11 +44,39 @@ private slots:
void testSetDefaultFilePermissions()
{
#if defined(Q_OS_WIN)
- QVERIFY(setDefaultFilePermissions(QInstaller::generateTemporaryFileName(),
- DefaultFilePermissions::NonExecutable));
+ QString fileName = QInstaller::generateTemporaryFileName();
+ QFile testFile(fileName);
+
+ QVERIFY(testFile.open(QIODevice::ReadWrite));
+ QVERIFY(testFile.exists());
+ testFile.close();
+
+ // Set permissions containing none of the Write* flags, this will cause
+ // the read-only flag to be set for the file
+ QVERIFY(testFile.setPermissions(QFileDevice::ReadOwner | QFileDevice::ReadUser
+ | QFileDevice::ReadGroup | QFileDevice::ReadOther));
+
+ // Verify that the file cannot be opened for both reading and writing, i.e.
+ // it should be read-only.
+ QVERIFY(!testFile.open(QIODevice::ReadWrite));
+
+ // Now try to remove the read-only flag
+ QVERIFY(setDefaultFilePermissions(&testFile, DefaultFilePermissions::NonExecutable));
- QVERIFY(setDefaultFilePermissions(QInstaller::generateTemporaryFileName(),
- DefaultFilePermissions::Executable));
+ // Verify that the file can now be opened for both reading and writing
+ QVERIFY(testFile.open(QIODevice::ReadWrite));
+ testFile.close();
+
+ QVERIFY(testFile.setPermissions(QFileDevice::ReadOwner | QFileDevice::ReadUser
+ | QFileDevice::ReadGroup | QFileDevice::ReadOther));
+
+ // Check that the behavior is same with 'Executable' argument
+ QVERIFY(setDefaultFilePermissions(&testFile, DefaultFilePermissions::Executable));
+
+ QVERIFY(testFile.open(QIODevice::ReadWrite));
+ testFile.close();
+
+ QVERIFY(testFile.remove());
#elif defined(Q_OS_UNIX)
// Need to include the "user" flags here as they will be returned
// by QFile::permissions(). Same as owner permissions of the file.