@@ -348,5 +348,30 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(incremental_parser_parse_header_lines, eol, eol_ty
348
348
valid_headers);
349
349
BOOST_CHECK_EQUAL (parsed_ok, true );
350
350
BOOST_CHECK (parsed1 != parsed2);
351
+
352
+ p.reset (response_parser_type::http_status_message_done);
353
+ valid_headers = " Content-Type: text/html;" + eol::literal + " charset=utf-8" + eol::literal + eol::literal;
354
+ fusion::tie (parsed_ok, result_range) = p.parse_until (
355
+ response_parser_type::http_header_line_done,
356
+ valid_headers);
357
+ BOOST_CHECK_EQUAL (parsed_ok, true );
358
+ parsed1 = std::string (boost::begin (result_range), boost::end (result_range));
359
+ std::cout << " PARSED: " << parsed1 << " state=" << p.state () << std::endl;
360
+ p.reset (response_parser_type::http_status_message_done);
361
+ end = valid_headers.end ();
362
+ valid_headers.assign (boost::end (result_range), end);
363
+ fusion::tie (parsed_ok, result_range) = p.parse_until (
364
+ response_parser_type::http_header_line_done,
365
+ valid_headers);
366
+ BOOST_CHECK_EQUAL (parsed_ok, true );
367
+ parsed2 = std::string (boost::begin (result_range), boost::end (result_range));
368
+ std::cout << " PARSED: " << parsed2 << " state=" << p.state () << std::endl;
369
+ valid_headers.assign (boost::end (result_range), end);
370
+ p.reset (response_parser_type::http_status_message_done);
371
+ fusion::tie (parsed_ok, result_range) = p.parse_until (
372
+ response_parser_type::http_headers_done,
373
+ valid_headers);
374
+ BOOST_CHECK_EQUAL (parsed_ok, true );
375
+ BOOST_CHECK (parsed1 != parsed2);
351
376
}
352
377
0 commit comments