summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/installer/componentalias/data/aliases-optional.xml8
-rw-r--r--tests/auto/installer/componentalias/data/repository/Updates.xml8
-rw-r--r--tests/auto/installer/componentalias/metadata/installer-config/aliases.xml32
-rw-r--r--tests/auto/installer/componentalias/tst_componentalias.cpp180
4 files changed, 220 insertions, 8 deletions
diff --git a/tests/auto/installer/componentalias/data/aliases-optional.xml b/tests/auto/installer/componentalias/data/aliases-optional.xml
index bc16013b7..2016592c1 100644
--- a/tests/auto/installer/componentalias/data/aliases-optional.xml
+++ b/tests/auto/installer/componentalias/data/aliases-optional.xml
@@ -33,4 +33,12 @@
<Virtual>false</Virtual>
<RequiredAliases>set-nonexistent</RequiredAliases>
</Alias>
+ <Alias>
+ <Name>set-optional-broken-component</Name>
+ <DisplayName>Dependency to optional unstable component</DisplayName>
+ <Description>Dependency to optional unstable component</Description>
+ <Version>2.0.0</Version>
+ <Virtual>false</Virtual>
+ <OptionalComponents>UnstableComponent</OptionalComponents>
+ </Alias>
</Aliases>
diff --git a/tests/auto/installer/componentalias/data/repository/Updates.xml b/tests/auto/installer/componentalias/data/repository/Updates.xml
index e128590dc..64950244f 100644
--- a/tests/auto/installer/componentalias/data/repository/Updates.xml
+++ b/tests/auto/installer/componentalias/data/repository/Updates.xml
@@ -40,4 +40,12 @@
<Version>1.0.0-1</Version>
<ReleaseDate>2015-01-01</ReleaseDate>
</PackageUpdate>
+ <PackageUpdate>
+ <Name>UnstableComponent</Name>
+ <DisplayName>Subcomponent of subcomponent component</DisplayName>
+ <Description>Example subcomponent of subcomponent</Description>
+ <Version>1.0.0-1</Version>
+ <ReleaseDate>2015-01-01</ReleaseDate>
+ <Dependencies>missing.component</Dependencies>
+ </PackageUpdate>
</Updates>
diff --git a/tests/auto/installer/componentalias/metadata/installer-config/aliases.xml b/tests/auto/installer/componentalias/metadata/installer-config/aliases.xml
index 278ae918b..2362e51c7 100644
--- a/tests/auto/installer/componentalias/metadata/installer-config/aliases.xml
+++ b/tests/auto/installer/componentalias/metadata/installer-config/aliases.xml
@@ -49,4 +49,36 @@
<RequiredAliases>set-A,set-B</RequiredAliases>
<RequiredComponents>C</RequiredComponents>
</Alias>
+ <Alias>
+ <Name>set-required-component-from-fallback</Name>
+ <DisplayName>Installation (fetches component from fallback repository)</DisplayName>
+ <Description>Installs component</Description>
+ <Version>1.0.0</Version>
+ <Virtual>false</Virtual>
+ <RequiredComponents>A</RequiredComponents>
+ </Alias>
+ <Alias>
+ <Name>set-optional-component-from-fallback</Name>
+ <DisplayName>Installation (fetches optional component from fallback repository)</DisplayName>
+ <Description>Installs component</Description>
+ <Version>1.0.0</Version>
+ <Virtual>false</Virtual>
+ <OptionalComponents>A</OptionalComponents>
+ </Alias>
+ <Alias>
+ <Name>set-optional-broken-component-from-fallback</Name>
+ <DisplayName>Installation (fetches optional component from fallback repository)</DisplayName>
+ <Description>Installs component</Description>
+ <Version>1.0.0</Version>
+ <Virtual>false</Virtual>
+ <OptionalComponents>UnstableComponent</OptionalComponents>
+ </Alias>
+ <Alias>
+ <Name>set-required-broken-component-from-fallback</Name>
+ <DisplayName>Installation (fetches optional component from fallback repository)</DisplayName>
+ <Description>Installs component</Description>
+ <Version>1.0.0</Version>
+ <Virtual>false</Virtual>
+ <RequiredComponents>UnstableComponent</RequiredComponents>
+ </Alias>
</Aliases>
diff --git a/tests/auto/installer/componentalias/tst_componentalias.cpp b/tests/auto/installer/componentalias/tst_componentalias.cpp
index f6742af1f..51f6ca635 100644
--- a/tests/auto/installer/componentalias/tst_componentalias.cpp
+++ b/tests/auto/installer/componentalias/tst_componentalias.cpp
@@ -46,6 +46,40 @@ private slots:
{
m_installDir = QInstaller::generateTemporaryFileName();
QVERIFY(QDir().mkpath(m_installDir));
+ m_fallbackRepositoryData = QLatin1String("========================================\n"
+ "Name: set-optional-broken-component-from-fallback\n"
+ "Display name: Installation (fetches optional component from fallback repository)\n"
+ "Description: Installs component\n"
+ "Version: 1.0.0\n"
+ "Components: \n"
+ "Required aliases: \n"
+ "Optional components: UnstableComponent\n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-optional-component-from-fallback\n"
+ "Display name: Installation (fetches optional component from fallback repository)\n"
+ "Description: Installs component\n"
+ "Version: 1.0.0\nComponents: \n"
+ "Required aliases: \n"
+ "Optional components: A\n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-required-broken-component-from-fallback\n"
+ "Display name: Installation (fetches optional component from fallback repository)\n"
+ "Description: Installs component\n"
+ "Version: 1.0.0\n"
+ "Components: UnstableComponent\n"
+ "Required aliases: \n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-required-component-from-fallback\n"
+ "Display name: Installation (fetches component from fallback repository)\n"
+ "Description: Installs component\n"
+ "Version: 1.0.0\nComponents: A\n"
+ "Required aliases: \n"
+ "Optional components: \n"
+ "Optional aliases: \n");
}
void cleanup()
@@ -76,6 +110,29 @@ private slots:
"Optional components: \n"
"Optional aliases: \n"
"========================================\n"
+ "Name: set-D\n"
+ "Display name: Installation D (Unstable)\n"
+ "Description: Installs missing component D\n"
+ "Version: 1.0.0\nComponents: D\n"
+ "Required aliases: \n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-E\n"
+ "Display name: Installation E (Requires unstable)\n"
+ "Description: Installs set E\nVersion: 1.0.0\nComponents: \n"
+ "Required aliases: set-D\n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-F\n"
+ "Display name: Installation F (Requires alias that refers another unstable)\n"
+ "Description: Installs set F\n"
+ "Version: 1.0.0\n"
+ "Components: \n"
+ "Required aliases: set-E\nOptional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
"Name: set-full\n"
"Display name: Full installation\n"
"Description: Installs all components\n"
@@ -83,7 +140,7 @@ private slots:
"Components: C\n"
"Required aliases: set-A,set-B\n"
"Optional components: \n"
- "Optional aliases: \n"), listMethod, QString());
+ "Optional aliases: \n") + m_fallbackRepositoryData, listMethod, QString());
VerifyInstaller::verifyListPackagesMessage(core.get(), QLatin1String("\n"
"Name: set-A\n"
@@ -93,7 +150,7 @@ private slots:
"Components: A\n"
"Required aliases: \n"
"Optional components: \n"
- "Optional aliases: \n"), listMethod, QLatin1String("A"));
+ "Optional aliases: \n"), listMethod, QLatin1String("-A"));
}
void testAliasSourceWithPriority()
@@ -120,6 +177,33 @@ private slots:
"Optional components: \n"
"Optional aliases: \n"
"========================================\n"
+ "Name: set-D\n"
+ "Display name: Installation D (Unstable) (priority)\n"
+ "Description: Installs missing component D\n"
+ "Version: 1.0.0\n"
+ "Components: D\n"
+ "Required aliases: \n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-E\n"
+ "Display name: Installation E (Requires unstable)\n"
+ "Description: Installs set E\n"
+ "Version: 1.0.0\n"
+ "Components: \n"
+ "Required aliases: set-D\n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-F\n"
+ "Display name: Installation F (Requires alias that refers another unstable)\n"
+ "Description: Installs set F\n"
+ "Version: 1.0.0\n"
+ "Components: \n"
+ "Required aliases: set-E\n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
"Name: set-full\n"
"Display name: Full installation (priority)\n"
"Description: Installs all components\n"
@@ -127,7 +211,7 @@ private slots:
"Components: C\n"
"Required aliases: set-A,set-B\n"
"Optional components: \n"
- "Optional aliases: \n"), listMethod, QString());
+ "Optional aliases: \n") + m_fallbackRepositoryData, listMethod, QString());
}
void testAliasSourceWithVersionCompare()
@@ -154,6 +238,33 @@ private slots:
"Optional components: \n"
"Optional aliases: \n"
"========================================\n"
+ "Name: set-D\n"
+ "Display name: Installation D (Unstable) (updated)\n"
+ "Description: Installs missing component D\n"
+ "Version: 1.2.0\n"
+ "Components: D\n"
+ "Required aliases: \n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-E\n"
+ "Display name: Installation E (Requires unstable)\n"
+ "Description: Installs set E\n"
+ "Version: 1.0.0\n"
+ "Components: \n"
+ "Required aliases: set-D\n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
+ "Name: set-F\n"
+ "Display name: Installation F (Requires alias that refers another unstable)\n"
+ "Description: Installs set F\n"
+ "Version: 1.0.0\n"
+ "Components: \n"
+ "Required aliases: set-E\n"
+ "Optional components: \n"
+ "Optional aliases: \n"
+ "========================================\n"
"Name: set-full\n"
"Display name: Full installation (updated)\n"
"Description: Installs all components\n"
@@ -161,7 +272,7 @@ private slots:
"Components: C\n"
"Required aliases: set-A,set-B\n"
"Optional components: \n"
- "Optional aliases: \n"), listMethod, QString());
+ "Optional aliases: \n") + m_fallbackRepositoryData, listMethod, QString());
}
void testInstallAlias_data()
@@ -201,10 +312,16 @@ private slots:
<< PackageManagerCore::Success
<< (QStringList() << "A" << "B");
- QTest::newRow("Alias with optional broken alias (will not install)")
+ QTest::newRow("Alias with optional broken alias (will install)")
<< AliasSource(AliasSource::SourceFileFormat::Xml, ":///data/aliases-optional.xml", -1)
<< (QStringList() << "set-optional-broken")
- << PackageManagerCore::Canceled
+ << PackageManagerCore::Success
+ << QStringList();
+
+ QTest::newRow("Alias with optional broken component (will install)")
+ << AliasSource(AliasSource::SourceFileFormat::Xml, ":///data/aliases-optional.xml", -1)
+ << (QStringList() << "set-optional-broken-component")
+ << PackageManagerCore::Success
<< QStringList();
}
@@ -222,7 +339,7 @@ private slots:
if (!additionalSource.filename.isEmpty())
core->addAliasSource(additionalSource);
-
+ core->settings().setAllowUnstableComponents(true);
QCOMPARE(core->installSelectedComponentsSilently(selectedAliases), status);
for (const QString &component : installedComponents)
@@ -257,11 +374,58 @@ private slots:
core->setCommandLineInstance(true);
- QCOMPARE(status, core->installSelectedComponentsSilently(selectedAliases));
+ QCOMPARE(core->installSelectedComponentsSilently(selectedAliases), status);
+ }
+
+ void testInstallAliasWithFallbackRepositories_data()
+ {
+ QTest::addColumn<QStringList>("selectedAliases");
+ QTest::addColumn<PackageManagerCore::Status>("status");
+ QTest::addColumn<QStringList>("installedComponents");
+
+ QTest::newRow("Component from fallback")
+ << (QStringList() << "set-required-component-from-fallback")
+ << PackageManagerCore::Success
+ << (QStringList() << "A");
+ QTest::newRow("Optional component from fallback")
+ << (QStringList() << "set-optional-component-from-fallback")
+ << PackageManagerCore::Success
+ << (QStringList() << "A");
+ QTest::newRow("Optional broken component from fallback")
+ << (QStringList() << "set-optional-broken-component-from-fallback")
+ << PackageManagerCore::Success
+ << (QStringList());
+ QTest::newRow("Required broke component from fallback")
+ << (QStringList() << "set-required-broken-component-from-fallback")
+ << PackageManagerCore::Canceled
+ << (QStringList());
+ }
+
+ void testInstallAliasWithFallbackRepositories()
+ {
+ QFETCH(QStringList, selectedAliases);
+ QFETCH(PackageManagerCore::Status, status);
+ QFETCH(QStringList, installedComponents);
+
+ QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit(m_installDir));
+
+ core->setCommandLineInstance(true);
+ core->settings().setAllowUnstableComponents(true);
+ QSet<RepositoryCategory> repositoryCategories;
+ RepositoryCategory repositoryCategory;
+ repositoryCategory.setEnabled(false);
+ repositoryCategory.addRepository(Repository::fromUserInput(":///data/repository"));
+ repositoryCategories.insert(repositoryCategory);
+ core->settings().addRepositoryCategories(repositoryCategories);
+ QCOMPARE(core->installSelectedComponentsSilently(selectedAliases), status);
+
+ for (const QString &component : installedComponents)
+ QVERIFY(core->componentByName(component)->isInstalled());
}
private:
QString m_installDir;
+ QString m_fallbackRepositoryData;
};
QTEST_GUILESS_MAIN(tst_ComponentAlias)