PATH:
opt
/
alt
/
tests
/
alt-php81-pecl-http_4.2.6-4.el8
/
tests
--TEST-- client observers --SKIPIF-- <?php include "skipif.inc"; skip_client_test(); ?> --FILE-- <?php include "helper/server.inc"; echo "Test\n"; class Client extends http\Client { public $pi; } class ProgressObserver1 implements SplObserver { #[ReturnTypeWillChange] function update(SplSubject $c, $r = null) { if ($c->getProgressInfo($r)) $c->pi .= "-"; } } class ProgressObserver2 implements SplObserver { #[ReturnTypeWillChange] function update(SplSubject $c, $r = null) { if ($c->getProgressInfo($r)) $c->pi .= "."; } } class CallbackObserver implements SplObserver { public $callback; function __construct($callback) { $this->callback = $callback; } #[ReturnTypeWillChange] function update(SplSubject $c, $r = null) { call_user_func($this->callback, $c, $r); } } server("proxy.inc", function($port) { $client = new Client; $client->attach($o1 = new ProgressObserver1); $client->attach($o2 = new ProgressObserver2); $client->attach( $o3 = new CallbackObserver( function ($c, $r) { $p = (array) $c->getProgressInfo($r); if (!$p) { return; } var_dump(array_key_exists("started", $p)); var_dump(array_key_exists("finished", $p)); var_dump(array_key_exists("dlnow", $p)); var_dump(array_key_exists("ulnow", $p)); var_dump(array_key_exists("dltotal", $p)); var_dump(array_key_exists("ultotal", $p)); var_dump(array_key_exists("info", $p)); } ) ); $client->enqueue(new http\Client\Request("GET", "http://localhost:$port/"))->send(); var_dump(1 === preg_match("/(\.-)+/", $client->pi)); var_dump(3 === count($client->getObservers())); $client->detach($o1); var_dump(2 === count($client->getObservers())); $client->detach($o2); var_dump(1 === count($client->getObservers())); $client->detach($o3); var_dump(0 === count($client->getObservers())); }); ?> Done --EXPECTREGEX-- Test\n(bool\(true\)\n)+Done
[+]
..
[-] message004.phpt
[edit]
[-] url002.phpt
[edit]
[-] messagebody007.phpt
[edit]
[-] header007.phpt
[edit]
[-] clientrequest002.phpt
[edit]
[-] params010.phpt
[edit]
[-] client010.phpt
[edit]
[-] params004.phpt
[edit]
[-] client005.phpt
[edit]
[-] bug61444.phpt
[edit]
[-] urlparser002.phpt
[edit]
[-] params009.phpt
[edit]
[-] bug69313.phpt
[edit]
[-] cookie007.phpt
[edit]
[-] urlparser010.phpt
[edit]
[-] params006.phpt
[edit]
[-] bug69076.phpt
[edit]
[-] params002.phpt
[edit]
[-] urlparser011.phpt
[edit]
[-] gh-issue11.phpt
[edit]
[-] header005.phpt
[edit]
[-] message005.phpt
[edit]
[-] client026.phpt
[edit]
[-] gh-issue92.phpt
[edit]
[-] filterchunked.phpt
[edit]
[-] params017.phpt
[edit]
[-] message009.phpt
[edit]
[-] headerparser003.phpt
[edit]
[-] params015.phpt
[edit]
[-] header002.phpt
[edit]
[-] etag001.phpt
[edit]
[-] client023.phpt
[edit]
[-] client025.phpt
[edit]
[-] urlparser013.phpt
[edit]
[-] messagebody009.phpt
[edit]
[-] serialize001.phpt
[edit]
[-] messagebody002.phpt
[edit]
[-] filterbrotli.phpt
[edit]
[-] bug67932.phpt
[edit]
[-] client002.phpt
[edit]
[-] messagebody003.phpt
[edit]
[-] message012.phpt
[edit]
[-] header008.phpt
[edit]
[-] urlparser005.phpt
[edit]
[-] params016.phpt
[edit]
[-] cookie006.phpt
[edit]
[-] cookie010.phpt
[edit]
[-] cookie009.phpt
[edit]
[-] urlparser009.phpt
[edit]
[-] client007.phpt
[edit]
[-] gh-issue42.phpt
[edit]
[-] message015.phpt
[edit]
[-] headerparser002.phpt
[edit]
[-] querystring001_a.phpt
[edit]
[-] querystring003.phpt
[edit]
[-] url004.phpt
[edit]
[-] cookie003.phpt
[edit]
[-] client001.phpt
[edit]
[-] client014.phpt
[edit]
[-] urlparser003.phpt
[edit]
[-] urlparser007.phpt
[edit]
[-] urlparser006.phpt
[edit]
[-] urlparser004.phpt
[edit]
[-] params003.phpt
[edit]
[-] client017.phpt
[edit]
[-] version001.phpt
[edit]
[-] message003.phpt
[edit]
[-] clientrequest001.phpt
[edit]
[-] cookie004.phpt
[edit]
[-] params007.phpt
[edit]
[-] header001.phpt
[edit]
[-] client020.phpt
[edit]
[-] skipif.inc
[edit]
[-] urlparser001.phpt
[edit]
[-] header003.phpt
[edit]
[-] client009.phpt
[edit]
[-] client022.phpt
[edit]
[-] messagebody010.phpt
[edit]
[-] client032.phpt
[edit]
[-] params008.phpt
[edit]
[-] headerparser001.phpt
[edit]
[-] bug73055.phpt
[edit]
[-] client004.phpt
[edit]
[-] info002.phpt
[edit]
[-] info001.phpt
[edit]
[-] params001.phpt
[edit]
[-] params013.phpt
[edit]
[+]
data
[-] messagebody006.phpt
[edit]
[-] message016.phpt
[edit]
[-] url003.phpt
[edit]
[-] messageparser001.phpt
[edit]
[-] bug69000.phpt
[edit]
[-] clientrequest003.phpt
[edit]
[-] header009.phpt
[edit]
[-] message011.phpt
[edit]
[-] messageparser002.phpt
[edit]
[-] urlparser008.phpt
[edit]
[-] client012.phpt
[edit]
[-] cookie002.phpt
[edit]
[-] client013.phpt
[edit]
[-] urlparser012.phpt
[edit]
[-] client019.phpt
[edit]
[-] message010.phpt
[edit]
[+]
helper
[-] client003.phpt
[edit]
[-] params005.phpt
[edit]
[-] messagebody008.phpt
[edit]
[-] client011.phpt
[edit]
[-] client006.phpt
[edit]
[-] cookie011.phpt
[edit]
[-] cookie005.phpt
[edit]
[-] clientresponse002.phpt
[edit]
[-] querystring002.phpt
[edit]
[-] bug66388.phpt
[edit]
[-] messagebody004.phpt
[edit]
[-] phpinfo.phpt
[edit]
[-] params012.phpt
[edit]
[-] gh-issue63.phpt
[edit]
[-] message007.phpt
[edit]
[-] gh-issue50.phpt
[edit]
[-] clientrequest004.phpt
[edit]
[-] clientresponse001.phpt
[edit]
[-] url001.phpt
[edit]
[-] message013.phpt
[edit]
[-] cookie008.phpt
[edit]
[-] header004.phpt
[edit]
[-] message014.phpt
[edit]
[-] params011.phpt
[edit]
[-] client031.phpt
[edit]
[-] cookie012.phpt
[edit]
[-] client029.phpt
[edit]
[-] client024.phpt
[edit]
[-] url005.phpt
[edit]
[-] clientresponse003.phpt
[edit]
[-] messagebody005.phpt
[edit]
[-] messagebody001.phpt
[edit]
[-] cookie001.phpt
[edit]
[-] params014.phpt
[edit]
[-] bug69357.phpt
[edit]
[-] message001.phpt
[edit]
[-] header006.phpt
[edit]