curl interop
[m6w6/ext-http] / tests / helper / dump.inc
index 5f5f367235a5956ca3b5ca658280c309ec477db4..5612d06e606eca70e860e9d168ee1c55cff06f07 100644 (file)
@@ -1,16 +1,22 @@
 <?php
 
-function dump_message($stream, http\Message $msg, $parent = false) {
+function dump_headers($stream, array $headers) {
        if (!is_resource($stream)) {
                $stream = fopen("php://output", "w");
        }
-       fprintf($stream, "%s\n", $msg->getInfo());
-       $headers = $msg->getHeaders();
        ksort($headers);
        foreach ($headers as $key => $val) {
                fprintf($stream, "%s: %s\n", $key, $val);
        }
        fprintf($stream, "\n");
+}
+
+function dump_message($stream, http\Message $msg, $parent = false) {
+       if (!is_resource($stream)) {
+               $stream = fopen("php://output", "w");
+       }
+       fprintf($stream, "%s\n", $msg->getInfo());
+       dump_headers($stream, $msg->getHeaders());
        $msg->getBody()->toStream($stream);
        
        if ($parent && ($msg = $msg->getParentMessage())) {
@@ -18,4 +24,17 @@ function dump_message($stream, http\Message $msg, $parent = false) {
        }
 }
 
-?>
\ No newline at end of file
+function dump_responses($client, array $expect_cookie = []) {
+       while (($r = $client->getResponse())) {
+               dump_headers(null, $r->getHeaders());
+               if ($expect_cookie) {
+                       $got_cookies = array_merge(...array_map(fn($c) => $c->getCookies(), $r->getCookies()));
+                       if ($expect_cookie != $got_cookies) {
+                               var_dump($expect_cookie, $got_cookies);
+                               echo $r->toString(true);
+                       }
+               }
+       }
+
+}
+?>