diff --git a/kmymoney/converter/CMakeLists.txt b/kmymoney/converter/CMakeLists.txt --- a/kmymoney/converter/CMakeLists.txt +++ b/kmymoney/converter/CMakeLists.txt @@ -15,9 +15,22 @@ add_library(converter STATIC ${libconverter_a_SOURCES}) # TODO: clean dependencies -target_link_libraries(converter PUBLIC KF5::Service KF5::XmlGui KF5::Completion KF5::TextWidgets KF5::WidgetsAddons KF5::ConfigCore KF5::I18n Qt5::Widgets Qt5::Gui Qt5::Xml Alkimia::alkimia KF5::KIOWidgets kmm_csvimportercore -PRIVATE -newaccountwizard) +target_link_libraries(converter + PUBLIC + KF5::Service + KF5::XmlGui + KF5::Completion + KF5::TextWidgets + KF5::WidgetsAddons + KF5::ConfigCore + Alkimia::alkimia + KF5::KIOWidgets + kmm_csvimportercore + PRIVATE + KF5::I18n + kmymoney_common + newaccountwizard +) # we rely on some dialogs to be generated add_dependencies(converter dialogs) diff --git a/kmymoney/converter/tests/CMakeLists.txt b/kmymoney/converter/tests/CMakeLists.txt --- a/kmymoney/converter/tests/CMakeLists.txt +++ b/kmymoney/converter/tests/CMakeLists.txt @@ -5,6 +5,6 @@ LINK_LIBRARIES Qt5::Core Qt5::Test - reports_testcommon + kmm_testutilities converter ) diff --git a/kmymoney/converter/tests/converter-test.cpp b/kmymoney/converter/tests/converter-test.cpp --- a/kmymoney/converter/tests/converter-test.cpp +++ b/kmymoney/converter/tests/converter-test.cpp @@ -21,7 +21,7 @@ #include // uses helper functions from reports tests -#include "views/reports/core/tests/reportstestcommon.h" +#include "tests/testutilities.h" using namespace test; #include "mymoneyinstitution.h" diff --git a/kmymoney/mymoney/tests/CMakeLists.txt b/kmymoney/mymoney/tests/CMakeLists.txt --- a/kmymoney/mymoney/tests/CMakeLists.txt +++ b/kmymoney/mymoney/tests/CMakeLists.txt @@ -16,6 +16,6 @@ Qt5::Gui kmm_mymoney kmm_testutils - reports_testcommon + kmm_testutilities onlinetask_interfaces ) diff --git a/kmymoney/mymoney/tests/mymoneyforecast-test.cpp b/kmymoney/mymoney/tests/mymoneyforecast-test.cpp --- a/kmymoney/mymoney/tests/mymoneyforecast-test.cpp +++ b/kmymoney/mymoney/tests/mymoneyforecast-test.cpp @@ -26,7 +26,7 @@ #include "mymoneyexception.h" #include "mymoneystoragedump.h" -#include "views/reports/core/tests/reportstestcommon.h" +#include "tests/testutilities.h" #include "mymoneyinstitution.h" #include "mymoneysecurity.h" diff --git a/kmymoney/plugins/CMakeLists.txt b/kmymoney/plugins/CMakeLists.txt --- a/kmymoney/plugins/CMakeLists.txt +++ b/kmymoney/plugins/CMakeLists.txt @@ -13,7 +13,7 @@ add_subdirectory(sql) endif() -# if(ENABLE_XMLSTORAGE) +# if(ENABLE_XMLSTORAGE OR BUILD_TESTING) add_subdirectory(xml) # endif() diff --git a/kmymoney/plugins/views/CMakeLists.txt b/kmymoney/plugins/views/CMakeLists.txt --- a/kmymoney/plugins/views/CMakeLists.txt +++ b/kmymoney/plugins/views/CMakeLists.txt @@ -2,7 +2,7 @@ add_subdirectory(forecast) endif() -if(ENABLE_REPORTSVIEW OR BUILD_TESTING) +if(ENABLE_REPORTSVIEW) add_subdirectory(reports) endif() diff --git a/kmymoney/plugins/views/reports/core/tests/CMakeLists.txt b/kmymoney/plugins/views/reports/core/tests/CMakeLists.txt --- a/kmymoney/plugins/views/reports/core/tests/CMakeLists.txt +++ b/kmymoney/plugins/views/reports/core/tests/CMakeLists.txt @@ -1,14 +1,5 @@ include(ECMAddTests) -add_library(reports_testcommon STATIC - reportstestcommon.cpp -) -target_link_libraries(reports_testcommon - PUBLIC - Qt5::Core - reports -) - set(tests_sources chart-test.cpp pivotgrid-test.cpp @@ -22,8 +13,9 @@ LINK_LIBRARIES Qt5::Core Qt5::Test + reports kmm_mymoney - reports_testcommon + kmm_testutilities ) add_executable(reports-chart-test chart-test.cpp) diff --git a/kmymoney/plugins/views/reports/core/tests/pivotgrid-test.cpp b/kmymoney/plugins/views/reports/core/tests/pivotgrid-test.cpp --- a/kmymoney/plugins/views/reports/core/tests/pivotgrid-test.cpp +++ b/kmymoney/plugins/views/reports/core/tests/pivotgrid-test.cpp @@ -20,7 +20,7 @@ #include -#include "reportstestcommon.h" +#include "tests/testutilities.h" #include "pivotgrid.h" #include "mymoneyinstitution.h" diff --git a/kmymoney/plugins/views/reports/core/tests/pivottable-test.cpp b/kmymoney/plugins/views/reports/core/tests/pivottable-test.cpp --- a/kmymoney/plugins/views/reports/core/tests/pivottable-test.cpp +++ b/kmymoney/plugins/views/reports/core/tests/pivottable-test.cpp @@ -37,14 +37,45 @@ #include "mymoneyenums.h" #include "pivottable.h" -#include "reportstestcommon.h" +#include "tests/testutilities.h" #include "kmymoneysettings.h" using namespace reports; using namespace test; QTEST_GUILESS_MAIN(PivotTableTest) +void writeTabletoHTML(const PivotTable& table, const QString& _filename = QString()) +{ + static unsigned filenumber = 1; + QString filename = _filename; + if (filename.isEmpty()) { + filename = QString::fromLatin1("report-%1.html").arg((filenumber, 2, 10,QLatin1Char('0')); + ++filenumber; + } + + QFile g(filename); + g.open(QIODevice::WriteOnly); + QTextStream(&g) << table.renderHTML(); + g.close(); + +} + +void writeTabletoCSV(const PivotTable& table, const QString& _filename = QString()) +{ + static unsigned filenumber = 1; + QString filename = _filename; + if (filename.isEmpty()) { + filename = QString::fromLatin1("report-%1.csv").arg((filenumber, 2, 10,QLatin1Char('0')); + ++filenumber; + } + + QFile g(filename); + g.open(QIODevice::WriteOnly); + QTextStream(&g) << table.renderCSV(); + g.close(); +} + void PivotTableTest::setup() { } diff --git a/kmymoney/plugins/views/reports/core/tests/querytable-test.cpp b/kmymoney/plugins/views/reports/core/tests/querytable-test.cpp --- a/kmymoney/plugins/views/reports/core/tests/querytable-test.cpp +++ b/kmymoney/plugins/views/reports/core/tests/querytable-test.cpp @@ -23,7 +23,7 @@ #include -#include "reportstestcommon.h" +#include "tests/testutilities.h" #include "querytable.h" #include "mymoneyinstitution.h" #include "mymoneyaccount.h" @@ -42,6 +42,36 @@ QTEST_GUILESS_MAIN(QueryTableTest) +void writeTabletoHTML(const QueryTable& table, const QString& _filename = QString()) +{ + static unsigned filenumber = 1; + QString filename = _filename; + if (filename.isEmpty()) { + filename = QString::fromLatin1("report-%1.html").arg((filenumber, 2, 10,QLatin1Char('0')); + ++filenumber; + } + + QFile g(filename); + g.open(QIODevice::WriteOnly); + QTextStream(&g) << table.renderHTML(); + g.close(); +} + +void writeTabletoCSV(const QueryTable& table, const QString& _filename = QString()) +{ + static unsigned filenumber = 1; + QString filename = _filename; + if (filename.isEmpty()) { + filename = QString::fromLatin1("report-%1.csv").arg((filenumber, 2, 10,QLatin1Char('0')); + ++filenumber; + } + + QFile g(filename); + g.open(QIODevice::WriteOnly); + QTextStream(&g) << table.renderCSV(); + g.close(); +} + void QueryTableTest::setup() { } diff --git a/kmymoney/plugins/xml/mymoneystoragexml.cpp b/kmymoney/plugins/xml/mymoneystoragexml.cpp --- a/kmymoney/plugins/xml/mymoneystoragexml.cpp +++ b/kmymoney/plugins/xml/mymoneystoragexml.cpp @@ -104,9 +104,14 @@ } }; +namespace test { bool readRCFfromXMLDoc(QList& list, QDomDocument* doc); } +namespace test { void writeRCFtoXMLDoc(const MyMoneyReport& filter, QDomDocument* doc); } + class MyMoneyXmlContentHandler : public QXmlContentHandler { friend class MyMoneyXmlContentHandlerTest; + friend bool test::readRCFfromXMLDoc(QList& list, QDomDocument* doc); + friend void test::writeRCFtoXMLDoc(const MyMoneyReport& filter, QDomDocument* doc); public: MyMoneyXmlContentHandler(MyMoneyStorageXML* reader); diff --git a/kmymoney/tests/CMakeLists.txt b/kmymoney/tests/CMakeLists.txt --- a/kmymoney/tests/CMakeLists.txt +++ b/kmymoney/tests/CMakeLists.txt @@ -9,3 +9,13 @@ Qt5::Test kmymoney_common ) + +add_library(kmm_testutilities STATIC + testutilities.cpp +) +target_link_libraries(kmm_testutilities + PUBLIC + Qt5::Core + PRIVATE + mymoneystoragexml +) diff --git a/kmymoney/plugins/views/reports/core/tests/reportstestcommon.h b/kmymoney/tests/testutilities.h rename from kmymoney/plugins/views/reports/core/tests/reportstestcommon.h rename to kmymoney/tests/testutilities.h --- a/kmymoney/plugins/views/reports/core/tests/reportstestcommon.h +++ b/kmymoney/tests/testutilities.h @@ -125,10 +125,6 @@ QString makeEquity(const QString& _name, const QString& _symbol); extern void makeEquityPrice(const QString& _id, const QDate& _date, const MyMoneyMoney& _price); extern void writeRCFtoXMLDoc(const MyMoneyReport& filter, QDomDocument* doc); -extern void writeTabletoHTML(const reports::PivotTable& table, const QString& _filename = QString()); -extern void writeTabletoHTML(const reports::QueryTable& table, const QString& _filename = QString()); -extern void writeTabletoCSV(const reports::PivotTable& table, const QString& _filename = QString()); -extern void writeTabletoCSV(const reports::QueryTable& table, const QString& _filename = QString()); extern void writeRCFtoXML(const MyMoneyReport& filter, const QString& _filename = QString()); extern bool readRCFfromXMLDoc(QList& list, QDomDocument* doc); extern bool readRCFfromXML(QList& list, const QString& filename); diff --git a/kmymoney/plugins/views/reports/core/tests/reportstestcommon.cpp b/kmymoney/tests/testutilities.cpp rename from kmymoney/plugins/views/reports/core/tests/reportstestcommon.cpp rename to kmymoney/tests/testutilities.cpp --- a/kmymoney/plugins/views/reports/core/tests/reportstestcommon.cpp +++ b/kmymoney/tests/testutilities.cpp @@ -16,21 +16,16 @@ * along with this program. If not, see . */ -#include "reportstestcommon.h" - -#include "kreportsview-test.h" +#include "testutilities.h" #include #include #include #include #include #include -#include "pivottable.h" -#include "querytable.h" -using namespace reports; - +#include "mymoneyfile.h" #include "mymoneyexception.h" #include "mymoneymoney.h" #include "mymoneysecurity.h" @@ -40,6 +35,7 @@ #include "mymoneyreport.h" #include "mymoneypayee.h" #include "mymoneystatement.h" +#include "../mymoneystoragexml.cpp" namespace test { @@ -331,69 +327,6 @@ } -void writeTabletoHTML(const PivotTable& table, const QString& _filename) -{ - static unsigned filenumber = 1; - QString filename = _filename; - if (filename.isEmpty()) { - filename = QString("report-%1%2.html").arg((filenumber < 10) ? "0" : "").arg(filenumber); - ++filenumber; - } - - QFile g(filename); - g.open(QIODevice::WriteOnly); - QTextStream(&g) << table.renderHTML(); - g.close(); - -} - -void writeTabletoHTML(const QueryTable& table, const QString& _filename) -{ - static unsigned filenumber = 1; - QString filename = _filename; - if (filename.isEmpty()) { - filename = QString("report-%1%2.html").arg((filenumber < 10) ? "0" : "").arg(filenumber); - ++filenumber; - } - - QFile g(filename); - g.open(QIODevice::WriteOnly); - QTextStream(&g) << table.renderHTML(); - g.close(); -} - -void writeTabletoCSV(const PivotTable& table, const QString& _filename) -{ - static unsigned filenumber = 1; - QString filename = _filename; - if (filename.isEmpty()) { - filename = QString("report-%1%2.csv").arg((filenumber < 10) ? "0" : "").arg(filenumber); - ++filenumber; - } - - QFile g(filename); - g.open(QIODevice::WriteOnly); - QTextStream(&g) << table.renderCSV(); - g.close(); - -} - -void writeTabletoCSV(const QueryTable& table, const QString& _filename) -{ - static unsigned filenumber = 1; - QString filename = _filename; - if (filename.isEmpty()) { - filename = QString("qreport-%1%2.csv").arg((filenumber < 10) ? "0" : "").arg(filenumber); - ++filenumber; - } - - QFile g(filename); - g.open(QIODevice::WriteOnly); - QTextStream(&g) << table.renderCSV(); - g.close(); - -} - void writeRCFtoXML(const MyMoneyReport& filter, const QString& _filename) { static unsigned filenum = 1; @@ -432,10 +365,8 @@ result = true; QDomNode subchild = child.firstChild(); while (!subchild.isNull() && subchild.isElement()) { - MyMoneyReport filter; - if (filter.read(subchild.toElement())) { - list += filter; - } + auto filter = MyMoneyXmlContentHandler::readReport(subchild.toElement()); + list += filter; subchild = subchild.nextSibling(); } }