diff options
-rw-r--r-- | tests/auto/installer/fileutils/tst_fileutils.cpp | 36 |
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. |