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:
Diffstat (limited to 'tests/TestEntry.cpp')
-rw-r--r--tests/TestEntry.cpp111
1 files changed, 111 insertions, 0 deletions
diff --git a/tests/TestEntry.cpp b/tests/TestEntry.cpp
index 39e4bd12c..c6cb1271d 100644
--- a/tests/TestEntry.cpp
+++ b/tests/TestEntry.cpp
@@ -612,3 +612,114 @@ void TestEntry::testIsRecycled()
db.recycleGroup(group1);
QVERIFY(entry1->isRecycled());
}
+
+void TestEntry::testMove()
+{
+ Database db;
+ Group* root = db.rootGroup();
+ QVERIFY(root);
+
+ Entry* entry0 = new Entry();
+ QVERIFY(entry0);
+ entry0->setGroup(root);
+ Entry* entry1 = new Entry();
+ QVERIFY(entry1);
+ entry1->setGroup(root);
+ Entry* entry2 = new Entry();
+ QVERIFY(entry2);
+ entry2->setGroup(root);
+ Entry* entry3 = new Entry();
+ QVERIFY(entry3);
+ entry3->setGroup(root);
+ // default order, straight
+ QCOMPARE(root->entries().at(0), entry0);
+ QCOMPARE(root->entries().at(1), entry1);
+ QCOMPARE(root->entries().at(2), entry2);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ entry0->moveDown();
+ QCOMPARE(root->entries().at(0), entry1);
+ QCOMPARE(root->entries().at(1), entry0);
+ QCOMPARE(root->entries().at(2), entry2);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ entry0->moveDown();
+ QCOMPARE(root->entries().at(0), entry1);
+ QCOMPARE(root->entries().at(1), entry2);
+ QCOMPARE(root->entries().at(2), entry0);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ entry0->moveDown();
+ QCOMPARE(root->entries().at(0), entry1);
+ QCOMPARE(root->entries().at(1), entry2);
+ QCOMPARE(root->entries().at(2), entry3);
+ QCOMPARE(root->entries().at(3), entry0);
+
+ // no effect
+ entry0->moveDown();
+ QCOMPARE(root->entries().at(0), entry1);
+ QCOMPARE(root->entries().at(1), entry2);
+ QCOMPARE(root->entries().at(2), entry3);
+ QCOMPARE(root->entries().at(3), entry0);
+
+ entry0->moveUp();
+ QCOMPARE(root->entries().at(0), entry1);
+ QCOMPARE(root->entries().at(1), entry2);
+ QCOMPARE(root->entries().at(2), entry0);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ entry0->moveUp();
+ QCOMPARE(root->entries().at(0), entry1);
+ QCOMPARE(root->entries().at(1), entry0);
+ QCOMPARE(root->entries().at(2), entry2);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ entry0->moveUp();
+ QCOMPARE(root->entries().at(0), entry0);
+ QCOMPARE(root->entries().at(1), entry1);
+ QCOMPARE(root->entries().at(2), entry2);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ // no effect
+ entry0->moveUp();
+ QCOMPARE(root->entries().at(0), entry0);
+ QCOMPARE(root->entries().at(1), entry1);
+ QCOMPARE(root->entries().at(2), entry2);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ entry2->moveUp();
+ QCOMPARE(root->entries().at(0), entry0);
+ QCOMPARE(root->entries().at(1), entry2);
+ QCOMPARE(root->entries().at(2), entry1);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ entry0->moveDown();
+ QCOMPARE(root->entries().at(0), entry2);
+ QCOMPARE(root->entries().at(1), entry0);
+ QCOMPARE(root->entries().at(2), entry1);
+ QCOMPARE(root->entries().at(3), entry3);
+
+ entry3->moveUp();
+ QCOMPARE(root->entries().at(0), entry2);
+ QCOMPARE(root->entries().at(1), entry0);
+ QCOMPARE(root->entries().at(2), entry3);
+ QCOMPARE(root->entries().at(3), entry1);
+
+ entry3->moveUp();
+ QCOMPARE(root->entries().at(0), entry2);
+ QCOMPARE(root->entries().at(1), entry3);
+ QCOMPARE(root->entries().at(2), entry0);
+ QCOMPARE(root->entries().at(3), entry1);
+
+ entry2->moveDown();
+ QCOMPARE(root->entries().at(0), entry3);
+ QCOMPARE(root->entries().at(1), entry2);
+ QCOMPARE(root->entries().at(2), entry0);
+ QCOMPARE(root->entries().at(3), entry1);
+
+ entry1->moveUp();
+ QCOMPARE(root->entries().at(0), entry3);
+ QCOMPARE(root->entries().at(1), entry2);
+ QCOMPARE(root->entries().at(2), entry1);
+ QCOMPARE(root->entries().at(3), entry0);
+}