Skip to content

Commit f77a94f

Browse files
author
ky
committed
add tests to issue 161
1 parent 0d00b3f commit f77a94f

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

include/network/uri/accessors.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ struct key_value_sequence
3232
{
3333
query = pair >> *((boost::spirit::qi::lit(';') | '&') >> pair);
3434
pair = key >> -('=' >> value);
35-
key = spirit::qi::char_("a-zA-Z_") >> *spirit::qi::char_("-+.~a-zA-Z_0-9/%");
36-
value = *spirit::qi::char_("-+.~a-zA-Z_0-9/%");
35+
key = boost::spirit::qi::char_("a-zA-Z_") >> *boost::spirit::qi::char_("-+.~a-zA-Z_0-9/%");
36+
value = *boost::spirit::qi::char_("-+.~a-zA-Z_0-9/%");
3737
}
3838

3939
boost::spirit::qi::rule<uri::const_iterator, Map()> query;

libs/network/test/uri/uri_test.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,3 +691,17 @@ BOOST_AUTO_TEST_CASE(uri_unordered_set_test) {
691691
BOOST_REQUIRE(!uri_set.empty());
692692
BOOST_CHECK_EQUAL((*uri_set.begin()), network::uri("http://www.example.com/"));
693693
}
694+
695+
BOOST_AUTO_TEST_CASE(issue_161_test) {
696+
network::uri instance("http://www.example.com/path?param1=-&param2=some+plus+encoded+text&param3=~");
697+
BOOST_REQUIRE(network::valid(instance));
698+
699+
std::map<std::string, std::string> queries;
700+
network::query_map(instance, queries);
701+
BOOST_REQUIRE_EQUAL(queries.size(), std::size_t(3));
702+
BOOST_CHECK_EQUAL(queries["param1"], "-");
703+
BOOST_CHECK_EQUAL(queries["param2"], "some+plus+encoded+text");
704+
BOOST_CHECK_EQUAL(queries["param3"], "~");
705+
BOOST_CHECK_EQUAL(network::decoded(queries["param2"]), "some plus encoded text");
706+
}
707+

0 commit comments

Comments
 (0)