diff options
Diffstat (limited to 'tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp')
-rw-r--r-- | tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp | 38 |
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"); |