Skip to content

Commit 1010614

Browse files
committed
test(client): refactor client helper macro to handle options better
1 parent 842c655 commit 1010614

File tree

1 file changed

+20
-124
lines changed

1 file changed

+20
-124
lines changed

tests/client.rs

Lines changed: 20 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -35,111 +35,9 @@ macro_rules! test {
3535
expected: $server_expected:expr,
3636
reply: $server_reply:expr,
3737
client:
38-
request: {$(
39-
$c_req_prop:ident: $c_req_val: tt,
40-
)*},
41-
42-
response:
43-
status: $client_status:ident,
44-
headers: { $($response_header_name:expr => $response_header_val:expr,)* },
45-
body: $response_body:expr,
46-
) => (
47-
test! {
48-
name: $name,
49-
server:
50-
expected: $server_expected,
51-
reply: $server_reply,
52-
client:
53-
set_host: true,
54-
request: {$(
55-
$c_req_prop: $c_req_val,
56-
)*},
57-
58-
response:
59-
status: $client_status,
60-
headers: { $($response_header_name => $response_header_val,)* },
61-
body: $response_body,
62-
}
63-
);
64-
(
65-
name: $name:ident,
66-
server:
67-
expected: $server_expected:expr,
68-
reply: $server_reply:expr,
69-
client:
70-
set_host: $set_host:expr,
71-
request: {$(
72-
$c_req_prop:ident: $c_req_val:tt,
73-
)*},
74-
75-
response:
76-
status: $client_status:ident,
77-
headers: { $($response_header_name:expr => $response_header_val:expr,)* },
78-
body: $response_body:expr,
79-
) => (
80-
test! {
81-
name: $name,
82-
server:
83-
expected: $server_expected,
84-
reply: $server_reply,
85-
client:
86-
set_host: $set_host,
87-
title_case_headers: false,
88-
request: {$(
89-
$c_req_prop: $c_req_val,
90-
)*},
91-
92-
response:
93-
status: $client_status,
94-
headers: { $($response_header_name => $response_header_val,)* },
95-
body: $response_body,
96-
}
97-
);
98-
(
99-
name: $name:ident,
100-
server:
101-
expected: $server_expected:expr,
102-
reply: $server_reply:expr,
103-
client:
104-
set_host: $set_host:expr,
105-
title_case_headers: $title_case_headers:expr,
106-
request: {$(
107-
$c_req_prop:ident: $c_req_val:tt,
108-
)*},
109-
110-
response:
111-
status: $client_status:ident,
112-
headers: { $($response_header_name:expr => $response_header_val:expr,)* },
113-
body: $response_body:expr,
114-
) => (
115-
test! {
116-
name: $name,
117-
server:
118-
expected: $server_expected,
119-
reply: $server_reply,
120-
client:
121-
set_host: $set_host,
122-
title_case_headers: $title_case_headers,
123-
allow_h09_responses: false,
124-
request: {$(
125-
$c_req_prop: $c_req_val,
126-
)*},
127-
128-
response:
129-
status: $client_status,
130-
headers: { $($response_header_name => $response_header_val,)* },
131-
body: $response_body,
132-
}
133-
);
134-
(
135-
name: $name:ident,
136-
server:
137-
expected: $server_expected:expr,
138-
reply: $server_reply:expr,
139-
client:
140-
set_host: $set_host:expr,
141-
title_case_headers: $title_case_headers:expr,
142-
allow_h09_responses: $allow_h09_responses:expr,
38+
$(options: {$(
39+
$c_opt_prop:ident: $c_opt_val:tt,
40+
)*},)?
14341
request: {$(
14442
$c_req_prop:ident: $c_req_val:tt,
14543
)*},
@@ -162,9 +60,9 @@ macro_rules! test {
16260
expected: $server_expected,
16361
reply: $server_reply,
16462
client:
165-
set_host: $set_host,
166-
title_case_headers: $title_case_headers,
167-
allow_h09_responses: $allow_h09_responses,
63+
$(options: {$(
64+
$c_opt_prop: $c_opt_val,
65+
)*},)?
16866
request: {$(
16967
$c_req_prop: $c_req_val,
17068
)*},
@@ -217,9 +115,6 @@ macro_rules! test {
217115
expected: $server_expected,
218116
reply: $server_reply,
219117
client:
220-
set_host: true,
221-
title_case_headers: false,
222-
allow_h09_responses: false,
223118
request: {$(
224119
$c_req_prop: $c_req_val,
225120
)*},
@@ -242,9 +137,9 @@ macro_rules! test {
242137
expected: $server_expected:expr,
243138
reply: $server_reply:expr,
244139
client:
245-
set_host: $set_host:expr,
246-
title_case_headers: $title_case_headers:expr,
247-
allow_h09_responses: $allow_h09_responses:expr,
140+
$(options: {$(
141+
$c_opt_prop:ident: $c_opt_val:tt,
142+
)*},)?
248143
request: {$(
249144
$c_req_prop:ident: $c_req_val:tt,
250145
)*},
@@ -255,9 +150,7 @@ macro_rules! test {
255150

256151
let connector = ::hyper::client::HttpConnector::new();
257152
let client = Client::builder()
258-
.set_host($set_host)
259-
.http1_title_case_headers($title_case_headers)
260-
.http09_responses($allow_h09_responses)
153+
$($(.$c_opt_prop($c_opt_val))*)?
261154
.build(connector);
262155

263156
#[allow(unused_assignments, unused_mut)]
@@ -1086,7 +979,9 @@ test! {
1086979
",
1087980

1088981
client:
1089-
set_host: false,
982+
options: {
983+
set_host: false,
984+
},
1090985
request: {
1091986
method: GET,
1092987
url: "http://{addr}/no-host/{addr}",
@@ -1114,8 +1009,9 @@ test! {
11141009
",
11151010

11161011
client:
1117-
set_host: true,
1118-
title_case_headers: true,
1012+
options: {
1013+
http1_title_case_headers: true,
1014+
},
11191015
request: {
11201016
method: GET,
11211017
url: "http://{addr}/",
@@ -1191,15 +1087,15 @@ test! {
11911087
server:
11921088
expected: "\
11931089
GET / HTTP/1.1\r\n\
1194-
Host: {addr}\r\n\
1090+
host: {addr}\r\n\
11951091
\r\n\
11961092
",
11971093
reply: "Mmmmh, baguettes.",
11981094

11991095
client:
1200-
set_host: true,
1201-
title_case_headers: true,
1202-
allow_h09_responses: true,
1096+
options: {
1097+
http09_responses: true,
1098+
},
12031099
request: {
12041100
method: GET,
12051101
url: "http://{addr}/",

0 commit comments

Comments
 (0)