mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-05-03 15:15:02 -04:00
Add Entry::copyDataFrom().
This commit is contained in:
parent
3658a65380
commit
61ee763515
4 changed files with 47 additions and 0 deletions
|
@ -452,6 +452,16 @@ Entry* Entry::clone() const
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Entry::copyDataFrom(const Entry* other)
|
||||||
|
{
|
||||||
|
setUpdateTimeinfo(false);
|
||||||
|
m_data = other->m_data;
|
||||||
|
m_attributes->copyDataFrom(other->m_attributes);
|
||||||
|
m_attachments->copyDataFrom(other->m_attachments);
|
||||||
|
m_autoTypeAssociations->copyDataFrom(other->m_autoTypeAssociations);
|
||||||
|
setUpdateTimeinfo(true);
|
||||||
|
}
|
||||||
|
|
||||||
void Entry::beginUpdate()
|
void Entry::beginUpdate()
|
||||||
{
|
{
|
||||||
Q_ASSERT(!m_tmpHistoryItem);
|
Q_ASSERT(!m_tmpHistoryItem);
|
||||||
|
|
|
@ -111,6 +111,7 @@ public:
|
||||||
void removeHistoryItems(const QList<Entry*>& historyEntries);
|
void removeHistoryItems(const QList<Entry*>& historyEntries);
|
||||||
void truncateHistory();
|
void truncateHistory();
|
||||||
Entry* clone() const;
|
Entry* clone() const;
|
||||||
|
void copyDataFrom(const Entry* other);
|
||||||
QString resolvePlaceholders(const QString& str) const;
|
QString resolvePlaceholders(const QString& str) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -38,5 +38,40 @@ void TestEntry::testHistoryItemDeletion()
|
||||||
|
|
||||||
delete entry;
|
delete entry;
|
||||||
}
|
}
|
||||||
|
void TestEntry::testCopyDataFrom()
|
||||||
|
{
|
||||||
|
Entry* entry = new Entry();
|
||||||
|
|
||||||
|
entry->setTitle("testtitle");
|
||||||
|
entry->attributes()->set("attr1", "abc");
|
||||||
|
entry->attributes()->set("attr2", "def");
|
||||||
|
|
||||||
|
entry->attachments()->set("test", "123");
|
||||||
|
entry->attachments()->set("test2", "456");
|
||||||
|
|
||||||
|
AutoTypeAssociations::Association assoc;
|
||||||
|
assoc.window = "1";
|
||||||
|
assoc.sequence = "2";
|
||||||
|
entry->autoTypeAssociations()->add(assoc);
|
||||||
|
assoc.window = "3";
|
||||||
|
assoc.sequence = "4";
|
||||||
|
entry->autoTypeAssociations()->add(assoc);
|
||||||
|
|
||||||
|
Entry* entry2 = new Entry();
|
||||||
|
entry2->copyDataFrom(entry);
|
||||||
|
delete entry;
|
||||||
|
|
||||||
|
QCOMPARE(entry2->title(), QString("testtitle"));
|
||||||
|
QCOMPARE(entry2->attributes()->value("attr1"), QString("abc"));
|
||||||
|
QCOMPARE(entry2->attributes()->value("attr2"), QString("def"));
|
||||||
|
|
||||||
|
QCOMPARE(entry2->attachments()->keys().size(), 2);
|
||||||
|
QCOMPARE(entry2->attachments()->value("test"), QByteArray("123"));
|
||||||
|
QCOMPARE(entry2->attachments()->value("test2"), QByteArray("456"));
|
||||||
|
|
||||||
|
QCOMPARE(entry2->autoTypeAssociations()->size(), 2);
|
||||||
|
QCOMPARE(entry2->autoTypeAssociations()->get(0).window, QString("1"));
|
||||||
|
QCOMPARE(entry2->autoTypeAssociations()->get(1).window, QString("3"));
|
||||||
|
}
|
||||||
|
|
||||||
QTEST_GUILESS_MAIN(TestEntry)
|
QTEST_GUILESS_MAIN(TestEntry)
|
||||||
|
|
|
@ -28,6 +28,7 @@ class TestEntry : public QObject
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void testHistoryItemDeletion();
|
void testHistoryItemDeletion();
|
||||||
|
void testCopyDataFrom();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KEEPASSX_TESTENTRY_H
|
#endif // KEEPASSX_TESTENTRY_H
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue