Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Vänttinen <sami.vanttinen@protonmail.com>2019-05-02 01:35:08 +0300
committerJonathan White <support@dmapps.us>2019-05-02 01:35:08 +0300
commite4eee897f9fb931d8081f9b70da0b0f1e6a8b9b8 (patch)
treec2aef8b8b3170903beccfa2617466d150ba36436 /tests/TestKdbx4.cpp
parent01a3d5b0ba0047b3179f44dd5caba74055228219 (diff)
Support Database Custom Data Merging (#3002)
* Introduce _LAST_MODIFIED custom data entry that stores the last modified datetime of the database's custom data entries * Merge custom data from source database to target * Modify tests to be aware of _LAST_MODIFIED entry
Diffstat (limited to 'tests/TestKdbx4.cpp')
-rw-r--r--tests/TestKdbx4.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/tests/TestKdbx4.cpp b/tests/TestKdbx4.cpp
index fe4679da5..88352d825 100644
--- a/tests/TestKdbx4.cpp
+++ b/tests/TestKdbx4.cpp
@@ -186,8 +186,10 @@ void TestKdbx4::testFormat400Upgrade()
QCOMPARE(reader.version(), expectedVersion);
QCOMPARE(targetDb->cipher(), cipherUuid);
- QCOMPARE(*targetDb->metadata()->customData(), *sourceDb->metadata()->customData());
- QCOMPARE(*targetDb->rootGroup()->customData(), *sourceDb->rootGroup()->customData());
+ QCOMPARE(targetDb->metadata()->customData()->value("CustomPublicData"),
+ sourceDb->metadata()->customData()->value("CustomPublicData"));
+ QCOMPARE(targetDb->rootGroup()->customData()->value("CustomGroupData"),
+ sourceDb->rootGroup()->customData()->value("CustomGroupData"));
}
// clang-format off
@@ -346,20 +348,22 @@ void TestKdbx4::testCustomData()
const QString customDataKey2 = "CD2";
const QString customData1 = "abcäöü";
const QString customData2 = "Hello World";
- const int dataSize = customDataKey1.toUtf8().size() + customDataKey1.toUtf8().size() + customData1.toUtf8().size()
- + customData2.toUtf8().size();
// test custom database data
db.metadata()->customData()->set(customDataKey1, customData1);
db.metadata()->customData()->set(customDataKey2, customData2);
- QCOMPARE(db.metadata()->customData()->size(), 2);
+ auto lastModified = db.metadata()->customData()->value(CustomData::LastModified);
+ const int dataSize = customDataKey1.toUtf8().size() + customDataKey1.toUtf8().size() + customData1.toUtf8().size()
+ + customData2.toUtf8().size() + lastModified.toUtf8().size()
+ + CustomData::LastModified.toUtf8().size();
+ QCOMPARE(db.metadata()->customData()->size(), 3);
QCOMPARE(db.metadata()->customData()->dataSize(), dataSize);
// test custom root group data
Group* root = db.rootGroup();
root->customData()->set(customDataKey1, customData1);
root->customData()->set(customDataKey2, customData2);
- QCOMPARE(root->customData()->size(), 2);
+ QCOMPARE(root->customData()->size(), 3);
QCOMPARE(root->customData()->dataSize(), dataSize);
// test copied custom group data
@@ -378,9 +382,9 @@ void TestKdbx4::testCustomData()
// test custom data deletion
entry->customData()->set("additional item", "foobar");
- QCOMPARE(entry->customData()->size(), 3);
+ QCOMPARE(entry->customData()->size(), 4);
entry->customData()->remove("additional item");
- QCOMPARE(entry->customData()->size(), 2);
+ QCOMPARE(entry->customData()->size(), 3);
QCOMPARE(entry->customData()->dataSize(), dataSize);
// test custom data on cloned groups