From 30ea54f269efa673a1eb5bc07e71715b67607dbc Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Sun, 1 Jun 2014 20:46:17 +0200 Subject: Fixed parsing of empty lines in header field value. --- tests/parser/headerFieldTest.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests/parser/headerFieldTest.cpp') diff --git a/tests/parser/headerFieldTest.cpp b/tests/parser/headerFieldTest.cpp index 5281a3a2..0642dae7 100644 --- a/tests/parser/headerFieldTest.cpp +++ b/tests/parser/headerFieldTest.cpp @@ -30,6 +30,7 @@ VMIME_TEST_SUITE_BEGIN(headerFieldTest) VMIME_TEST(testBadValueType) VMIME_TEST(testValueOnNextLine) VMIME_TEST(testStripSpacesAtEnd) + VMIME_TEST(testValueWithEmptyLine) VMIME_TEST_LIST_END @@ -84,4 +85,20 @@ VMIME_TEST_SUITE_BEGIN(headerFieldTest) VASSERT_EQ("Field value", toHex("field data"), toHex(hvalue->getWholeBuffer())); } + void testValueWithEmptyLine() + { + vmime::parsingContext ctx; + + const vmime::string buffer = "Field: \r\n\tdata1\r\n\tdata2\r\n\t\r\n\tdata3"; + + vmime::shared_ptr hfield = + vmime::headerField::parseNext(ctx, buffer, 0, buffer.size()); + + vmime::shared_ptr hvalue = + hfield->getValue (); + + VASSERT_EQ("Field name", "Field", hfield->getName()); + VASSERT_EQ("Field value", "data1 data2 data3", hvalue->getWholeBuffer()); + } + VMIME_TEST_SUITE_END -- cgit v1.2.3