aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/utils
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-12-14 11:22:12 +0100
committerTobias Hunger <tobias.hunger@qt.io>2018-02-14 13:24:26 +0000
commit6445fb19bb70789bd420b10450af33a616f38260 (patch)
tree7091a4318e067a9f9106ac6f86e4ec25381e2e99 /tests/auto/utils
parent97cf4bb278388860642b7ce9bba6731ecec286d6 (diff)
Settings: Add test to pick right file if several exist
Test picking the expected file when several exist in BackingUpSettingsAccessor. Change-Id: I09d346a98a8df13d6cf3ee53ee20ce34e45e8d28 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'tests/auto/utils')
-rw-r--r--tests/auto/utils/settings/tst_settings.cpp41
1 files changed, 39 insertions, 2 deletions
diff --git a/tests/auto/utils/settings/tst_settings.cpp b/tests/auto/utils/settings/tst_settings.cpp
index 5f4ef90229..07578f6ca5 100644
--- a/tests/auto/utils/settings/tst_settings.cpp
+++ b/tests/auto/utils/settings/tst_settings.cpp
@@ -220,6 +220,7 @@ private slots:
void saveSettings();
void loadSettings();
+ void loadSettings_pickBest();
};
static QVariantMap versionedMap(int version, const QByteArray &id = QByteArray(),
@@ -693,10 +694,11 @@ void tst_SettingsAccessor::loadSettings()
const Utils::FileName path = Utils::FileName::fromString("/tmp/foo/loadSettings");
const TestSettingsAccessor accessor(path, "loadSettings");
accessor.addFile(path, data);
-
- QCOMPARE(accessor.files().count(), 1);
+ QCOMPARE(accessor.files().count(), 1); // Catch changes early:-)
const QVariantMap read = accessor.restoreSettings(nullptr);
+ QCOMPARE(accessor.files().count(), 1); // no files were created
+
QVERIFY(!read.isEmpty());
for (auto it = read.cbegin(); it != read.cend(); ++it) {
if (it.key() == "Version") // was overridden
@@ -715,6 +717,41 @@ void tst_SettingsAccessor::loadSettings()
QCOMPARE(read.size(), data.size() + 3);
}
+void tst_SettingsAccessor::loadSettings_pickBest()
+{
+ const Utils::FileName path = Utils::FileName::fromString("/tmp/foo/loadSettings");
+ const TestSettingsAccessor accessor(path, "loadSettings");
+
+ accessor.addFile(path, versionedMap(10, "loadSettings", generateExtraData())); // too new
+ const QVariantMap data = versionedMap(7, "loadSettings", generateExtraData());
+ accessor.addFile(Utils::FileName::fromString("/tmp/foo/loadSettings.foo"), data); // pick this!
+ accessor.addFile(Utils::FileName::fromString("/tmp/foo/loadSettings.foo1"),
+ versionedMap(8, "fooSettings", generateExtraData())); // wrong environment
+ accessor.addFile(Utils::FileName::fromString("/tmp/foo/loadSettings.bar"),
+ versionedMap(6, "loadSettings", generateExtraData())); // too old
+ accessor.addFile(Utils::FileName::fromString("/tmp/foo/loadSettings.baz"),
+ versionedMap(1, "loadSettings", generateExtraData())); // much too old
+ QCOMPARE(accessor.files().count(), 5); // Catch changes early:-)
+
+ const QVariantMap read = accessor.restoreSettings(nullptr);
+ QCOMPARE(accessor.files().count(), 5); // no new files
+
+ QVERIFY(!read.isEmpty());
+ for (auto it = read.cbegin(); it != read.cend(); ++it) {
+ if (it.key() == "Version") // was overridden
+ QCOMPARE(it.value().toInt(), 8);
+ else if (it.key() == "OriginalVersion") // was added
+ QCOMPARE(it.value().toInt(), 7);
+ else if (it.key() == "VERSION_7") // was added
+ QCOMPARE(it.value().toInt(), 7);
+ else if (data.contains(it.key()))
+ QCOMPARE(it.value(), data.value(it.key()));
+ else
+ QVERIFY2(false, "Unexpected value!");
+ }
+ QCOMPARE(read.size(), data.size() + 2);
+}
+
QTEST_MAIN(tst_SettingsAccessor)
#include "tst_settings.moc"