Changed ContentDisposition::parse to HttpHeader::FieldValue::SemicolonSeparated::parse. This function can now also parse Set-Cookie header field values

This commit is contained in:
eidheim 2017-11-07 18:47:00 +01:00
commit f55eb4af65
2 changed files with 134 additions and 50 deletions

View file

@ -195,19 +195,89 @@ int main() {
{
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"form-data", ""}};
auto parsed = SimpleWeb::ContentDisposition::parse("form-data");
SimpleWeb::CaseInsensitiveMultimap solution;
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("");
assert(parsed == solution);
}
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"a", ""}};
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("a");
assert(parsed == solution);
}
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"a", ""}, {"b", ""}};
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("a; b");
assert(parsed == solution);
}
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("a;b");
assert(parsed == solution);
}
}
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"a", ""}, {"b", "c"}};
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("a; b=c");
assert(parsed == solution);
}
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("a;b=c");
assert(parsed == solution);
}
}
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"form-data", ""}};
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data");
assert(parsed == solution);
}
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"form-data", ""}, {"test", ""}};
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data; test");
assert(parsed == solution);
}
}
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"form-data", ""}, {"name", "file"}};
auto parsed = SimpleWeb::ContentDisposition::parse("form-data; name=\"file\"");
assert(parsed == solution);
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data; name=\"file\"");
assert(parsed == solution);
}
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data; name=file");
assert(parsed == solution);
}
}
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"form-data", ""}, {"name", "file"}, {"filename", "filename.png"}};
auto parsed = SimpleWeb::ContentDisposition::parse("form-data; name=\"file\"; filename=\"filename.png\"");
assert(parsed == solution);
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data; name=\"file\"; filename=\"filename.png\"");
assert(parsed == solution);
}
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data;name=\"file\";filename=\"filename.png\"");
assert(parsed == solution);
}
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data; name=file; filename=filename.png");
assert(parsed == solution);
}
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data;name=file;filename=filename.png");
assert(parsed == solution);
}
}
{
SimpleWeb::CaseInsensitiveMultimap solution = {{"form-data", ""}, {"name", "fi le"}, {"filename", "file name.png"}};
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data; name=\"fi le\"; filename=\"file name.png\"");
assert(parsed == solution);
}
{
auto parsed = SimpleWeb::HttpHeader::FieldValue::SemicolonSeparated::parse("form-data; name=fi le; filename=file name.png");
assert(parsed == solution);
}
}
}
}