diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-12-14 11:22:12 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2018-02-14 13:24:26 +0000 |
commit | 6445fb19bb70789bd420b10450af33a616f38260 (patch) | |
tree | 7091a4318e067a9f9106ac6f86e4ec25381e2e99 /tests/auto/utils | |
parent | 97cf4bb278388860642b7ce9bba6731ecec286d6 (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.cpp | 41 |
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" |