QSaveFile: test the case of an existing, but readonly, target file.
Change-Id: I296d9c2598b8c72e2fd3e6ec80a615364b7eddeb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
e993df8771
commit
2d5fe45379
|
|
@ -66,7 +66,8 @@ private slots:
|
|||
void textStreamManualFlush();
|
||||
void textStreamAutoFlush();
|
||||
void saveTwice();
|
||||
void transactionalWriteNoPermissions();
|
||||
void transactionalWriteNoPermissionsOnDir();
|
||||
void transactionalWriteNoPermissionsOnFile();
|
||||
void transactionalWriteCanceled();
|
||||
void transactionalWriteErrorRenaming();
|
||||
};
|
||||
|
|
@ -152,7 +153,7 @@ void tst_QSaveFile::textStreamAutoFlush()
|
|||
QFile::remove(targetFile);
|
||||
}
|
||||
|
||||
void tst_QSaveFile::transactionalWriteNoPermissions()
|
||||
void tst_QSaveFile::transactionalWriteNoPermissionsOnDir()
|
||||
{
|
||||
#ifdef Q_OS_UNIX
|
||||
if (::geteuid() == 0)
|
||||
|
|
@ -169,6 +170,26 @@ void tst_QSaveFile::transactionalWriteNoPermissions()
|
|||
#endif
|
||||
}
|
||||
|
||||
void tst_QSaveFile::transactionalWriteNoPermissionsOnFile()
|
||||
{
|
||||
// Setup an existing but readonly file
|
||||
QTemporaryDir dir;
|
||||
const QString targetFile = dir.path() + QString::fromLatin1("/outfile");
|
||||
QFile file(targetFile);
|
||||
QVERIFY(file.open(QIODevice::WriteOnly));
|
||||
QCOMPARE(file.write("Hello"), Q_INT64_C(5));
|
||||
file.close();
|
||||
file.setPermissions(QFile::ReadOwner);
|
||||
QVERIFY(!file.open(QIODevice::WriteOnly));
|
||||
|
||||
// Try saving into it
|
||||
{
|
||||
QSaveFile saveFile(targetFile);
|
||||
QVERIFY(!saveFile.open(QIODevice::WriteOnly)); // just like QFile
|
||||
}
|
||||
QVERIFY(file.exists());
|
||||
}
|
||||
|
||||
void tst_QSaveFile::transactionalWriteCanceled()
|
||||
{
|
||||
QTemporaryDir dir;
|
||||
|
|
|
|||
Loading…
Reference in New Issue