diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-11-17 21:22:41 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-11-22 11:58:56 +0000 |
commit | b8f2d746d0e7bf65d0b46baaffa0da57a38f9052 (patch) | |
tree | 54aa0d685e5c9082e73c974410bfd5c609378c8d /tests/auto/utils | |
parent | 5d6c2ca15916d96c3f94afbd084aead36cd595af (diff) |
SettingsAccessor: Add methods to upgrade to a specific version
Change-Id: If368f4a35d3702dbf680b1306ca6311070aa9bb5
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'tests/auto/utils')
-rw-r--r-- | tests/auto/utils/settings/tst_settings.cpp | 64 |
1 files changed, 58 insertions, 6 deletions
diff --git a/tests/auto/utils/settings/tst_settings.cpp b/tests/auto/utils/settings/tst_settings.cpp index 93a04219a8..7a1db7fe44 100644 --- a/tests/auto/utils/settings/tst_settings.cpp +++ b/tests/auto/utils/settings/tst_settings.cpp @@ -131,6 +131,9 @@ private slots: void upgradeSettings_tooNew(); void upgradeSettings_oneStep(); void upgradeSettings_twoSteps(); + void upgradeSettings_partialUpdate(); + void upgradeSettings_targetVersionTooOld(); + void upgradeSettings_targetVersionTooNew(); }; static QVariantMap versionedMap(int version, const QByteArray &id = QByteArray(), @@ -310,7 +313,7 @@ void tst_SettingsAccessor::upgradeSettings_noUpgradeNecessary() const int startVersion = 8; const QVariantMap input = versionedMap(startVersion, TESTACCESSOR_DEFAULT_ID, generateExtraData()); - const QVariantMap result = accessor.upgradeSettings(input); + const QVariantMap result = accessor.upgradeSettings(input, 8); for (auto it = result.cbegin(); it != result.cend(); ++it) { if (it.key() == "OriginalVersion") @@ -329,7 +332,7 @@ void tst_SettingsAccessor::upgradeSettings_invalidId() const int startVersion = 8; const QVariantMap input = versionedMap(startVersion, "foo", generateExtraData()); - const QVariantMap result = accessor.upgradeSettings(input); + const QVariantMap result = accessor.upgradeSettings(input, 8); // Data is unchanged QCOMPARE(result, input); @@ -341,7 +344,7 @@ void tst_SettingsAccessor::upgradeSettings_tooOld() const int startVersion = 1; const QVariantMap input = versionedMap(startVersion, TESTACCESSOR_DEFAULT_ID, generateExtraData()); - const QVariantMap result = accessor.upgradeSettings(input); + const QVariantMap result = accessor.upgradeSettings(input, 8); // Data is unchanged QCOMPARE(result, input); @@ -353,7 +356,7 @@ void tst_SettingsAccessor::upgradeSettings_tooNew() const int startVersion = 42; const QVariantMap input = versionedMap(startVersion, TESTACCESSOR_DEFAULT_ID, generateExtraData()); - const QVariantMap result = accessor.upgradeSettings(input); + const QVariantMap result = accessor.upgradeSettings(input, 8); // Data is unchanged QCOMPARE(result, input); @@ -365,7 +368,7 @@ void tst_SettingsAccessor::upgradeSettings_oneStep() const int startVersion = 7; const QVariantMap input = versionedMap(startVersion, TESTACCESSOR_DEFAULT_ID, generateExtraData()); - const QVariantMap result = accessor.upgradeSettings(input); + const QVariantMap result = accessor.upgradeSettings(input, 8); for (auto it = result.cbegin(); it != result.cend(); ++it) { if (it.key() == "OriginalVersion") // was added @@ -388,7 +391,7 @@ void tst_SettingsAccessor::upgradeSettings_twoSteps() const int startVersion = 6; const QVariantMap input = versionedMap(startVersion, TESTACCESSOR_DEFAULT_ID, generateExtraData()); - const QVariantMap result = accessor.upgradeSettings(input); + const QVariantMap result = accessor.upgradeSettings(input, 8); for (auto it = result.cbegin(); it != result.cend(); ++it) { if (it.key() == "OriginalVersion") // was added @@ -407,6 +410,55 @@ void tst_SettingsAccessor::upgradeSettings_twoSteps() QCOMPARE(result.size(), input.size() + 3); // OriginalVersion + VERSION_6 + VERSION_7 was added } +void tst_SettingsAccessor::upgradeSettings_partialUpdate() +{ + const TestSettingsAccessor accessor; + const int startVersion = 6; + const QVariantMap input = versionedMap(startVersion, TESTACCESSOR_DEFAULT_ID, generateExtraData()); + + const QVariantMap result = accessor.upgradeSettings(input, 7); + + for (auto it = result.cbegin(); it != result.cend(); ++it) { + if (it.key() == "OriginalVersion") // was added + QCOMPARE(it.value().toInt(), startVersion); + else if (it.key() == "Version") // was overridden + QCOMPARE(it.value().toInt(), 7); + else if (input.contains(it.key())) // extra settings pass through unchanged! + QCOMPARE(it.value(), input.value(it.key())); + else if (it.key() == "VERSION_6") + QCOMPARE(it.value().toInt(), 6); + else + QVERIFY2(false, "Unexpected value found in upgraded result!"); + } + QCOMPARE(result.size(), input.size() + 2); // OriginalVersion + VERSION_6 was added +} + +void tst_SettingsAccessor::upgradeSettings_targetVersionTooOld() +{ + const TestSettingsAccessor accessor; + const QVariantMap extra = generateExtraData(); + const int startVersion = 6; + const QVariantMap input = versionedMap(startVersion, TESTACCESSOR_DEFAULT_ID, extra); + + const QVariantMap result = accessor.upgradeSettings(input, 2); + + // result is unchanged! + QCOMPARE(result, input); +} + +void tst_SettingsAccessor::upgradeSettings_targetVersionTooNew() +{ + const TestSettingsAccessor accessor; + const QVariantMap extra = generateExtraData(); + const int startVersion = 6; + const QVariantMap input = versionedMap(startVersion, TESTACCESSOR_DEFAULT_ID, extra); + + const QVariantMap result = accessor.upgradeSettings(input, 42); + + // result is unchanged! + QCOMPARE(result, input); +} + QTEST_MAIN(tst_SettingsAccessor) #include "tst_settings.moc" |