Skip to content

Commit 2d63d9c

Browse files
committed
[URI] Added specific schemes for builder.
1 parent 0e12b94 commit 2d63d9c

File tree

3 files changed

+41
-17
lines changed

3 files changed

+41
-17
lines changed

boost/network/uri/directives.hpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,6 @@
99

1010

1111
# include <boost/network/uri/uri.hpp>
12-
# include <boost/network/uri/directives/scheme.hpp>
13-
# include <boost/network/uri/directives/user_info.hpp>
14-
# include <boost/network/uri/directives/host.hpp>
15-
# include <boost/network/uri/directives/port.hpp>
16-
# include <boost/network/uri/directives/authority.hpp>
17-
# include <boost/network/uri/directives/path.hpp>
18-
# include <boost/network/uri/directives/query.hpp>
19-
# include <boost/network/uri/directives/fragment.hpp>
2012

2113

2214
namespace boost {
@@ -43,4 +35,14 @@ uri &operator << (uri &uri_, const Directive &directive) {
4335
} // namespace boost
4436

4537

38+
# include <boost/network/uri/directives/scheme.hpp>
39+
# include <boost/network/uri/directives/user_info.hpp>
40+
# include <boost/network/uri/directives/host.hpp>
41+
# include <boost/network/uri/directives/port.hpp>
42+
# include <boost/network/uri/directives/authority.hpp>
43+
# include <boost/network/uri/directives/path.hpp>
44+
# include <boost/network/uri/directives/query.hpp>
45+
# include <boost/network/uri/directives/fragment.hpp>
46+
47+
4648
#endif // __BOOST_NETWORK_URI_DIRECTIVES_INC__

boost/network/uri/directives/scheme.hpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,18 @@ inline
3737
scheme_directive scheme(const std::string &scheme) {
3838
return scheme_directive(scheme);
3939
}
40+
41+
namespace schemes {
42+
inline
43+
uri &http(uri &uri_) {
44+
return uri_ << scheme("http");
45+
}
46+
47+
inline
48+
uri &https(uri &uri_) {
49+
return uri_ << scheme("https");
50+
}
51+
} // namespace schemes
4052
} // namespace uri
4153
} // namespace network
4254
} // namespace boost

libs/network/test/uri/url_builder_test.cpp

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,25 @@ BOOST_AUTO_TEST_CASE(from_root_test)
129129
BOOST_CHECK_EQUAL(uri::fragment(instance), "fragment");
130130
}
131131

132-
//BOOST_AUTO_TEST_CASE(scheme_test)
133-
//{
134-
// uri_type instance;
135-
// instance << uri::schemes::http << uri::host("www.example.com") << uri::path("/");
136-
// BOOST_REQUIRE(uri::valid(instance));
137-
// BOOST_CHECK_EQUAL(uri::scheme(instance), "http");
138-
// BOOST_CHECK_EQUAL(uri::host(instance), "www.example.com");
139-
// BOOST_CHECK_EQUAL(uri::path(instance), "/");
140-
//}
132+
BOOST_AUTO_TEST_CASE(scheme_http_test)
133+
{
134+
uri::uri instance;
135+
instance << uri::schemes::http << uri::host("www.example.com") << uri::path("/");
136+
BOOST_REQUIRE(uri::valid(instance));
137+
BOOST_CHECK_EQUAL(uri::scheme(instance), "http");
138+
BOOST_CHECK_EQUAL(uri::host(instance), "www.example.com");
139+
BOOST_CHECK_EQUAL(uri::path(instance), "/");
140+
}
141+
142+
BOOST_AUTO_TEST_CASE(scheme_https_test)
143+
{
144+
uri::uri instance;
145+
instance << uri::schemes::https << uri::host("www.example.com") << uri::path("/");
146+
BOOST_REQUIRE(uri::valid(instance));
147+
BOOST_CHECK_EQUAL(uri::scheme(instance), "https");
148+
BOOST_CHECK_EQUAL(uri::host(instance), "www.example.com");
149+
BOOST_CHECK_EQUAL(uri::path(instance), "/");
150+
}
141151

142152
BOOST_AUTO_TEST_CASE(encoded_null_char_test)
143153
{

0 commit comments

Comments
 (0)