summaryrefslogtreecommitdiff
path: root/tests/applicationinstaller/tst_applicationinstaller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/applicationinstaller/tst_applicationinstaller.cpp')
-rw-r--r--tests/applicationinstaller/tst_applicationinstaller.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/applicationinstaller/tst_applicationinstaller.cpp b/tests/applicationinstaller/tst_applicationinstaller.cpp
index 309d15b2..d5f7829e 100644
--- a/tests/applicationinstaller/tst_applicationinstaller.cpp
+++ b/tests/applicationinstaller/tst_applicationinstaller.cpp
@@ -120,6 +120,7 @@ private slots:
void cancelPackageInstallation();
void parallelPackageInstallation();
+ void doublePackageInstallation();
void validateDnsName_data();
void validateDnsName();
@@ -685,6 +686,28 @@ void tst_PackageManager::parallelPackageInstallation()
clearSignalSpies();
}
+void tst_PackageManager::doublePackageInstallation()
+{
+ QString task1Id = m_pm->startPackageInstallation(QUrl::fromLocalFile(qL1S(AM_TESTDATA_DIR "packages/test-dev-signed.appkg")));
+ QVERIFY(!task1Id.isEmpty());
+ QVERIFY(m_blockingUntilInstallationAcknowledgeSpy->wait(spyTimeout));
+ QCOMPARE(m_blockingUntilInstallationAcknowledgeSpy->first()[0].toString(), task1Id);
+
+ QString task2Id = m_pm->startPackageInstallation(QUrl::fromLocalFile(qL1S(AM_TESTDATA_DIR "packages/test-dev-signed.appkg")));
+ QVERIFY(!task2Id.isEmpty());
+ m_pm->acknowledgePackageInstallation(task2Id);
+ QVERIFY(m_failedSpy->wait(spyTimeout));
+ QCOMPARE(m_failedSpy->first()[0].toString(), task2Id);
+ QCOMPARE(m_failedSpy->first()[2].toString(), qL1S("Cannot install the same package com.pelagicore.test multiple times in parallel"));
+
+ clearSignalSpies();
+ m_pm->cancelTask(task1Id);
+ QVERIFY(m_failedSpy->wait(spyTimeout));
+ QCOMPARE(m_failedSpy->first()[0].toString(), task1Id);
+
+ clearSignalSpies();
+}
+
void tst_PackageManager::validateDnsName_data()
{
QTest::addColumn<QString>("dnsName");