summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp')
-rw-r--r--tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp38
1 files changed, 37 insertions, 1 deletions
diff --git a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
index e68594ebaf..6d7a6e76ef 100644
--- a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
+++ b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
@@ -88,7 +88,8 @@ private slots:
void resetTemplateAfterError();
void setTemplateAfterOpen();
void autoRemoveAfterFailedRename();
-
+ void createNativeFile_data();
+ void createNativeFile();
void QTBUG_4796_data();
void QTBUG_4796();
};
@@ -633,6 +634,41 @@ void tst_QTemporaryFile::autoRemoveAfterFailedRename()
cleaner.reset();
}
+void tst_QTemporaryFile::createNativeFile_data()
+{
+ QTest::addColumn<QString>("filePath");
+ QTest::addColumn<qint64>("currentPos");
+ QTest::addColumn<bool>("valid");
+ QTest::addColumn<QByteArray>("content");
+
+ QTest::newRow("nativeFile") << QFINDTESTDATA("resources/test.txt") << (qint64)-1 << false << QByteArray();
+ QTest::newRow("nativeFileWithPos") << QFINDTESTDATA("resources/test.txt") << (qint64)5 << false << QByteArray();
+ QTest::newRow("resourceFile") << ":/resources/test.txt" << (qint64)-1 << true << QByteArray("This is a test");
+ QTest::newRow("resourceFileWithPos") << ":/resources/test.txt" << (qint64)5 << true << QByteArray("This is a test");
+}
+
+void tst_QTemporaryFile::createNativeFile()
+{
+ QFETCH(QString, filePath);
+ QFETCH(qint64, currentPos);
+ QFETCH(bool, valid);
+ QFETCH(QByteArray, content);
+
+ QFile f(filePath);
+ if (currentPos != -1) {
+ f.open(QIODevice::ReadOnly);
+ f.seek(currentPos);
+ }
+ QTemporaryFile *tempFile = QTemporaryFile::createNativeFile(f);
+ QVERIFY(valid == (bool)tempFile);
+ if (currentPos != -1)
+ QCOMPARE(currentPos, f.pos());
+ if (valid) {
+ QCOMPARE(content, tempFile->readAll());
+ delete tempFile;
+ }
+}
+
void tst_QTemporaryFile::QTBUG_4796_data()
{
QTest::addColumn<QString>("prefix");