prepare v4.2.5
[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(function($c) {
32 return $c->getCookies();
33 }, $r->getCookies()));
34 if ($expect_cookie != $got_cookies) {
35 var_dump($expect_cookie, $got_cookies);
36 echo $r->toString(true);
37 }
38 }
39 }
40
41 }
42 ?>