summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp b/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp
index 8a7af4a0b..01c56caea 100644
--- a/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp
+++ b/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp
@@ -145,6 +145,42 @@ private slots:
QVERIFY(!QDir(testDirectory).exists());
ProgressCoordinator::instance()->reset();
}
+
+ void testRequiredDiskSpace()
+ {
+ // test installer
+ PackageManagerCore core(MagicInstallerMarker);
+
+ DummyComponent *root = new DummyComponent(&core);
+ root->setValue(scName, "root");
+ root->setValue(scUncompressedSize, QString::number(1000));
+ core.appendRootComponent(root);
+
+ DummyComponent *child1 = new DummyComponent(&core);
+ child1->setValue(scName, "root.child1");
+ child1->setValue(scUncompressedSize, QString::number(1500));
+ root->appendComponent(child1);
+
+ DummyComponent *child2 = new DummyComponent(&core);
+ child2->setValue(scName, "root.child2");
+ child2->setValue(scUncompressedSize, QString::number(250));
+ root->appendComponent(child2);
+
+ // install root, child1 (child2 remains uninstalled)
+ root->setUninstalled();
+ child1->setUninstalled();
+ child2->setInstalled();
+ core.calculateComponentsToInstall();
+ QCOMPARE(core.requiredDiskSpace(), 2500ULL);
+
+ // additionally install child2
+ root->setInstalled();
+ child1->setInstalled();
+ child2->setUninstalled();
+ core.componentsToInstallNeedsRecalculation();
+ core.calculateComponentsToInstall();
+ QCOMPARE(core.requiredDiskSpace(), 250ULL);
+ }
};