diff options
Diffstat (limited to 'tests/auto/installer/copyoperationtest')
4 files changed, 60 insertions, 23 deletions
diff --git a/tests/auto/installer/copyoperationtest/data/xmloperationrepository/A/1.0.2-1content.7z b/tests/auto/installer/copyoperationtest/data/xmloperationrepository/A/1.0.2-1content.7z Binary files differnew file mode 100644 index 000000000..8ba90b13b --- /dev/null +++ b/tests/auto/installer/copyoperationtest/data/xmloperationrepository/A/1.0.2-1content.7z diff --git a/tests/auto/installer/copyoperationtest/data/xmloperationrepository/Updates.xml b/tests/auto/installer/copyoperationtest/data/xmloperationrepository/Updates.xml new file mode 100644 index 000000000..4ad1e243b --- /dev/null +++ b/tests/auto/installer/copyoperationtest/data/xmloperationrepository/Updates.xml @@ -0,0 +1,25 @@ +<Updates> + <ApplicationName>{AnyApplication}</ApplicationName> + <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> + <PackageUpdate> + <Name>A</Name> + <DisplayName>A</DisplayName> + <Description>Example component A</Description> + <Version>1.0.2-1</Version> + <ReleaseDate>2015-01-01</ReleaseDate> + <Default>true</Default> + <UpdateFile CompressedSize="225" UncompressedSize="75" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>6d7a3e15d11a4d94b81452fc2aa18e705a01c922</SHA1> + <Operations> + <Operation name="Mkdir"> + <Argument>@TargetDir@/AnotherFolder</Argument> + </Operation> + <Operation name="Copy"> + <Argument>@TargetDir@/A.txt</Argument> + <Argument>@TargetDir@/AnotherFolder/A.txt</Argument> + </Operation> + </Operations> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/copyoperationtest/settings.qrc b/tests/auto/installer/copyoperationtest/settings.qrc index 10cc3c3bb..094bd449b 100644 --- a/tests/auto/installer/copyoperationtest/settings.qrc +++ b/tests/auto/installer/copyoperationtest/settings.qrc @@ -3,5 +3,7 @@ <file>data/repository/Updates.xml</file> <file>data/repository/A/1.0.2-1content.7z</file> <file>data/repository/A/1.0.2-1meta.7z</file> + <file>data/xmloperationrepository/Updates.xml</file> + <file>data/xmloperationrepository/A/1.0.2-1content.7z</file> </qresource> </RCC> diff --git a/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp b/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp index aee192400..d41853eee 100644 --- a/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp +++ b/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp @@ -40,6 +40,33 @@ class tst_copyoperationtest : public QObject { Q_OBJECT +private: + void installFromCLI(const QString &repository) + { + QString installDir = QInstaller::generateTemporaryFileName(); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit(installDir, repository); + core->installDefaultComponentsSilently(); + + QFile copiedFile(installDir + QDir::separator() + "AnotherFolder/A.txt"); + QVERIFY(copiedFile.exists()); + QFile originalFile(installDir + QDir::separator() + "A.txt"); + QVERIFY(originalFile.exists()); + + QByteArray destinationFileHash = QInstaller::calculateHash(copiedFile.fileName(), QCryptographicHash::Sha1); + QByteArray testFileHash = QInstaller::calculateHash(originalFile.fileName(), QCryptographicHash::Sha1); + QVERIFY(testFileHash == destinationFileHash); + + core->setPackageManager(); + core->commitSessionOperations(); + core->uninstallComponentsSilently(QStringList() << "A"); + QVERIFY(!copiedFile.exists()); + + QDir dir(installDir); + QVERIFY(dir.removeRecursively()); + core->deleteLater(); + } + private slots: void initTestCase() { @@ -132,30 +159,13 @@ private slots: QVERIFY(testFileHash == currentFileHash); } - void testPerformingFromCLI() + void testCopyFromScript() { - QString installDir = QInstaller::generateTemporaryFileName(); - QVERIFY(QDir().mkpath(installDir)); - PackageManagerCore *core = PackageManager::getPackageManagerWithInit(installDir, ":///data/repository"); - core->installDefaultComponentsSilently(); - - QFile copiedFile(installDir + QDir::separator() + "AnotherFolder/A.txt"); - QVERIFY(copiedFile.exists()); - QFile originalFile(installDir + QDir::separator() + "A.txt"); - QVERIFY(originalFile.exists()); - - QByteArray destinationFileHash = QInstaller::calculateHash(copiedFile.fileName(), QCryptographicHash::Sha1); - QByteArray testFileHash = QInstaller::calculateHash(originalFile.fileName(), QCryptographicHash::Sha1); - QVERIFY(testFileHash == destinationFileHash); - - core->setPackageManager(); - core->commitSessionOperations(); - core->uninstallComponentsSilently(QStringList() << "A"); - QVERIFY(!copiedFile.exists()); - - QDir dir(installDir); - QVERIFY(dir.removeRecursively()); - core->deleteLater(); + installFromCLI(":///data/repository"); + } + void testCopyFromComponentXML() + { + installFromCLI(":///data/xmloperationrepository"); } void init() |