88#include < boost/test/unit_test.hpp>
99#include < boost/network/uri/uri.hpp>
1010#include < boost/network/uri/directives.hpp>
11- #include < boost/network/uri/accessors.hpp>
1211#include < boost/network/uri/uri_io.hpp>
13- #include < boost/network/tags.hpp>
14- #include < boost/mpl/list.hpp>
15- #include < boost/range/algorithm/equal.hpp>
16- #include < boost/range/algorithm/copy.hpp>
1712
1813
1914using namespace boost ::network;
@@ -24,9 +19,8 @@ BOOST_AUTO_TEST_CASE(builder_test)
2419 uri::uri instance;
2520 instance <<uri::scheme (" http" ) <<uri::host (" www.example.com" ) <<uri::path (" /" );
2621BOOST_REQUIRE (uri::valid (instance));
27- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
28- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
29- BOOST_CHECK_EQUAL (uri::path (instance)," /" );
22+ BOOST_CHECK_EQUAL (" http://www.example.com/" , instance.string ());
23+
3024}
3125
3226BOOST_AUTO_TEST_CASE (full_uri_builder_test)
@@ -41,26 +35,15 @@ BOOST_AUTO_TEST_CASE(full_uri_builder_test)
4135 <<uri::fragment (" fragment" )
4236 ;
4337BOOST_REQUIRE (uri::valid (instance));
44- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
45- BOOST_CHECK_EQUAL (uri::user_info (instance)," user:password" );
46- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
47- BOOST_CHECK (uri::port_us (instance));
48- BOOST_CHECK_EQUAL (uri::port_us (instance).get (),80 );
49- BOOST_CHECK_EQUAL (uri::port (instance)," 80" );
50- BOOST_CHECK_EQUAL (uri::path (instance)," /path" );
51- BOOST_CHECK_EQUAL (uri::query (instance)," query" );
52- BOOST_CHECK_EQUAL (uri::fragment (instance)," fragment" );
38+ BOOST_CHECK_EQUAL (" http://user:password@www.example.com:80/path?query#fragment" , instance.string ());
5339}
5440
5541BOOST_AUTO_TEST_CASE (port_test)
5642{
5743 uri::uri instance;
5844 instance <<uri::scheme (" http" ) <<uri::host (" www.example.com" ) <<uri::port (8000 ) <<uri::path (" /" );
5945BOOST_REQUIRE (uri::valid (instance));
60- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
61- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
62- BOOST_CHECK_EQUAL (uri::port (instance)," 8000" );
63- BOOST_CHECK_EQUAL (uri::path (instance)," /" );
46+ BOOST_CHECK_EQUAL (" http://www.example.com:8000/" , instance.string ());
6447}
6548
6649BOOST_AUTO_TEST_CASE (encoded_path_test)
@@ -73,11 +56,7 @@ BOOST_AUTO_TEST_CASE(encoded_path_test)
7356 ;
7457 ;
7558BOOST_REQUIRE (uri::valid (instance));
76- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
77- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
78- BOOST_CHECK_EQUAL (uri::port (instance)," 8000" );
79- BOOST_CHECK_EQUAL (uri::path (instance)," /Path%20With%20%28Some%29%20Encoded%20Characters%21" );
80- BOOST_CHECK_EQUAL (uri::decoded_path (instance)," /Path With (Some) Encoded Characters!" );
59+ BOOST_CHECK_EQUAL (" http://www.example.com:8000/Path%20With%20%28Some%29%20Encoded%20Characters%21" , instance.string ());
8160}
8261
8362BOOST_AUTO_TEST_CASE (query_test)
@@ -87,10 +66,7 @@ BOOST_AUTO_TEST_CASE(query_test)
8766 <<uri::query (" key" ," value" )
8867 ;
8968BOOST_REQUIRE (uri::valid (instance));
90- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
91- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
92- BOOST_CHECK_EQUAL (uri::path (instance)," /" );
93- BOOST_CHECK_EQUAL (uri::query (instance)," key=value" );
69+ BOOST_CHECK_EQUAL (" http://www.example.com/?key=value" , instance.string ());
9470}
9571
9672BOOST_AUTO_TEST_CASE (query_2_test)
@@ -100,21 +76,15 @@ BOOST_AUTO_TEST_CASE(query_2_test)
10076 <<uri::query (" key1" ," value1" ) <<uri::query (" key2" ," value2" )
10177 ;
10278BOOST_REQUIRE (uri::valid (instance));
103- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
104- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
105- BOOST_CHECK_EQUAL (uri::path (instance)," /" );
106- BOOST_CHECK_EQUAL (uri::query (instance)," key1=value1&key2=value2" );
79+ BOOST_CHECK_EQUAL (" http://www.example.com/?key1=value1&key2=value2" , instance.string ());
10780}
10881
10982BOOST_AUTO_TEST_CASE (fragment_test)
11083{
11184 uri::uri instance;
11285 instance <<uri::scheme (" http" ) <<uri::host (" www.example.com" ) <<uri::path (" /" ) <<uri::fragment (" fragment" );
11386BOOST_REQUIRE (uri::valid (instance));
114- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
115- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
116- BOOST_CHECK_EQUAL (uri::path (instance)," /" );
117- BOOST_CHECK_EQUAL (uri::fragment (instance)," fragment" );
87+ BOOST_CHECK_EQUAL (" http://www.example.com/#fragment" , instance.string ());
11888}
11989
12090BOOST_AUTO_TEST_CASE (from_base_test)
@@ -123,30 +93,23 @@ BOOST_AUTO_TEST_CASE(from_base_test)
12393 uri::uri instance;
12494 instance << base_uri <<uri::path (" /" ) <<uri::fragment (" fragment" );
12595BOOST_REQUIRE (uri::valid (instance));
126- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
127- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
128- BOOST_CHECK_EQUAL (uri::path (instance)," /" );
129- BOOST_CHECK_EQUAL (uri::fragment (instance)," fragment" );
96+ BOOST_CHECK_EQUAL (" http://www.example.com/#fragment" , instance.string ());
13097}
13198
13299BOOST_AUTO_TEST_CASE (scheme_http_test)
133100{
134101 uri::uri instance;
135102 instance << uri::schemes::http <<uri::host (" www.example.com" ) <<uri::path (" /" );
136103BOOST_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)," /" );
104+ BOOST_CHECK_EQUAL (" http://www.example.com/" , instance.string ());
140105}
141106
142107BOOST_AUTO_TEST_CASE (scheme_https_test)
143108{
144109 uri::uri instance;
145110 instance << uri::schemes::https <<uri::host (" www.example.com" ) <<uri::path (" /" );
146111BOOST_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)," /" );
112+ BOOST_CHECK_EQUAL (" https://www.example.com/" , instance.string ());
150113}
151114
152115BOOST_AUTO_TEST_CASE (encoded_null_char_test)
@@ -159,16 +122,13 @@ BOOST_AUTO_TEST_CASE(encoded_null_char_test)
159122 <<uri::encoded_path (" /" )
160123 ;
161124BOOST_REQUIRE (uri::valid (instance));
162- BOOST_CHECK_EQUAL (uri::scheme (instance)," http" );
163- BOOST_CHECK_EQUAL (uri::host (instance)," www.example.com" );
164- BOOST_CHECK_EQUAL (uri::path (instance)," /" );
125+ BOOST_CHECK_EQUAL (" http://www.example.com/" , instance.string ());
165126}
166127
167128BOOST_AUTO_TEST_CASE (mailto_builder_test)
168129{
169130 uri::uri instance;
170131 instance <<uri::scheme (" mailto" ) <<uri::path (" cpp-netlib@example.com" );
171132BOOST_REQUIRE (uri::valid (instance));
172- BOOST_CHECK_EQUAL (uri::scheme (instance)," mailto" );
173- BOOST_CHECK_EQUAL (uri::path (instance)," cpp-netlib@example.com" );
133+ BOOST_CHECK_EQUAL (" mailto:cpp-netlib@example.com" , instance.string ());
174134}