summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-12-28 14:14:22 +0200
committerKatja Marttila <katja.marttila@qt.io>2020-12-30 09:10:16 +0000
commitca664d6e9f7b53c5b61237da2fceb8248124ad40 (patch)
treec6dbc7c7df17550667941b1c2af47e1abd78cf19 /tests
parent9065a5f46a7d94e0a8a91e0bdb52834851609006 (diff)
Allow disabling undo in SimpleMoveFile operation during uninstall
Task-number: QTIFW-2090 Change-Id: If0c2d4901ee1fb634e1e436ab14a507d06dd99ab Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp60
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();