diff options
author | Janek Bevendorff <janek@jbev.net> | 2018-11-22 13:47:31 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-22 13:47:31 +0300 |
commit | d612cad09a4f1cd8ef9bf6be8bf90b75248ecfef (patch) | |
tree | 94fbd4d07f56f9646dc8c0dd8e7586776c2e3585 /tests/TestCsvExporter.cpp | |
parent | 917c4cc18b8dbc04034cb0d43301b3f406644885 (diff) |
Refactor Database and Database widgets (#2491)
The Database, DatabaseWidget, and DatabaseTabWidget classes share many responsibilities in inconsistent ways resulting in impenetrable and unmaintainable code and a diverse set of bugs and architecture restrictions. This patch reworks the architecture, responsibilities of, and dependencies between these classes.
The core changes are:
* Move loading and saving logic from widgets into the Database class
* Get rid of the DatabaseManagerStruct and move all the information contained in it into the Database
* Let database objects keep track of modifications and dirty/clean state instead of handing this to external widgets
* Move GUI interactions for loading and saving from the DatabaseTabWidget into the DatabaseWidget (resolves #2494 as a side-effect)
* Heavily clean up DatabaseTabWidget and degrade it to a slightly glorified QTabWidget
* Use QSharedPointers for all Database objects
* Remove the modifiedImmediate signal and replace it with a markAsModified() method
* Implement proper tabName() method instead of reading back titles from GUI widgets (resolves #1389 and its duplicates #2146 #855)
* Fix unwanted AES-KDF downgrade if database uses Argon2 and has CustomData
* Improve code
This patch is also the first major step towards solving issues #476 and #2322.
Diffstat (limited to 'tests/TestCsvExporter.cpp')
-rw-r--r-- | tests/TestCsvExporter.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/tests/TestCsvExporter.cpp b/tests/TestCsvExporter.cpp index 732e2636d..b71cf9ca7 100644 --- a/tests/TestCsvExporter.cpp +++ b/tests/TestCsvExporter.cpp @@ -31,8 +31,8 @@ const QString TestCsvExporter::ExpectedHeaderLine = void TestCsvExporter::init() { - m_db = new Database(); - m_csvExporter = new CsvExporter(); + m_db = QSharedPointer<Database>::create(); + m_csvExporter = QSharedPointer<CsvExporter>::create(); } void TestCsvExporter::initTestCase() @@ -42,17 +42,15 @@ void TestCsvExporter::initTestCase() void TestCsvExporter::cleanup() { - delete m_db; - delete m_csvExporter; } void TestCsvExporter::testExport() { Group* groupRoot = m_db->rootGroup(); - Group* group = new Group(); + auto* group = new Group(); group->setName("Test Group Name"); group->setParent(groupRoot); - Entry* entry = new Entry(); + auto* entry = new Entry(); entry->setGroup(group); entry->setTitle("Test Entry Title"); entry->setUsername("Test Username"); @@ -65,7 +63,7 @@ void TestCsvExporter::testExport() m_csvExporter->exportDatabase(&buffer, m_db); QString expectedResult = - QString().append(ExpectedHeaderLine).append("\"Test Group Name\",\"Test Entry Title\",\"Test Username\",\"Test " + QString().append(ExpectedHeaderLine).append("\"Root/Test Group Name\",\"Test Entry Title\",\"Test Username\",\"Test " "Password\",\"http://test.url\",\"Test Notes\"\n"); QCOMPARE(QString::fromUtf8(buffer.buffer().constData()), expectedResult); @@ -83,13 +81,13 @@ void TestCsvExporter::testEmptyDatabase() void TestCsvExporter::testNestedGroups() { Group* groupRoot = m_db->rootGroup(); - Group* group = new Group(); + auto* group = new Group(); group->setName("Test Group Name"); group->setParent(groupRoot); - Group* childGroup = new Group(); + auto* childGroup = new Group(); childGroup->setName("Test Sub Group Name"); childGroup->setParent(group); - Entry* entry = new Entry(); + auto* entry = new Entry(); entry->setGroup(childGroup); entry->setTitle("Test Entry Title"); @@ -100,5 +98,5 @@ void TestCsvExporter::testNestedGroups() QCOMPARE(QString::fromUtf8(buffer.buffer().constData()), QString() .append(ExpectedHeaderLine) - .append("\"Test Group Name/Test Sub Group Name\",\"Test Entry Title\",\"\",\"\",\"\",\"\"\n")); + .append("\"Root/Test Group Name/Test Sub Group Name\",\"Test Entry Title\",\"\",\"\",\"\",\"\"\n")); } |