Merge branch 'v2.6.x'
[m6w6/ext-http] / tests / client021.phpt
index 1335aaa8ebe80bd9f0c068ea4e3921a1d54b229a..ef649093e077d243b11379f2df031d4581155478 100644 (file)
 --TEST--
 client cookies
 --SKIPIF--
-<?php 
+<?php
 include "skipif.inc";
 skip_client_test();
 ?>
 --FILE--
-<?php 
+<?php
 
 include "helper/server.inc";
 
 echo "Test\n";
 
+function dump($f) {
+       return;
+       readfile($f);
+}
+
+function cookies($client) {
+       foreach ($client->getResponse()->getCookies() as $cookie) {
+               echo trim($cookie), "\n";
+       }
+}
+
 $tmpfile = tempnam(sys_get_temp_dir(), "cookie.");
 $request = new http\Client\Request("GET", "http://localhost");
-$request->setOptions(array("cookiestore" => $tmpfile));
 
-server("cookie.inc", function($port) use($request) {
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client;
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client;
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+server("cookie.inc", function($port) use($request, $tmpfile) {
        $request->setOptions(array("port" => $port));
        $client = new http\Client;
-       echo $client->requeue($request)->send()->getResponse();
-       echo $client->requeue($request)->send()->getResponse();
-       echo $client->requeue($request)->send()->getResponse();
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
 });
 
-server("cookie.inc", function($port) use($request) {
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client("curl", "test");
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client("curl", "test");
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client("curl", "test");
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+
+$request->setOptions(array("cookiestore" => $tmpfile));
+
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client;
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+server("cookie.inc", function($port) use($request, $tmpfile) {
        $request->setOptions(array("port" => $port));
        $client = new http\Client;
-       echo $client->requeue($request)->send()->getResponse();
-       echo $client->requeue($request)->send()->getResponse();
-       echo $client->requeue($request)->send()->getResponse();
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
 });
 
-server("cookie.inc", function($port) use($request) {
+server("cookie.inc", function($port) use($request, $tmpfile) {
        $request->setOptions(array("port" => $port, "cookiesession" => true));
        $client = new http\Client;
-       echo $client->requeue($request)->send()->getResponse();
-       echo $client->requeue($request)->send()->getResponse();
-       echo $client->requeue($request)->send()->getResponse();
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
 });
 
-server("cookie.inc", function($port) use($request) {
+server("cookie.inc", function($port) use($request, $tmpfile) {
        $request->setOptions(array("port" => $port, "cookiesession" => false));
        $client = new http\Client;
-       echo $client->requeue($request)->send()->getResponse();
-       echo $client->requeue($request)->send()->getResponse();
-       echo $client->requeue($request)->send()->getResponse();
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
 });
 
+
+(new http\Client("curl", "test"))->configure(["share_cookies" => false]);
+$request->setOptions(["cookiestore" => null]);
+
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client("curl", "test");
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client("curl", "test");
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+server("cookie.inc", function($port) use($request, $tmpfile) {
+       $request->setOptions(array("port" => $port));
+       $client = new http\Client("curl", "test");
+       cookies($client->requeue($request)->send());
+dump($tmpfile);
+});
+
+
 unlink($tmpfile);
 
 ?>
 ===DONE===
 --EXPECT--
 Test
-HTTP/1.1 200 OK
-Set-Cookie: counter=1;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=2;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=3;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=4;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=5;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=6;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=1;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=1;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=1;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=2;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=3;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
-HTTP/1.1 200 OK
-Set-Cookie: counter=4;
-Etag: ""
-X-Original-Transfer-Encoding: chunked
+counter=1;
+counter=1;
+counter=1;
+counter=1;
+counter=2;
+counter=3;
+counter=1;
+counter=2;
+counter=3;
+counter=4;
+counter=5;
+counter=6;
+counter=1;
+counter=1;
+counter=1;
+counter=2;
+counter=3;
+counter=4;
+counter=1;
+counter=1;
+counter=1;
 ===DONE===