curl interop
[m6w6/ext-http] / tests / helper / dump.inc
1 <?php
2
3 function dump_headers($stream, array $headers) {
4 if (!is_resource($stream)) {
5 $stream = fopen("php://output", "w");
6 }
7 ksort($headers);
8 foreach ($headers as $key => $val) {
9 fprintf($stream, "%s: %s\n", $key, $val);
10 }
11 fprintf($stream, "\n");
12 }
13
14 function dump_message($stream, http\Message $msg, $parent = false) {
15 if (!is_resource($stream)) {
16 $stream = fopen("php://output", "w");
17 }
18 fprintf($stream, "%s\n", $msg->getInfo());
19 dump_headers($stream, $msg->getHeaders());
20 $msg->getBody()->toStream($stream);
21
22 if ($parent && ($msg = $msg->getParentMessage())) {
23 dump_message($stream, $msg, true);
24 }
25 }
26
27 function dump_responses($client, array $expect_cookie = []) {
28 while (($r = $client->getResponse())) {
29 dump_headers(null, $r->getHeaders());
30 if ($expect_cookie) {
31 $got_cookies = array_merge(...array_map(fn($c) => $c->getCookies(), $r->getCookies()));
32 if ($expect_cookie != $got_cookies) {
33 var_dump($expect_cookie, $got_cookies);
34 echo $r->toString(true);
35 }
36 }
37 }
38
39 }
40 ?>