|
13 | 13 |
|
14 | 14 | using namespace boost::network;
|
15 | 15 |
|
16 |
| -typedef boost::mpl::list<tags::http_default_8bit_tcp_resolve, tags::http_default_8bit_udp_resolve, tags::http_keepalive_8bit_tcp_resolve, tags::http_keepalive_8bit_udp_resolve> tag_types; |
| 16 | +typedef boost::mpl::list< |
| 17 | + tags::http_default_8bit_tcp_resolve, |
| 18 | + tags::http_default_8bit_udp_resolve, |
| 19 | + tags::http_keepalive_8bit_tcp_resolve, |
| 20 | + tags::http_keepalive_8bit_udp_resolve, |
| 21 | + tags::http_async_8bit_tcp_resolve, |
| 22 | + tags::http_async_8bit_udp_resolve |
| 23 | +> tag_types; |
17 | 24 |
|
18 | 25 | BOOST_AUTO_TEST_CASE_TEMPLATE(http_get_test, T, tag_types) {
|
19 |
| - http::basic_request<T> request("http://www.boost.org/"); |
20 |
| - http::basic_client<T, 1, 1> client_; |
21 |
| - http::basic_response<T> response_; |
| 26 | + typedef http::basic_client<T, 1, 1> client_type; |
| 27 | + typename client_type::request request("http://www.boost.org/"); |
| 28 | + typename client_type::response response_; |
| 29 | + client_type client_; |
22 | 30 | BOOST_CHECK_NO_THROW ( response_ = client_.get(request) );
|
23 |
| - typename headers_range<typename http::basic_response<T> >::type range = headers(response_)["Content-Type"]; |
| 31 | + typename headers_range<typename client_type::response>::type range = headers(response_)["Content-Type"]; |
24 | 32 | BOOST_CHECK ( boost::begin(range) != boost::end(range) );
|
25 | 33 | BOOST_CHECK ( body(response_).size() != 0 );
|
26 | 34 | }
|
27 | 35 |
|
28 | 36 | BOOST_AUTO_TEST_CASE_TEMPLATE(http_get_test_different_port, T, tag_types) {
|
29 |
| - http::basic_request<T> request("http://www.boost.org:80/"); |
30 |
| - http::basic_client<T, 1, 1> client_; |
31 |
| - http::basic_response<T> response_; |
| 37 | + typedef http::basic_client<T, 1, 1> client_type; |
| 38 | + typename client_type::request request("http://www.boost.org:80/"); |
| 39 | + typename client_type::response response_; |
| 40 | + client_type client_; |
32 | 41 | BOOST_CHECK_NO_THROW ( response_ = client_.get(request) );
|
33 |
| - typename headers_range<typename http::basic_response<T> >::type range = headers(response_)["Content-Type"]; |
| 42 | + typename headers_range<typename client_type::response >::type range = headers(response_)["Content-Type"]; |
34 | 43 | BOOST_CHECK ( boost::begin(range) != boost::end(range) );
|
35 | 44 | BOOST_CHECK ( body(response_).size() != 0 );
|
36 | 45 | }
|
37 | 46 |
|
38 | 47 | BOOST_AUTO_TEST_CASE_TEMPLATE(http_get_test_timeout, T, tag_types) {
|
39 |
| - http::basic_request<T> request("http://localhost:12121/"); |
40 |
| - http::basic_client<T, 1, 1> client_; |
41 |
| - http::basic_response<T> response_; |
42 |
| - BOOST_CHECK_THROW ( response_ = client_.get(request), boost::system::system_error ); |
| 48 | + typedef http::basic_client<T, 1, 1> client_type; |
| 49 | + typename client_type::request request("http://localhost:12121/"); |
| 50 | + typename client_type::response response_; |
| 51 | + client_type client_; |
| 52 | + BOOST_CHECK_THROW ( response_ = client_.get(request); body(response_); , boost::system::system_error ); |
43 | 53 | }
|
44 | 54 |
|
45 | 55 | BOOST_AUTO_TEST_CASE_TEMPLATE(http_get_details, T, tag_types) {
|
46 |
| - http::basic_request<T> request("http://www.boost.org/"); |
47 |
| - http::basic_client<T, 1, 1> client_; |
48 |
| - http::basic_response<T> response_; |
| 56 | + typedef http::basic_client<T, 1, 1> client_type; |
| 57 | + typename client_type::request request("http://www.boost.org/"); |
| 58 | + typename client_type::response response_; |
| 59 | + client_type client_; |
49 | 60 | BOOST_CHECK_NO_THROW ( response_ = client_.get(request) );
|
50 | 61 | BOOST_CHECK_EQUAL ( response_.version().substr(0,7), std::string("HTTP/1.") );
|
51 | 62 | BOOST_CHECK_EQUAL ( response_.status(), 200u );
|
52 | 63 | BOOST_CHECK_EQUAL ( response_.status_message(), std::string("OK") );
|
53 | 64 | }
|
54 | 65 |
|
55 | 66 | BOOST_AUTO_TEST_CASE_TEMPLATE(http_cached_resolve, T, tag_types) {
|
56 |
| - http::basic_request<T> request("http://www.boost.org"); |
57 |
| - http::basic_request<T> other_request("http://www.boost.org/users/license.html"); |
58 |
| - http::basic_client<T, 1, 1> client_(http::basic_client<T, 1, 1>::cache_resolved); |
59 |
| - http::basic_response<T> response_; |
| 67 | + typedef http::basic_client<T, 1, 1> client_type; |
| 68 | + typename client_type::request request("http://www.boost.org/"), |
| 69 | + other_request("http://www.boost.org/users/license.html"); |
| 70 | + typename client_type::response response_; |
| 71 | + client_type client_(client_type::cache_resolved); |
60 | 72 | BOOST_CHECK_NO_THROW ( response_ = client_.get(request) );
|
61 | 73 | BOOST_CHECK_NO_THROW ( response_ = client_.get(other_request) );
|
62 | 74 | response_ = client_.get(other_request);
|
63 | 75 | }
|
64 | 76 |
|
| 77 | +template <class Tag> |
| 78 | +struct status_ : |
| 79 | + boost::mpl::if_< |
| 80 | + boost::network::is_async<Tag>, |
| 81 | + boost::mpl::integral_c<boost::uint16_t, 301u>, |
| 82 | + boost::mpl::integral_c<boost::uint16_t, 200u> |
| 83 | + >::type |
| 84 | +{}; |
| 85 | + |
65 | 86 | BOOST_AUTO_TEST_CASE_TEMPLATE(http_redirection_test, T, tag_types) {
|
66 |
| - http::basic_request<T> request("http://boost.org"); |
67 |
| - http::basic_client<T, 1, 1> client_(http::basic_client<T, 1, 1>::follow_redirect); |
68 |
| - http::basic_response<T> response_; |
| 87 | + typedef http::basic_client<T, 1, 1> client_type; |
| 88 | + typename client_type::request request("http://boost.org/"); |
| 89 | + typename client_type::response response_; |
| 90 | + client_type client_(client_type::follow_redirect); |
69 | 91 | BOOST_CHECK_NO_THROW ( response_ = client_.get(request) );
|
70 |
| - BOOST_CHECK_EQUAL ( response_.status(), 200u ); |
| 92 | + BOOST_CHECK_EQUAL ( response_.status(), status_<T>::value ); |
71 | 93 | }
|
72 | 94 |
|
73 | 95 |
|
0 commit comments