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:
authorseatedscribe <gitedscribe@gmail.com>2017-02-22 03:03:22 +0300
committerseatedscribe <gitedscribe@gmail.com>2017-03-05 23:27:29 +0300
commit41f9c3d2a1dac4c009dee2c53bcdb5bb7ccbd76e (patch)
treeb2d4c35cac1130965c5a0536649e39b374496d5e /tests/TestCsvParser.cpp
parenta7e358c27dedb31ccf01e53df9d4277583f6a4a7 (diff)
Better handle of parser status messages (critical/not critical)
Use of messageWidget for displaying parser status messages setRootGroup assigns the right label to the root db folder test uses portable QTemporaryFile instead of hardcoded file
Diffstat (limited to 'tests/TestCsvParser.cpp')
-rw-r--r--tests/TestCsvParser.cpp85
1 files changed, 43 insertions, 42 deletions
diff --git a/tests/TestCsvParser.cpp b/tests/TestCsvParser.cpp
index 9ff93f025..93bcf0060 100644
--- a/tests/TestCsvParser.cpp
+++ b/tests/TestCsvParser.cpp
@@ -16,6 +16,7 @@
*/
#include "TestCsvParser.h"
+
#include <QTest>
QTEST_GUILESS_MAIN(TestCsvParser)
@@ -32,8 +33,8 @@ void TestCsvParser::cleanupTestCase()
void TestCsvParser::init()
{
- file.setFileName("/tmp/keepassXn94do1x.csv");
- if (!file.open(QIODevice::ReadWrite | QIODevice::Truncate))
+ file = new QTemporaryFile();
+ if (not file->open())
QFAIL("Cannot open file!");
parser->setBackslashSyntax(false);
parser->setComment('#');
@@ -43,26 +44,26 @@ void TestCsvParser::init()
void TestCsvParser::cleanup()
{
- file.close();
+ file->remove();
}
/****************** TEST CASES ******************/
void TestCsvParser::testMissingQuote() {
parser->setTextQualifier(':');
- QTextStream out(&file);
+ QTextStream out(file);
out << "A,B\n:BM,1";
QEXPECT_FAIL("", "Bad format", Continue);
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QWARN(parser->getStatus().toLatin1());
}
void TestCsvParser::testMalformed() {
parser->setTextQualifier(':');
- QTextStream out(&file);
+ QTextStream out(file);
out << "A,B,C\n:BM::,1,:2:";
QEXPECT_FAIL("", "Bad format", Continue);
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QWARN(parser->getStatus().toLatin1());
}
@@ -70,14 +71,14 @@ void TestCsvParser::testMalformed() {
void TestCsvParser::testBackslashSyntax() {
parser->setBackslashSyntax(true);
parser->setTextQualifier(QChar('X'));
- QTextStream out(&file);
+ QTextStream out(file);
//attended result: one"\t\"wo
out << "Xone\\\"\\\\t\\\\\\\"w\noX\n"
<< "X13X,X2\\X,X,\"\"3\"X\r"
<< "3,X\"4\"X,,\n"
<< "XX\n"
<< "\\";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.at(0).at(0) == "one\"\\t\\\"w\no");
QVERIFY(t.at(1).at(0) == "13");
@@ -92,10 +93,10 @@ void TestCsvParser::testBackslashSyntax() {
}
void TestCsvParser::testQuoted() {
- QTextStream out(&file);
+ QTextStream out(file);
out << "ro,w,\"end, of \"\"\"\"\"\"row\"\"\"\"\"\n"
<< "2\n";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.at(0).at(0) == "ro");
QVERIFY(t.at(0).at(1) == "w");
@@ -105,41 +106,41 @@ void TestCsvParser::testQuoted() {
}
void TestCsvParser::testEmptySimple() {
- QTextStream out(&file);
+ QTextStream out(file);
out <<"";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 0);
}
void TestCsvParser::testEmptyQuoted() {
- QTextStream out(&file);
+ QTextStream out(file);
out <<"\"\"";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 0);
}
void TestCsvParser::testEmptyNewline() {
- QTextStream out(&file);
+ QTextStream out(file);
out <<"\"\n\"";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 0);
}
void TestCsvParser::testEmptyFile()
{
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 0);
}
void TestCsvParser::testNewline()
{
- QTextStream out(&file);
+ QTextStream out(file);
out << "1,2\n\n\n";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 1);
QVERIFY(t.at(0).at(0) == "1");
@@ -148,9 +149,9 @@ void TestCsvParser::testNewline()
void TestCsvParser::testCR()
{
- QTextStream out(&file);
+ QTextStream out(file);
out << "1,2\r3,4";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 2);
QVERIFY(t.at(0).at(0) == "1");
@@ -161,9 +162,9 @@ void TestCsvParser::testCR()
void TestCsvParser::testLF()
{
- QTextStream out(&file);
+ QTextStream out(file);
out << "1,2\n3,4";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 2);
QVERIFY(t.at(0).at(0) == "1");
@@ -174,9 +175,9 @@ void TestCsvParser::testLF()
void TestCsvParser::testCRLF()
{
- QTextStream out(&file);
+ QTextStream out(file);
out << "1,2\r\n3,4";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 2);
QVERIFY(t.at(0).at(0) == "1");
@@ -187,13 +188,13 @@ void TestCsvParser::testCRLF()
void TestCsvParser::testComments()
{
- QTextStream out(&file);
+ QTextStream out(file);
out << " #one\n"
<< " \t # two, three \r\n"
<< " #, sing\t with\r"
<< " #\t me!\n"
<< "useful,text #1!";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 1);
QVERIFY(t.at(0).at(0) == "useful");
@@ -201,21 +202,21 @@ void TestCsvParser::testComments()
}
void TestCsvParser::testColumns() {
- QTextStream out(&file);
+ QTextStream out(file);
out << "1,2\n"
<< ",,,,,,,,,a\n"
<< "a,b,c,d\n";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(parser->getCsvCols() == 10);
}
void TestCsvParser::testSimple() {
- QTextStream out(&file);
+ QTextStream out(file);
out << ",,2\r,2,3\n"
<< "A,,B\"\n"
<< " ,,\n";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 4);
QVERIFY(t.at(0).at(0) == "");
@@ -234,11 +235,11 @@ void TestCsvParser::testSimple() {
void TestCsvParser::testSeparator() {
parser->setFieldSeparator('\t');
- QTextStream out(&file);
+ QTextStream out(file);
out << "\t\t2\r\t2\t3\n"
<< "A\t\tB\"\n"
<< " \t\t\n";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 4);
QVERIFY(t.at(0).at(0) == "");
@@ -258,10 +259,10 @@ void TestCsvParser::testSeparator() {
void TestCsvParser::testMultiline()
{
parser->setTextQualifier(QChar(':'));
- QTextStream out(&file);
+ QTextStream out(file);
out << ":1\r\n2a::b:,:3\r4:\n"
<< "2\n";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.at(0).at(0) == "1\n2a:b");
QVERIFY(t.at(0).at(1) == "3\n4");
@@ -279,10 +280,10 @@ void TestCsvParser::testEmptyReparsing()
void TestCsvParser::testReparsing()
{
- QTextStream out(&file);
+ QTextStream out(file);
out << ":te\r\nxt1:,:te\rxt2:,:end of \"this\n string\":\n"
<< "2\n";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QEXPECT_FAIL("", "Wrong qualifier", Continue);
@@ -301,10 +302,10 @@ void TestCsvParser::testReparsing()
void TestCsvParser::testQualifier() {
parser->setTextQualifier(QChar('X'));
- QTextStream out(&file);
+ QTextStream out(file);
out << "X1X,X2XX,X,\"\"3\"\"\"X\r"
<< "3,X\"4\"X,,\n";
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 2);
QVERIFY(t.at(0).at(0) == "1");
@@ -322,10 +323,10 @@ void TestCsvParser::testUnicode() {
//CORRECT QChar g(0x20AC);
//ERROR QChar g("\u20AC");
parser->setFieldSeparator(QChar('A'));
- QTextStream out(&file);
+ QTextStream out(file);
out << QString("€1A2śA\"3śAż\"Ażac");
- QVERIFY(parser->parse(&file));
+ QVERIFY(parser->parse(file));
t = parser->getCsvTable();
QVERIFY(t.size() == 1);
QVERIFY(t.at(0).at(0) == "€1");