66#define BOOST_TEST_MODULE URL Test
77#include < boost/config/warning_disable.hpp>
88#include < boost/test/unit_test.hpp>
9+ #include < boost/network/uri.hpp>
910#include < boost/network/uri/uri.hpp>
1011#include < boost/network/uri/accessors.hpp>
11- #include < boost/network/tags.hpp>
1212#include < boost/mpl/list.hpp>
1313#include < boost/range/algorithm/equal.hpp>
1414#include < boost/range/algorithm/copy.hpp>
1818
1919using namespace boost ::network;
2020
21-
2221typedef boost::mpl::list<
23- tags::default_string
24- ,tags::default_wstring
25- >tag_types ;
22+ uri::uri
23+ ,uri::wuri
24+ >uri_types ;
2625
2726
28- BOOST_AUTO_TEST_CASE_TEMPLATE (uri_test, T,tag_types ) {
29- typedef uri::basic_uri<T> uri_type;
27+ BOOST_AUTO_TEST_CASE_TEMPLATE (uri_test, T,uri_types ) {
28+ typedef T uri_type;
3029typedef typename uri_type::string_type string_type;
3130
3231const std::stringurl (" http://www.example.com/" );
@@ -41,8 +40,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(uri_test, T, tag_types) {
4140BOOST_CHECK (boost::equal (uri::path (instance), path));
4241}
4342
44- BOOST_AUTO_TEST_CASE_TEMPLATE (full_uri_test, T,tag_types ) {
45- typedef uri::basic_uri<T> uri_type;
43+ BOOST_AUTO_TEST_CASE_TEMPLATE (full_uri_test, T,uri_types ) {
44+ typedef T uri_type;
4645typedef typename uri_type::string_type string_type;
4746
4847const std::stringurl (" http://user:password@www.example.com:80/path?query#fragment" );
@@ -66,8 +65,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(full_uri_test, T, tag_types) {
6665BOOST_CHECK (boost::equal (uri::fragment (instance), fragment));
6766}
6867
69- BOOST_AUTO_TEST_CASE_TEMPLATE (mailto_test, T,tag_types ) {
70- typedef uri::basic_uri<T> uri_type;
68+ BOOST_AUTO_TEST_CASE_TEMPLATE (mailto_test, T,uri_types ) {
69+ typedef T uri_type;
7170typedef typename uri_type::string_type string_type;
7271
7372const std::stringurl (" mailto:john.doe@example.com" );
@@ -81,8 +80,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(mailto_test, T, tag_types) {
8180BOOST_CHECK (boost::equal (uri::path (instance), path));
8281}
8382
84- BOOST_AUTO_TEST_CASE_TEMPLATE (file_test, T,tag_types ) {
85- typedef uri::basic_uri<T> uri_type;
83+ BOOST_AUTO_TEST_CASE_TEMPLATE (file_test, T,uri_types ) {
84+ typedef T uri_type;
8685typedef typename uri_type::string_type string_type;
8786
8887const std::stringurl (" file:///bin/bash" );
@@ -95,8 +94,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(file_test, T, tag_types) {
9594BOOST_CHECK (boost::equal (uri::path (instance), path));
9695}
9796
98- BOOST_AUTO_TEST_CASE_TEMPLATE (xmpp_test, T,tag_types ) {
99- typedef uri::basic_uri<T> uri_type;
97+ BOOST_AUTO_TEST_CASE_TEMPLATE (xmpp_test, T,uri_types ) {
98+ typedef T uri_type;
10099typedef typename uri_type::string_type string_type;
101100
102101const std::stringurl (" xmpp:example-node@example.com?message;subject=Hello%20World" );
@@ -112,8 +111,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(xmpp_test, T, tag_types) {
112111BOOST_CHECK (boost::equal (uri::query (instance), query));
113112}
114113
115- BOOST_AUTO_TEST_CASE_TEMPLATE (ipv4_address_test, T,tag_types ) {
116- typedef uri::basic_uri<T> uri_type;
114+ BOOST_AUTO_TEST_CASE_TEMPLATE (ipv4_address_test, T,uri_types ) {
115+ typedef T uri_type;
117116typedef typename uri_type::string_type string_type;
118117
119118const std::stringurl (" http://129.79.245.252/" );
@@ -128,8 +127,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(ipv4_address_test, T, tag_types) {
128127BOOST_CHECK (boost::equal (uri::path (instance), path));
129128}
130129
131- BOOST_AUTO_TEST_CASE_TEMPLATE (ipv6_address_test_1, T,tag_types ) {
132- typedef uri::basic_uri<T> uri_type;
130+ BOOST_AUTO_TEST_CASE_TEMPLATE (ipv6_address_test_1, T,uri_types ) {
131+ typedef T uri_type;
133132typedef typename uri_type::string_type string_type;
134133
135134const std::stringurl (" http://[1080:0:0:0:8:800:200C:417A]/" );
@@ -144,8 +143,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(ipv6_address_test_1, T, tag_types) {
144143BOOST_CHECK (boost::equal (uri::path (instance), path));
145144}
146145
147- BOOST_AUTO_TEST_CASE_TEMPLATE (ipv6_address_test_2, T,tag_types ) {
148- typedef uri::basic_uri<T> uri_type;
146+ BOOST_AUTO_TEST_CASE_TEMPLATE (ipv6_address_test_2, T,uri_types ) {
147+ typedef T uri_type;
149148typedef typename uri_type::string_type string_type;
150149
151150const std::stringurl (" http://[2001:db8:85a3:8d3:1319:8a2e:370:7348]/" );
@@ -160,8 +159,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(ipv6_address_test_2, T, tag_types) {
160159BOOST_CHECK (boost::equal (uri::path (instance), path));
161160}
162161
163- BOOST_AUTO_TEST_CASE_TEMPLATE (ftp_test, T,tag_types ) {
164- typedef uri::basic_uri<T> uri_type;
162+ BOOST_AUTO_TEST_CASE_TEMPLATE (ftp_test, T,uri_types ) {
163+ typedef T uri_type;
165164typedef typename uri_type::string_type string_type;
166165
167166const std::stringurl (" ftp://john.doe@ftp.example.com/" );
@@ -178,8 +177,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(ftp_test, T, tag_types) {
178177BOOST_CHECK (boost::equal (uri::path (instance), path));
179178}
180179
181- BOOST_AUTO_TEST_CASE_TEMPLATE (news_test, T,tag_types ) {
182- typedef uri::basic_uri<T> uri_type;
180+ BOOST_AUTO_TEST_CASE_TEMPLATE (news_test, T,uri_types ) {
181+ typedef T uri_type;
183182typedef typename uri_type::string_type string_type;
184183
185184const std::stringurl (" news:comp.infosystems.www.servers.unix" );
@@ -192,8 +191,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(news_test, T, tag_types) {
192191BOOST_CHECK (boost::equal (uri::path (instance), path));
193192}
194193
195- BOOST_AUTO_TEST_CASE_TEMPLATE (tel_test, T,tag_types ) {
196- typedef uri::basic_uri<T> uri_type;
194+ BOOST_AUTO_TEST_CASE_TEMPLATE (tel_test, T,uri_types ) {
195+ typedef T uri_type;
197196typedef typename uri_type::string_type string_type;
198197
199198const std::stringurl (" tel:+1-816-555-1212" );
@@ -206,8 +205,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(tel_test, T, tag_types) {
206205BOOST_CHECK (boost::equal (uri::path (instance), path));
207206}
208207
209- BOOST_AUTO_TEST_CASE_TEMPLATE (encoded_uri_test, T,tag_types ) {
210- typedef uri::basic_uri<T> uri_type;
208+ BOOST_AUTO_TEST_CASE_TEMPLATE (encoded_uri_test, T,uri_types ) {
209+ typedef T uri_type;
211210typedef typename uri_type::string_type string_type;
212211
213212const std::stringurl (" http://www.example.com/Path%20With%20%28Some%29%20Encoded%20Characters%21" );
@@ -224,8 +223,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(encoded_uri_test, T, tag_types) {
224223BOOST_CHECK (boost::equal (uri::decoded_path (instance), decoded_path));
225224}
226225
227- BOOST_AUTO_TEST_CASE_TEMPLATE (copy_constructor_test, T,tag_types ) {
228- typedef uri::basic_uri<T> uri_type;
226+ BOOST_AUTO_TEST_CASE_TEMPLATE (copy_constructor_test, T,uri_types ) {
227+ typedef T uri_type;
229228typedef typename uri_type::string_type string_type;
230229
231230const std::stringurl (" http://www.example.com/" );
@@ -235,8 +234,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(copy_constructor_test, T, tag_types) {
235234BOOST_CHECK (instance == copy);
236235}
237236
238- BOOST_AUTO_TEST_CASE_TEMPLATE (assignment_test, T,tag_types ) {
239- typedef uri::basic_uri<T> uri_type;
237+ BOOST_AUTO_TEST_CASE_TEMPLATE (assignment_test, T,uri_types ) {
238+ typedef T uri_type;
240239typedef typename uri_type::string_type string_type;
241240
242241const std::stringurl (" http://www.example.com/" );
@@ -248,8 +247,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(assignment_test, T, tag_types) {
248247BOOST_CHECK (instance == copy);
249248}
250249
251- BOOST_AUTO_TEST_CASE_TEMPLATE (username_test, T,tag_types ) {
252- typedef uri::basic_uri<T> uri_type;
250+ BOOST_AUTO_TEST_CASE_TEMPLATE (username_test, T,uri_types ) {
251+ typedef T uri_type;
253252typedef typename uri_type::string_type string_type;
254253
255254const std::stringurl (" ftp://john.doe:password@ftp.example.com/" );
@@ -263,8 +262,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(username_test, T, tag_types) {
263262BOOST_CHECK (boost::equal (uri::password (instance), password));
264263}
265264
266- BOOST_AUTO_TEST_CASE_TEMPLATE (authority_test, T,tag_types ) {
267- typedef uri::basic_uri<T> uri_type;
265+ BOOST_AUTO_TEST_CASE_TEMPLATE (authority_test, T,uri_types ) {
266+ typedef T uri_type;
268267typedef typename uri_type::string_type string_type;
269268
270269const std::stringurl (" http://user:password@www.example.com:80/path?query#fragment" );
@@ -275,8 +274,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(authority_test, T, tag_types) {
275274BOOST_CHECK (boost::equal (uri::authority (instance), authority));
276275}
277276
278- BOOST_AUTO_TEST_CASE_TEMPLATE (http_query_map_test, T,tag_types ) {
279- typedef uri::basic_uri<T> uri_type;
277+ BOOST_AUTO_TEST_CASE_TEMPLATE (http_query_map_test, T,uri_types ) {
278+ typedef T uri_type;
280279typedef typename uri_type::string_type string_type;
281280
282281const std::stringurl (" http://user:password@www.example.com:80/path?query#fragment" );
@@ -293,8 +292,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(http_query_map_test, T, tag_types) {
293292BOOST_CHECK (boost::equal (queries.begin ()->second , value));
294293}
295294
296- BOOST_AUTO_TEST_CASE_TEMPLATE (xmpp_query_map_test, T,tag_types ) {
297- typedef uri::basic_uri<T> uri_type;
295+ BOOST_AUTO_TEST_CASE_TEMPLATE (xmpp_query_map_test, T,uri_types ) {
296+ typedef T uri_type;
298297typedef typename uri_type::string_type string_type;
299298
300299const std::stringurl (" xmpp:example-node@example.com?message;subject=Hello%20World" );
@@ -313,9 +312,9 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(xmpp_query_map_test, T, tag_types) {
313312BOOST_CHECK (boost::equal ((++queries.begin ())->second , value_2));
314313}
315314
316- BOOST_AUTO_TEST_CASE_TEMPLATE (range_test, T,tag_types )
315+ BOOST_AUTO_TEST_CASE_TEMPLATE (range_test, T,uri_types )
317316{
318- typedef uri::basic_uri<T> uri_type;
317+ typedef T uri_type;
319318typedef typename uri_type::string_type string_type;
320319
321320const std::stringurl (" http://www.example.com/" );