summaryrefslogtreecommitdiffstats
path: root/tests/auto/installer/metadatajob/tst_metadatajob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/installer/metadatajob/tst_metadatajob.cpp')
-rw-r--r--tests/auto/installer/metadatajob/tst_metadatajob.cpp45
1 files changed, 44 insertions, 1 deletions
diff --git a/tests/auto/installer/metadatajob/tst_metadatajob.cpp b/tests/auto/installer/metadatajob/tst_metadatajob.cpp
index 54609ab95..cb974e7ad 100644
--- a/tests/auto/installer/metadatajob/tst_metadatajob.cpp
+++ b/tests/auto/installer/metadatajob/tst_metadatajob.cpp
@@ -1,6 +1,6 @@
/**************************************************************************
**
-** Copyright (C) 2021 The Qt Company Ltd.
+** Copyright (C) 2023 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
@@ -97,6 +97,49 @@ private slots:
metadata.waitForFinished();
QCOMPARE(metadata.metadata().count(), 1);
}
+
+ void testZippedRepository_data()
+ {
+ QTest::addColumn<QStringList>("repositories");
+ QTest::addColumn<int>("metacount");
+ QTest::addColumn<bool>("allowUnstable");
+
+ QStringList repositories;
+ repositories << ":///data/repositoryZipped/repositoryZipped.7z";
+ QTest::newRow("7z repository") << repositories << 1 << true;
+
+ repositories.clear();
+ repositories << ":///data/repository7zInvalidMetaSha1/repository7zInvalidMetaSha1.7z";
+ QTest::newRow("7z with invalid meta sha1") << repositories << 0 << true;
+
+ repositories.clear();
+ repositories << ":///data/repositoryZipped/repositoryZipped.7z" << ":///data/repository7zInvalidMetaSha1/repository7zInvalidMetaSha1.7z";
+ QTest::newRow("7z with one valid repository") << repositories << 1 << true;
+
+ repositories.clear();
+ repositories << ":///data/repository7zInvalidMetaSha1/repository7zInvalidMetaSha1.7z" << ":///data/repositoryZipped/repositoryZipped.7z";
+ QTest::newRow("7z with one valid repository") << repositories << 0 << false;
+ }
+
+ void testZippedRepository()
+ {
+ QFETCH(QStringList, repositories);
+ QFETCH(int, metacount);
+ QFETCH(bool, allowUnstable);
+
+ PackageManagerCore core;
+ core.setInstaller();
+ core.setTemporaryRepositories(repositories, false, true);
+ core.settings().setAllowUnstableComponents(allowUnstable);
+
+ MetadataJob metadata;
+ metadata.setPackageManagerCore(&core);
+ metadata.addDownloadType(DownloadType::CompressedPackage);
+ metadata.setAutoDelete(true);
+ metadata.start();
+ metadata.waitForFinished();
+ QCOMPARE(metadata.metadata().count(), metacount);
+ }
};