fixed GH #2843: Poco::Net::MediaType::parse() does not split parameters

This commit is contained in:
Günter Obiltschnig
2020-01-22 11:56:11 +01:00
parent eb26a95682
commit f6dafb437e
2 changed files with 27 additions and 20 deletions

View File

@@ -33,19 +33,25 @@ void MediaTypeTest::testParse()
assertTrue (mt1.getType() == "text");
assertTrue (mt1.getSubType() == "plain");
assertTrue (mt1.parameters().empty());
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");
}
@@ -53,10 +59,10 @@ void MediaTypeTest::testToString()
{
MediaType mt1("text", "plain");
assertTrue (mt1.toString() == "text/plain");
mt1.setParameter("charset", "iso-8859-1");
assertTrue (mt1.toString() == "text/plain; charset=iso-8859-1");
MediaType mt2("application", "test");
mt2.setParameter("param1", "value1");
mt2.setParameter("param2", "value 2");
@@ -93,17 +99,17 @@ void MediaTypeTest::testMatchRange()
assertTrue (mt2.matchesRange(mt6));
assertTrue (mt3.matchesRange(mt6));
assertTrue (mt4.matchesRange(mt6));
assertTrue (mt5.matchesRange(mt1));
assertTrue (mt5.matchesRange(mt2));
assertTrue (mt5.matchesRange(mt3));
assertTrue (!mt5.matchesRange(mt4));
assertTrue (mt1.matchesRange("text", "*"));
assertTrue (mt2.matchesRange("text", "*"));
assertTrue (mt3.matchesRange("text", "*"));
assertTrue (!mt4.matchesRange("text", "*"));
assertTrue (mt1.matchesRange("*"));
assertTrue (mt4.matchesRange("*"));
}