diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp | 60 |
1 files changed, 44 insertions, 16 deletions
diff --git a/tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp b/tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp index 3ac7eae9f..9caf7aacf 100644 --- a/tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp +++ b/tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp @@ -44,6 +44,23 @@ class tst_simplemovefileoperation : public QObject { Q_OBJECT +private: + void createDummyFile(const QString &source, const QString &destination) + { + // Create dummy original file for move destination + QFile destFile(destination); + QVERIFY(destFile.open(QIODevice::WriteOnly)); + destFile.close(); + + QByteArray testString("Generated by QTest\n"); + QFile testFile(source); + QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Text)); + QTextStream out(&testFile); + out << testString; + testFile.close(); + QVERIFY(QFileInfo(source).exists()); + } + private slots: void testMissingArguments() { @@ -65,7 +82,7 @@ private slots: "source \"\", target \"\".")); } - void testMoveFileWithOverwrite_data() + void initTestCase_data() { QTest::addColumn<QString>("source"); QTest::addColumn<QString>("destination"); @@ -77,22 +94,10 @@ private slots: void testMoveFileWithOverwrite() { - QFETCH(QString, source); - QFETCH(QString, destination); - - // Create dummy original file for move destination - QFile destFile(destination); - QVERIFY(destFile.open(QIODevice::WriteOnly)); - destFile.close(); - - QByteArray testString("Generated by QTest\n"); - QFile testFile(source); - QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Text)); - QTextStream out(&testFile); - out << testString; - testFile.close(); + QFETCH_GLOBAL(QString, source); + QFETCH_GLOBAL(QString, destination); - QVERIFY(QFileInfo(source).exists()); + createDummyFile(source, destination); QByteArray testFileHash = QInstaller::calculateHash(source, QCryptographicHash::Sha1); SimpleMoveFileOperation op(nullptr); @@ -113,6 +118,29 @@ private slots: QVERIFY(QFile(source).remove()); } + void testMoveFileNoUndo() + { + QFETCH_GLOBAL(QString, source); + QFETCH_GLOBAL(QString, destination); + + createDummyFile(source, destination); + + QByteArray testFileHash = QInstaller::calculateHash(source, QCryptographicHash::Sha1); + + SimpleMoveFileOperation op(nullptr); + op.setArguments(QStringList() << source << destination << "UNDOOPERATION" << ""); + + QVERIFY2(op.performOperation(), op.errorString().toLatin1()); + QVERIFY(!QFileInfo(source).exists()); + QByteArray destinationFileHash = QInstaller::calculateHash(destination, QCryptographicHash::Sha1); + QVERIFY(testFileHash == destinationFileHash); + + QVERIFY2(op.undoOperation(), op.errorString().toLatin1()); + QVERIFY(QFileInfo(destination).exists()); + QVERIFY(testFileHash == destinationFileHash); + QVERIFY(QFile(destination).remove()); + } + void testPerformingFromCLI() { QString installDir = QInstaller::generateTemporaryFileName(); |