diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testparse.cpp | 57 | ||||
-rw-r--r-- | tests/testparse.h | 16 |
2 files changed, 73 insertions, 0 deletions
diff --git a/tests/testparse.cpp b/tests/testparse.cpp new file mode 100644 index 000000000..818827bca --- /dev/null +++ b/tests/testparse.cpp @@ -0,0 +1,57 @@ +#include "testparse.h" +#include "dive.h" +#include <QTextStream> + +void TestParse::testParseCSV() +{ + // some basic file parsing tests + // + // even with the V2 question not shown, CSV import should work + v2_question_shown = false; + verbose = 1; + QCOMPARE(parse_manual_file(SUBSURFACE_SOURCE "/dives/test41.csv", + 0, // tab separator + 0, // metric units + 1, // mm/dd/yyyy + 2, // min:sec + 0, 1, 2, 3, -1, -1, 4, -1, // Dive #, date, time, duration, maxdepth, avgdepth + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1), 0); + fprintf(stderr, "number of dives %d \n", dive_table.nr); +} + +void TestParse::testParseV2NoQuestion() +{ + // but parsing of a V2 file should fail + v2_question_shown = false; + QCOMPARE(parse_file(SUBSURFACE_SOURCE "/dives/test40.xml"), -1); +} + +void TestParse::testParseV3() +{ + // while parsing of a V3 files should succeed + v2_question_shown = false; + QCOMPARE(parse_file(SUBSURFACE_SOURCE "/dives/test42.xml"), 0); +} + +void TestParse::testParseV2YesQuestion() +{ + // once we claim to have shown the V2 question, parsing the V2 file should work as well + v2_question_shown = true; + QCOMPARE(parse_file(SUBSURFACE_SOURCE "/dives/test40.xml"), 0); +} + +void TestParse::testParseCompareOutput() +{ + QCOMPARE(save_dives("./testout.ssrf"), 0); + QFile org(SUBSURFACE_SOURCE "/dives/test40-42.xml"); + org.open(QFile::ReadOnly); + QFile out("./testout.ssrf"); + out.open(QFile::ReadOnly); + QTextStream orgS(&org); + QTextStream outS(&out); + QString readin = orgS.readAll(); + QString written = outS.readAll(); + QCOMPARE(readin, written); +} + +QTEST_MAIN(TestParse) diff --git a/tests/testparse.h b/tests/testparse.h new file mode 100644 index 000000000..df0afa9f5 --- /dev/null +++ b/tests/testparse.h @@ -0,0 +1,16 @@ +#ifndef TESTPARSE_H +#define TESTPARSE_H + +#include <QtTest> + +class TestParse : public QObject{ + Q_OBJECT +private slots: + void testParseCSV(); + void testParseV2NoQuestion(); + void testParseV2YesQuestion(); + void testParseV3(); + void testParseCompareOutput(); +}; + +#endif |