mirror of
https://github.com/pocoproject/poco.git
synced 2025-04-27 02:16:16 +02:00
fixed GH #2843: Poco::Net::MediaType::parse() does not split parameters
This commit is contained in:
parent
eb26a95682
commit
f6dafb437e
@ -202,6 +202,7 @@ void MediaType::parse(const std::string& mediaType)
|
||||
if (it != end) ++it;
|
||||
while (it != end && *it != ';' && !Poco::Ascii::isSpace(*it)) _subType += *it++;
|
||||
while (it != end && *it != ';') ++it;
|
||||
if (it != end) ++it; // skip semicolon
|
||||
MessageHeader::splitParameters(it, end, _parameters);
|
||||
}
|
||||
|
||||
|
@ -37,15 +37,21 @@ void MediaTypeTest::testParse()
|
||||
MediaType mt2("text/xml;charset=us-ascii");
|
||||
assertTrue (mt2.getType() == "text");
|
||||
assertTrue (mt2.getSubType() == "xml");
|
||||
assertTrue (!mt2.parameters().empty());
|
||||
assertTrue (mt2.parameters().size() == 1);
|
||||
assertTrue (mt2.getParameter("charset") == "us-ascii");
|
||||
|
||||
MediaType mt3("application/test; param1=value1; param2=\"value 2\"");
|
||||
assertTrue (mt3.getType() == "application");
|
||||
assertTrue (mt3.getSubType() == "test");
|
||||
assertTrue (!mt3.parameters().empty());
|
||||
assertTrue (mt3.parameters().size() == 2);
|
||||
assertTrue (mt3.getParameter("param1") == "value1");
|
||||
assertTrue (mt3.getParameter("PARAM2") == "value 2");
|
||||
|
||||
MediaType mt4("multipart/mixed; boundary=\"MIME_boundary_01234567\"");
|
||||
assertTrue (mt4.getType() == "multipart");
|
||||
assertTrue (mt4.getSubType() == "mixed");
|
||||
assertTrue (mt4.parameters().size() == 1);
|
||||
assertTrue (mt4.getParameter("boundary") == "MIME_boundary_01234567");
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user