diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-04-01 09:42:42 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-04-02 13:20:05 +0300 |
commit | 6d7e9850da3cac9702d7acdb569cf5ec865966e0 (patch) | |
tree | a9069adbe3daa0a2dabc005a0261f14c48a35ae4 /tests/auto | |
parent | 29c465ba7078ab9b1810076739631c35a0198027 (diff) |
Add CLI test for CopyOperation
Task-number: QTIFW-1722
Change-Id: I84444aebf87a64b5696c8abd9fc1808986c77069
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/installer/copyoperationtest/copyoperationtest.pro | 4 | ||||
-rw-r--r-- | tests/auto/installer/copyoperationtest/data/repository/A/1.0.2-1content.7z | bin | 0 -> 185 bytes | |||
-rw-r--r-- | tests/auto/installer/copyoperationtest/data/repository/A/1.0.2-1meta.7z | bin | 0 -> 893 bytes | |||
-rw-r--r-- | tests/auto/installer/copyoperationtest/data/repository/Updates.xml | 17 | ||||
-rw-r--r-- | tests/auto/installer/copyoperationtest/settings.qrc | 7 | ||||
-rw-r--r-- | tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp | 38 |
6 files changed, 66 insertions, 0 deletions
diff --git a/tests/auto/installer/copyoperationtest/copyoperationtest.pro b/tests/auto/installer/copyoperationtest/copyoperationtest.pro index ce4ad42ec..a4d9d1204 100644 --- a/tests/auto/installer/copyoperationtest/copyoperationtest.pro +++ b/tests/auto/installer/copyoperationtest/copyoperationtest.pro @@ -4,3 +4,7 @@ QT -= gui QT += testlib SOURCES = tst_copyoperationtest.cpp + +RESOURCES += \ + settings.qrc \ + ..\shared\config.qrc diff --git a/tests/auto/installer/copyoperationtest/data/repository/A/1.0.2-1content.7z b/tests/auto/installer/copyoperationtest/data/repository/A/1.0.2-1content.7z Binary files differnew file mode 100644 index 000000000..8ba90b13b --- /dev/null +++ b/tests/auto/installer/copyoperationtest/data/repository/A/1.0.2-1content.7z diff --git a/tests/auto/installer/copyoperationtest/data/repository/A/1.0.2-1meta.7z b/tests/auto/installer/copyoperationtest/data/repository/A/1.0.2-1meta.7z Binary files differnew file mode 100644 index 000000000..ae2a965bb --- /dev/null +++ b/tests/auto/installer/copyoperationtest/data/repository/A/1.0.2-1meta.7z diff --git a/tests/auto/installer/copyoperationtest/data/repository/Updates.xml b/tests/auto/installer/copyoperationtest/data/repository/Updates.xml new file mode 100644 index 000000000..0826afae8 --- /dev/null +++ b/tests/auto/installer/copyoperationtest/data/repository/Updates.xml @@ -0,0 +1,17 @@ +<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> + <Script>script.qs</Script> + <UpdateFile CompressedSize="225" UncompressedSize="75" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>6d7a3e15d11a4d94b81452fc2aa18e705a01c922</SHA1> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/copyoperationtest/settings.qrc b/tests/auto/installer/copyoperationtest/settings.qrc new file mode 100644 index 000000000..10cc3c3bb --- /dev/null +++ b/tests/auto/installer/copyoperationtest/settings.qrc @@ -0,0 +1,7 @@ +<RCC> + <qresource prefix="/"> + <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> + </qresource> +</RCC> diff --git a/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp b/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp index e55fc89f4..5adbdd6a7 100644 --- a/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp +++ b/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp @@ -29,6 +29,10 @@ #include <init.h> #include <updateoperations.h> #include <utils.h> +#include <binarycontent.h> +#include <packagemanagercore.h> +#include <settings.h> +#include <fileutils.h> #include <QDir> #include <QObject> @@ -134,6 +138,40 @@ private slots: currentFileHash = QInstaller::calculateHash(m_testDestinationFilePath, QCryptographicHash::Sha1); QVERIFY(testFileHash == currentFileHash); } + + void testPerformingFromCLI() + { + QInstaller::init(); //This will eat debug output + PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList<OperationBlob> ()); + QSet<Repository> repoList; + Repository repo = Repository::fromUserInput(":///data/repository"); + repoList.insert(repo); + core->settings().setDefaultRepositories(repoList); + + QString installDir = QInstaller::generateTemporaryFileName(); + QDir().mkpath(installDir); + core->setValue(scTargetDir, installDir); + 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(); + } + void init() { QVERIFY2(!QFileInfo(m_testDestinationFilePath).exists(), QString("Destination \"%1\" should not exist " |