2
0
mirror of https://github.com/boostorg/url.git synced 2026-02-09 11:42:11 +00:00

fix: parse_query does not recreate string_view

fix #757
This commit is contained in:
alandefreitas
2023-07-18 14:07:11 -03:00
committed by Alan de Freitas
parent f06f595ae7
commit c97bc2782c
2 changed files with 30 additions and 3 deletions

View File

@@ -20,9 +20,36 @@ struct parse_query_test
void
testParse()
{
system::result<params_encoded_view> rv;
{
system::result<params_encoded_view> rv;
rv = parse_query( "key=value" );
BOOST_TEST( ! rv.has_error() );
BOOST_TEST( rv->size() == 1 );
BOOST_TEST( rv->begin()->key == "key" );
BOOST_TEST( rv->begin()->value == "value" );
}
rv = parse_query( "key=value" );
// issue #757
{
auto data = std::string("abc=def&ghi=jkl&mno=pqr");
core::string_view view( data.data(), data.size() - 2 );
system::result<params_encoded_view> rv;
rv = parse_query( view );
BOOST_TEST( ! rv.has_error() );
params_encoded_view params = *rv;
BOOST_TEST( params.size() == 3 );
auto it = params.begin();
BOOST_TEST_EQ( it->key, "abc" );
BOOST_TEST_EQ( it->value, "def" );
++it;
BOOST_TEST_EQ( it->key, "ghi" );
BOOST_TEST_EQ( it->value, "jkl" );
++it;
BOOST_TEST_EQ( it->key, "mno" );
BOOST_TEST_EQ( it->value, "p" );
++it;
BOOST_TEST( it == params.end() );
}
}
void