summaryrefslogtreecommitdiffstats
path: root/tests/auto/versit/qversitreader/tst_qversitreader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/versit/qversitreader/tst_qversitreader.cpp')
-rw-r--r--tests/auto/versit/qversitreader/tst_qversitreader.cpp103
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/auto/versit/qversitreader/tst_qversitreader.cpp b/tests/auto/versit/qversitreader/tst_qversitreader.cpp
index 7d4bdaf43..22a1b8306 100644
--- a/tests/auto/versit/qversitreader/tst_qversitreader.cpp
+++ b/tests/auto/versit/qversitreader/tst_qversitreader.cpp
@@ -416,6 +416,109 @@ void tst_QVersitReader::testReading()
QCOMPARE(mReader->error(), QVersitReader::NoError);
QCOMPARE(results.count(), 1);
+ // Exception case for whitespace-only property values
+ const QByteArray whitespaceLinesTest =
+ "BEGIN:VCARD\r\n"
+ "VERSION:4.0\r\n"
+ "FN:John\r\n"
+ " \r\n"
+ "\t\r\n"
+ "EMAIL;ENCODING=QUOTED-PRINTABLE:john.citizen@example.com\r\n"
+ "END:VCARD\r\n";
+ mInputDevice->close();
+ mInputDevice->setData(whitespaceLinesTest);
+ mInputDevice->open(QBuffer::ReadOnly);
+ mInputDevice->seek(0);
+ QVERIFY2(mReader->startReading(), QString::number(mReader->error()).toLatin1().data());
+ QVERIFY2(mReader->waitForFinished(), QString::number(mReader->error()).toLatin1().data());
+ results = mReader->results();
+ QCOMPARE(mReader->state(), QVersitReader::FinishedState);
+ QCOMPARE(mReader->error(), QVersitReader::NoError);
+ QCOMPARE(results.count(), 1);
+
+ // Exception case for leading whitespace lines
+ const QByteArray leadingWhitespaceTest =
+ "\r\n"
+ " \r\n"
+ "BEGIN:VCARD\r\n"
+ "VERSION:4.0\r\n"
+ "FN:John\r\n"
+ "EMAIL;ENCODING=QUOTED-PRINTABLE:john.citizen@example.com\r\n"
+ "END:VCARD\r\n";
+ mInputDevice->close();
+ mInputDevice->setData(leadingWhitespaceTest);
+ mInputDevice->open(QBuffer::ReadOnly);
+ mInputDevice->seek(0);
+ QVERIFY2(mReader->startReading(), QString::number(mReader->error()).toLatin1().data());
+ QVERIFY2(mReader->waitForFinished(), QString::number(mReader->error()).toLatin1().data());
+ results = mReader->results();
+ QCOMPARE(mReader->state(), QVersitReader::FinishedState);
+ QCOMPARE(mReader->error(), QVersitReader::NoError);
+ QCOMPARE(results.count(), 1);
+
+ // Exception case for leading whitespace lines between nested documents
+ const QByteArray interiorWhitespaceNestedTest =
+ "BEGIN:VCALENDAR\r\n"
+ "VERSION:2.0\r\n"
+ "BEGIN:VEVENT\r\n"
+ "DTSTART:20120101T120000Z\r\n"
+ "DTEND:20120101T130000Z\r\n"
+ "COMMENT:Comment\r\n"
+ "DESCRIPTION:Description\r\n"
+ "SUMMARY:Display label\r\n"
+ "PRIORITY:9\r\n"
+ "CATEGORIES:Tag\r\n"
+ "CREATED:20181121T061003Z\r\n"
+ "LAST-MODIFIED:20181121T061003Z\r\n"
+ "X-QTPROJECT-EXTENDED-DETAIL:extended detail: string data;[\\n \"data\"\\n]\\n\r\n"
+ " \r\n"
+ "X-QTPROJECT-EXTENDED-DETAIL:extended detail: integer data;[\\n 1\\n]\\n\r\n"
+ "X-QTPROJECT-EXTENDED-DETAIL:extended detail: array data;[\\n [\\n \"s\r\n"
+ " tring 1\"\\,\\n \"string 2\"\\n ]\\n]\\n\r\n"
+ "X-QTPROJECT-EXTENDED-DETAIL:extended detail: object data;[\\n {\\n \"\r\n"
+ " key 1\": \"string 1\"\\,\\n \"key 2\": \"string 2\"\\n }\\n]\\n\r\n"
+ "X-QTPROJECT-VERSION:1;1234\r\n"
+ "UID:{024ba6db-703f-4445-ae25-2f600d7503c3}\r\n"
+ "BEGIN:VALARM\r\n"
+ "ACTION:AUDIO\r\n"
+ "TRIGGER;RELATED=START:-PT0S\r\n"
+ "REPEAT:1\r\n"
+ "DURATION:PT1S\r\n"
+ "ATTACH:ftp://audible_reminder_data_url\r\n"
+ "END:VALARM\r\n"
+ "BEGIN:VALARM\r\n"
+ "ACTION:EMAIL\r\n"
+ "TRIGGER;RELATED=START:-PT0S\r\n"
+ "REPEAT:1\r\n"
+ "DURATION:PT1S\r\n"
+ "ATTACH:Attachment 1\r\n"
+ "ATTACH:Attachment 2\r\n"
+ "ATTENDEE:Recipient 1\r\n"
+ "ATTENDEE:Recipient 2\r\n"
+ "DESCRIPTION:Email reminder body\r\n"
+ "SUMMARY:Email reminder subject\r\n"
+ "END:VALARM\r\n"
+ "BEGIN:VALARM\r\n"
+ "ACTION:DISPLAY\r\n"
+ "TRIGGER;RELATED=START:-PT0S\r\n"
+ "REPEAT:1\r\n"
+ "DURATION:PT1S\r\n"
+ "X-QTPROJECT-ATTACH:ftp://visual_reminder_data_url\r\n"
+ "DESCRIPTION:Visual reminder message\r\n"
+ "END:VALARM\r\n"
+ "END:VEVENT\r\n"
+ "END:VCALENDAR\r\n";
+ mInputDevice->close();
+ mInputDevice->setData(interiorWhitespaceNestedTest);
+ mInputDevice->open(QBuffer::ReadOnly);
+ mInputDevice->seek(0);
+ QVERIFY2(mReader->startReading(), QString::number(mReader->error()).toLatin1().data());
+ QVERIFY2(mReader->waitForFinished(), QString::number(mReader->error()).toLatin1().data());
+ results = mReader->results();
+ QCOMPARE(mReader->state(), QVersitReader::FinishedState);
+ QCOMPARE(mReader->error(), QVersitReader::NoError);
+ QCOMPARE(results.count(), 1);
+
// vCard 4.0
const QByteArray& vcard40 =
"BEGIN:VCARD\r\nVERSION:4.0\r\nFN:John\r\nEND:VCARD\r\n";