| Current File : /home/mmdealscpanel/yummmdeals.com/alt-php83-pecl-http_4.2.6-4.el8.tar |
tests/message010.phpt 0000644 00000000541 15041223674 0010454 0 ustar 00 --TEST--
message body
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$m = new http\Message;
$body = new http\Message\Body;
$body->append("foo");
$m->addBody($body);
$body = new http\Message\Body;
$body->append("bar");
$m->addBody($body);
var_dump("foobar" === (string) $m->getBody());
?>
Done
--EXPECT--
Test
bool(true)
Done
tests/client023.phpt 0000644 00000001366 15041223674 0010320 0 ustar 00 --TEST--
client available options and configuration
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
?>
--FILE--
<?php
echo "Test\n";
$client = new http\Client;
if (($opt = $client->getOptions())) {
var_dump($options);
}
$client->setOptions($avail = $client->getAvailableOptions());
$opt = $client->getOptions();
foreach ($avail as $k => $v) {
if (is_array($v)) {
$oo = $opt[$k];
foreach ($v as $kk => $vv) {
if (isset($vv) && $oo[$kk] !== $vv) {
var_dump(array($kk => array($vv, $oo[$kk])));
}
}
} else if (isset($v) && $opt[$k] !== $v) {
var_dump(array($k => array($v, $opt[$k])));
}
}
var_dump($client === $client->configure($client->getAvailableConfiguration()));
?>
===DONE===
--EXPECT--
Test
bool(true)
===DONE===
tests/url004.phpt 0000644 00000000506 15041223675 0007637 0 ustar 00 --TEST--
url as string
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$u = "http://user:pass@www.example.com:8080/path/file.ext".
"?foo=bar&more[]=1&more[]=2#hash";
$url = new http\Url($u);
var_dump((string) $url == (string) new http\Url((string) $url));
?>
DONE
--EXPECT--
Test
bool(true)
DONE
tests/version001.phpt 0000644 00000000724 15041223675 0010521 0 ustar 00 --TEST--
version parse error
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
error_reporting(E_ALL);
$m = new http\Message;
try {
$m->setHttpVersion("1-1");
$m->setHttpVersion("one.one");
} catch (http\Exception $e) {
echo $e->getMessage(),"\n";
}
?>
--EXPECTF--
Notice: http\Message::setHttpVersion(): Non-standard version separator '-' in HTTP protocol version '1-1' in %s
http\Message::setHttpVersion(): Could not parse HTTP protocol version 'one.one'
tests/header008.phpt 0000644 00000000731 15041223675 0010271 0 ustar 00 --TEST--
header params
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$header = new http\Header("Cache-control", "public, must-revalidate, max-age=0");
var_dump(
array(
"public" => array("value" => true, "arguments" => array()),
"must-revalidate" => array("value" => true, "arguments" => array()),
"max-age" => array("value" => "0", "arguments" => array()),
) === $header->getParams()->params
);
?>
Done
--EXPECT--
Test
bool(true)
Done
tests/info001.phpt 0000644 00000003046 15041223675 0007767 0 ustar 00 --TEST--
invalid HTTP info
--SKIPIF--
<?php include "skipif.inc"; ?>
--INI--
zend.exception_ignore_args=off
--FILE--
<?php
try {
var_dump(new http\Message("GET HTTP/1.1"));
} catch (Exception $e) {
echo $e, "\n";
}
try {
var_dump(new http\Message("GET HTTP/1.123"));
} catch (Exception $e) {
echo $e, "\n";
}
try {
var_dump(new http\Message("GETHTTP/1.1"));
} catch (Exception $e) {
echo $e, "\n";
}
var_dump(new http\Message("GET / HTTP/1.1"));
?>
DONE
--EXPECTF--
http\Exception\BadMessageException: http\Message::__construct(): Failed to parse headers: unexpected character '\040' at pos 3 of 'GET HTTP/1.1' in %s
Stack trace:
#0 %s: http\Message->__construct('GET HTTP/1.1')
#1 {main}
http\Exception\BadMessageException: http\Message::__construct(): Failed to parse headers: unexpected character '\040' at pos 3 of 'GET HTTP/1.123' in %s
Stack trace:
#0 %s: http\Message->__construct('GET HTTP/1.123')
#1 {main}
http\Exception\BadMessageException: http\Message::__construct(): Failed to parse headers: unexpected character '\057' at pos 7 of 'GETHTTP/1.1' %s
Stack trace:
#0 %s: http\Message->__construct('GETHTTP/1.1')
#1 {main}
object(http\Message)#%d (9) {
["type":protected]=>
int(1)
["body":protected]=>
NULL
["requestMethod":protected]=>
string(3) "GET"
["requestUrl":protected]=>
string(1) "/"
["responseStatus":protected]=>
string(0) ""
["responseCode":protected]=>
int(0)
["httpVersion":protected]=>
string(3) "1.1"
["headers":protected]=>
array(0) {
}
["parentMessage":protected]=>
NULL
}
DONE
tests/cookie006.phpt 0000644 00000001404 15041223675 0010306 0 ustar 00 --TEST--
cookies expire
--SKIPIF--
<?php
include "skipif.inc";
?>
--INI--
date.timezone=UTC
--FILE--
<?php
echo "Test\n";
$c = new http\Cookie("this=expires; expires=Tue, 24 Jan 2012 10:35:32 +0100");
var_dump($c->getCookie("this"));
var_dump($c->getExpires());
$o = clone $c;
$t = time();
$o->setExpires();
var_dump(-1 === $o->getExpires());
var_dump(-1 != $c->getExpires());
$o->setExpires($t);
var_dump($t === $o->getExpires());
var_dump($t != $c->getExpires());
var_dump(
sprintf(
"this=expires; expires=%s; ",
date_create("@$t")
->setTimezone(new DateTimezone("UTC"))
->format("D, d M Y H:i:s \\G\\M\\T")
) === $o->toString()
);
?>
DONE
--EXPECT--
Test
string(7) "expires"
int(1327397732)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
DONE
tests/client006.phpt 0000644 00000001523 15041223675 0010315 0 ustar 00 --TEST--
client response callback + dequeue
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
?>
--FILE--
<?php
include "helper/server.inc";
echo "Test\n";
function response($response) {
echo "R\n";
if (!($response instanceof http\Client\Response)) {
var_dump($response);
}
/* automatically dequeue */
return true;
}
server("proxy.inc", function($port) {
$request = new http\Client\Request("GET", "http://localhost:$port");
foreach (http\Client::getAvailableDrivers() as $driver) {
$client = new http\Client($driver);
for ($i=0; $i < 2; ++ $i) {
$client->enqueue($request, "response");
$client->send();
try {
$client->dequeue($request);
} catch (Exception $e) {
echo $e->getMessage(),"\n";
}
}
}
});
?>
Done
--EXPECTREGEX--
Test
(?:(?:R
Failed to dequeue request; request not in queue
)+)+Done
tests/urlparser007.phpt 0000644 00000002366 15041223675 0011065 0 ustar 00 --TEST--
url parser multibyte/utf-8/idna
--SKIPIF--
<?php
include "skipif.inc";
if (!defined("http\\Url::PARSE_TOIDN_2003")) {
die("skip need http\\Url::PARSE_TOIDN_2003 support");
}
?>
--FILE--
<?php
echo "Test\n";
$urls = array(
"s\xc3\xa7heme:",
"s\xc3\xa7heme://h\xc6\x9fst",
"s\xc3\xa7heme://h\xc6\x9fst:23/päth/öf/fıle"
);
foreach ($urls as $url) {
printf("\n%s\n", $url);
var_dump(new http\Url($url, null, http\Url::PARSE_MBUTF8|http\Url::PARSE_TOIDN_2003));
}
?>
DONE
--EXPECTF--
Test
sçheme:
object(http\Url)#%d (8) {
["scheme"]=>
string(7) "sçheme"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
sçheme://hƟst
object(http\Url)#%d (8) {
["scheme"]=>
string(7) "sçheme"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(11) "xn--hst-kwb"
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
sçheme://hƟst:23/päth/öf/fıle
object(http\Url)#%d (8) {
["scheme"]=>
string(7) "sçheme"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(11) "xn--hst-kwb"
["port"]=>
int(23)
["path"]=>
string(16) "/päth/öf/fıle"
["query"]=>
NULL
["fragment"]=>
NULL
}
DONE
tests/client019.phpt 0000644 00000002052 15041223675 0010317 0 ustar 00 --TEST--
client proxy - send proxy headers for a proxy request
--SKIPIF--
<?php
include "skipif.inc";
skip_online_test();
skip_client_test();
$client = new http\Client("curl");
array_key_exists("proxyheader", $client->getAvailableOptions())
or die("skip need libcurl with CURLOPT_PROXYHEADER support\n");
?>
--FILE--
<?php
include "helper/server.inc";
echo "Test\n";
server("proxy.inc", function($port, $stdin, $stdout, $stderr) {
echo "Server on port $port\n";
$c = new http\Client;
$r = new http\Client\Request("GET", "http://www.example.com/");
$r->setOptions(array(
"timeout" => 10,
"proxytunnel" => true,
"proxyheader" => array("Hello" => "there!"),
"proxyhost" => "localhost",
"proxyport" => $port,
));
try {
$c->enqueue($r)->send();
} catch (Exception $e) {
echo $e;
}
echo $c->getResponse()->getBody();
});
?>
===DONE===
--EXPECTF--
Test
Server on port %d
CONNECT www.example.com:80 HTTP/1.1
Hello: there!
Host: www.example.com:80
%r(Proxy-Connection: Keep-Alive
)?%rUser-Agent: PECL_HTTP/%s PHP/%s libcurl/%s
===DONE===
tests/params017.phpt 0000644 00000002612 15041223675 0010324 0 ustar 00 --TEST--
header params rfc5988
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$link = <<<EOF
Link: </TheBook/chapter2>;
rel="previous"; title*=UTF-8'de'letztes%20Kapitel,
</TheBook/chapter4>;
rel="next"; title*=UTF-8'de'n%c3%a4chstes%20Kapitel
EOF;
$p = current(http\Header::parse($link, "http\\Header"))->getParams(
http\Params::DEF_PARAM_SEP,
http\Params::DEF_ARG_SEP,
http\Params::DEF_VAL_SEP,
http\Params::PARSE_RFC5987 | http\Params::PARSE_RFC5988 | http\Params::PARSE_ESCAPED
);
var_dump($p->params);
var_dump((string)$p);
?>
===DONE===
--EXPECTF--
Test
array(2) {
["/TheBook/chapter2"]=>
array(2) {
["value"]=>
bool(true)
["arguments"]=>
array(2) {
["rel"]=>
string(8) "previous"
["*rfc5987*"]=>
array(1) {
["title"]=>
array(1) {
["de"]=>
string(15) "letztes Kapitel"
}
}
}
}
["/TheBook/chapter4"]=>
array(2) {
["value"]=>
bool(true)
["arguments"]=>
array(2) {
["rel"]=>
string(4) "next"
["*rfc5987*"]=>
array(1) {
["title"]=>
array(1) {
["de"]=>
string(17) "nächstes Kapitel"
}
}
}
}
}
string(139) "</TheBook/chapter2>;rel="previous";title*=utf-8'de'letztes%20Kapitel,</TheBook/chapter4>;rel="next";title*=utf-8'de'n%C3%A4chstes%20Kapitel"
===DONE===
tests/client012.phpt 0000644 00000002735 15041223675 0010320 0 ustar 00 --TEST--
client ssl
--SKIPIF--
<?php
include "skipif.inc";
skip_online_test();
skip_client_test();
skip_curl_test("7.34.0");
if (0 === strpos(http\Client\Curl\Versions\CURL, "7.87.0")) {
die("skip SSL bug in libcurl-7.87\n");
}
if (strpos(http\Client\Curl\Versions\SSL, "SecureTransport") !== false)
die("skip SecureTransport\n");
?>
--FILE--
<?php
echo "Test\n";
$client = new http\Client;
$client->setSslOptions(array("verifypeer" => true));
$client->addSslOptions(array("verifyhost" => 2));
var_dump(
array(
"verifypeer" => true,
"verifyhost" => 2,
) === $client->getSslOptions()
);
$client->attach($observer = new class implements SplObserver {
public $data = [];
#[ReturnTypeWillChange]
function update(SplSubject $client, $req = null, $progress = null) {
$ti = $client->getTransferInfo($req);
if (isset($ti->tls_session["internals"])) {
foreach ((array) $ti->tls_session["internals"] as $key => $val) {
if (!isset($this->data[$key]) || $this->data[$key] < $val) {
$this->data[$key] = $val;
}
}
}
}
});
$client->enqueue($req = new http\Client\Request("GET", "https://twitter.com/"));
$client->send();
switch ($client->getTransferInfo($req)->tls_session["backend"]) {
case "openssl":
case "gnutls":
if (count($observer->data) < 1) {
printf("%s: failed count(ssl.internals) >= 1\n", $client->getTransferInfo($req)->tls_session["backend"]);
var_dump($observer);
exit;
}
break;
default:
break;
}
?>
Done
--EXPECTF--
Test
bool(true)
Done
tests/messagebody002.phpt 0000644 00000000346 15041223675 0011337 0 ustar 00 --TEST--
message body append
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$temp = new http\Message\Body();
$temp->append("yes");
var_dump((string) $temp);
?>
DONE
--EXPECT--
Test
string(3) "yes"
DONE
tests/urlparser002.phpt 0000644 00000004545 15041223675 0011061 0 ustar 00 --TEST--
url parser with paths
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$urls = array(
"s:a/",
"ss:aa/",
"s:/a/",
"ss:/aa/",
"s://a/",
"s://h/a",
"ss://hh/aa",
"s:///a/b",
"ss:///aa/bb",
);
foreach ($urls as $url) {
printf("\n%s\n", $url);
var_dump(new http\Url($url, null, 0));
}
?>
DONE
--EXPECTF--
Test
s:a/
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(2) "a/"
["query"]=>
NULL
["fragment"]=>
NULL
}
ss:aa/
object(http\Url)#%d (8) {
["scheme"]=>
string(2) "ss"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(3) "aa/"
["query"]=>
NULL
["fragment"]=>
NULL
}
s:/a/
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(3) "/a/"
["query"]=>
NULL
["fragment"]=>
NULL
}
ss:/aa/
object(http\Url)#%d (8) {
["scheme"]=>
string(2) "ss"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(4) "/aa/"
["query"]=>
NULL
["fragment"]=>
NULL
}
s://a/
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(1) "a"
["port"]=>
NULL
["path"]=>
string(1) "/"
["query"]=>
NULL
["fragment"]=>
NULL
}
s://h/a
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(1) "h"
["port"]=>
NULL
["path"]=>
string(2) "/a"
["query"]=>
NULL
["fragment"]=>
NULL
}
ss://hh/aa
object(http\Url)#%d (8) {
["scheme"]=>
string(2) "ss"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(2) "hh"
["port"]=>
NULL
["path"]=>
string(3) "/aa"
["query"]=>
NULL
["fragment"]=>
NULL
}
s:///a/b
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(4) "/a/b"
["query"]=>
NULL
["fragment"]=>
NULL
}
ss:///aa/bb
object(http\Url)#%d (8) {
["scheme"]=>
string(2) "ss"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(6) "/aa/bb"
["query"]=>
NULL
["fragment"]=>
NULL
}
DONE
tests/params012.phpt 0000644 00000000441 15041223675 0010315 0 ustar 00 --TEST--
no args params
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$p = new http\Params;
$p["param"] = true;
var_dump("param" === $p->toString());
$p["param"] = false;
var_dump("param=0" === $p->toString());
?>
DONE
--EXPECT--
Test
bool(true)
bool(true)
DONE
tests/client029.phpt 0000644 00000005245 15041223675 0010327 0 ustar 00 --TEST--
client curl user handler
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
_ext("event");
?>
--FILE--
<?php
echo "Test\n";
class UserHandler implements http\Client\Curl\User
{
private $evbase;
private $client;
private $run;
private $ios = [];
private $timeout;
function __construct(http\Client $client, EventBase $evbase) {
$this->evbase = $evbase;
$this->client = $client;
}
function init($run) {
$this->run = $run;
}
function timer(int $timeout_ms) {
echo "T";
if (isset($this->timeout)) {
$this->timeout->add($timeout_ms/1000);
} else {
$this->timeout = Event::timer($this->evbase, function() {
if (!call_user_func($this->run, $this->client)) {
if ($this->timeout) {
$this->timeout->del();
$this->timeout = null;
}
}
});
$this->timeout->add($timeout_ms/1000);
}
}
function socket($socket, int $action) {
echo "S";
switch ($action) {
case self::POLL_NONE:
break;
case self::POLL_REMOVE:
if (isset($this->ios[(int) $socket])) {
echo "U";
$this->ios[(int) $socket]->del();
unset($this->ios[(int) $socket]);
}
break;
default:
$ev = 0;
if ($action & self::POLL_IN) {
$ev |= Event::READ;
}
if ($action & self::POLL_OUT) {
$ev |= Event::WRITE;
}
if (isset($this->ios[(int) $socket])) {
$this->ios[(int) $socket]->set($this->evbase,
$socket, $ev, $this->onEvent($socket));
} else {
$this->ios[(int) $socket] = new Event($this->evbase,
$socket, $ev, $this->onEvent($socket));
}
break;
}
}
function onEvent($socket) {
return function($watcher, $events) use($socket) {
$action = 0;
if ($events & Ev::READ) {
$action |= self::POLL_IN;
}
if ($events & Ev::WRITE) {
$action |= self::POLL_OUT;
}
if (!call_user_func($this->run, $this->client, $socket, $action)) {
if ($this->timeout) {
$this->timeout->del();
$this->timeout = null;
}
}
};
}
function once() {
throw new BadMethodCallException("this test uses EventBase::loop()");
}
function wait(int $timeout_ms = null) {
throw new BadMethodCallException("this test uses EventBase::loop()");
}
function send() {
throw new BadMethodCallException("this test uses EventBase::loop()");
}
}
include "helper/server.inc";
server("proxy.inc", function($port) {
$evbase = new EventBase;
$client = new http\Client;
$client->configure([
"use_eventloop" => new UserHandler($client, $evbase)
]);
$client->enqueue(new http\Client\Request("GET", "http://localhost:$port/"), function($r) {
var_dump($r->getResponseCode());
});
$evbase->loop();
});
?>
===DONE===
--EXPECTREGEX--
Test
T*[ST]+U+T*int\(200\)
===DONE===
tests/client005.phpt 0000644 00000001066 15041223675 0010316 0 ustar 00 --TEST--
client response callback
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
?>
--FILE--
<?php
include "helper/server.inc";
echo "Test\n";
server("proxy.inc", function($port) {
foreach (http\Client::getAvailableDrivers() as $driver) {
$client = new http\Client($driver);
$client->enqueue(new http\Client\Request("GET", "http://localhost:$port"), function($response) {
echo "R\n";
if (!($response instanceof http\Client\Response)) {
var_dump($response);
}
});
$client->send();
}
});
?>
Done
--EXPECTREGEX--
Test
(?:R
)+Done
tests/client004.phpt 0000644 00000001460 15041223675 0010313 0 ustar 00 --TEST--
client reset
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
?>
--FILE--
<?php
include "helper/server.inc";
echo "Test\n";
server("proxy.inc", function($port) {
$request = new http\Client\Request("GET", "http://localhost:$port");
foreach (http\Client::getAvailableDrivers() as $driver) {
$client = new http\Client($driver);
$client->enqueue($request)->send();
if (!($client->getResponse($request) instanceof http\Client\Response)) {
var_dump($client);
}
try {
$client->enqueue($request);
} catch (Exception $e) {
echo $e->getMessage(),"\n";
}
$client->reset();
if (($response = $client->getResponse())) {
var_dump($response);
}
$client->enqueue($request);
}
});
?>
Done
--EXPECTREGEX--
Test
(?:Failed to enqueue request; request already in queue
)+Done
tests/cookie005.phpt 0000644 00000002074 15041223675 0010311 0 ustar 00 --TEST--
cookies simple data
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$orig = new http\Cookie("key=value");
$copy = clone $orig;
$same = new http\Cookie($copy);
$even = new http\Cookie($same->toArray());
foreach (array($orig, $copy) as $c) {
var_dump($c->getCookie("key"));
var_dump($c->getExpires());
var_dump($c->getMaxAge());
var_dump($c->getFlags());
var_dump($c->getPath());
var_dump($c->getDomain());
var_dump($c->getExtras());
var_dump($c->getCookies());
var_dump($c->toString());
var_dump(
array (
"cookies" =>
array (
"key" => "value",
),
"extras" =>
array (
),
"flags" => 0,
"expires" => -1,
"path" => "",
"domain" => "",
"max-age" => -1,
) == $c->toArray()
);
}
?>
DONE
--EXPECT--
Test
string(5) "value"
int(-1)
int(-1)
int(0)
NULL
NULL
array(0) {
}
array(1) {
["key"]=>
string(5) "value"
}
string(11) "key=value; "
bool(true)
string(5) "value"
int(-1)
int(-1)
int(0)
NULL
NULL
array(0) {
}
array(1) {
["key"]=>
string(5) "value"
}
string(11) "key=value; "
bool(true)
DONE
tests/cookie010.phpt 0000644 00000001644 15041223675 0010307 0 ustar 00 --TEST--
cookies flags
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$c = new http\Cookie("icanhas=flags; secure; httpOnly");
var_dump(http\Cookie::SECURE === ($c->getFlags() & http\Cookie::SECURE));
var_dump(http\Cookie::HTTPONLY === ($c->getFlags() & http\Cookie::HTTPONLY));
$c->setFlags($c->getFlags() ^ http\Cookie::SECURE);
var_dump(!($c->getFlags() & http\Cookie::SECURE));
var_dump(http\Cookie::HTTPONLY === ($c->getFlags() & http\Cookie::HTTPONLY));
$c->setFlags($c->getFlags() ^ http\Cookie::HTTPONLY);
var_dump(!($c->getFlags() & http\Cookie::SECURE));
var_dump(!($c->getFlags() & http\Cookie::HTTPONLY));
var_dump("icanhas=flags; " === $c->toString());
$c->setFlags(http\Cookie::SECURE|http\Cookie::HTTPONLY);
var_dump("icanhas=flags; secure; httpOnly; " === $c->toString());
?>
DONE
--EXPECT--
Test
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
DONE
tests/params007.phpt 0000644 00000001102 15041223675 0010314 0 ustar 00 --TEST--
urlencoded params
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$s = "foo=b%22r&bar=b%22z&a%5B%5D%5B%5D=1";
$p = new http\Params($s, "&", "", "=", http\Params::PARSE_URLENCODED);
$c = array(
"foo" => array(
"value" => "b\"r",
"arguments" => array(),
),
"bar" => array(
"value" => "b\"z",
"arguments" => array(),
),
"a[][]" => array(
"value" => "1",
"arguments" => array(),
),
);
var_dump($c === $p->params);
var_dump("foo=b%22r&bar=b%22z&a%5B%5D%5B%5D=1" === (string) $p);
?>
DONE
--EXPECT--
Test
bool(true)
bool(true)
DONE
tests/bug61444.phpt 0000644 00000002176 15041223675 0007776 0 ustar 00 --TEST--
Bug #61444 (. become _ in query strings due to php_default_treat_data())
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
$url = 'http://www.example.com/foobar?bar.baz=blah&utm_source=google&utm_campaign=somethingelse&blat';
// Original
echo $url, PHP_EOL, PHP_EOL;
// Changing a parameter in the string
echo new http\Url($url, array('query' => 'utm_source=changed'), http\Url::JOIN_QUERY), PHP_EOL, PHP_EOL;
// Replacing the host
echo new http\Url($url, array('host' => 'www.google.com')), PHP_EOL, PHP_EOL;
// Generating a query string from scratch
echo new http\QueryString(array(
'bar.baz' => 'blah',
'utm_source' => 'google',
'utm_campaign' => 'somethingelse',
'blat' => null,
)), PHP_EOL, PHP_EOL;
?>
DONE
--EXPECT--
http://www.example.com/foobar?bar.baz=blah&utm_source=google&utm_campaign=somethingelse&blat
http://www.example.com/foobar?bar.baz=blah&utm_source=changed&utm_campaign=somethingelse&blat
http://www.google.com/foobar?bar.baz=blah&utm_source=google&utm_campaign=somethingelse&blat
bar.baz=blah&utm_source=google&utm_campaign=somethingelse
DONE
tests/header009.phpt 0000644 00000000712 15041223675 0010271 0 ustar 00 --TEST--
header params w/ args
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$header = new http\Header("Custom", '"foo" is "bar". "bar" is "bis" where "bis" is "where".');
var_dump(
array(
"foo" => array("value" => "bar", "arguments" => array()),
"bar" => array("value" => "bis", "arguments" => array("bis" => "where"))
) === $header->getParams(".", "where", "is")->params
);
?>
Done
--EXPECT--
Test
bool(true)
Done
tests/client020.phpt 0000644 00000001370 15041223675 0010311 0 ustar 00 --TEST--
client proxy - don't send proxy headers for a standard request
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
?>
--FILE--
<?php
include "helper/server.inc";
echo "Test\n";
server("proxy.inc", function($port, $stdin, $stdout, $stderr) {
echo "Server on port $port\n";
$c = new http\Client;
$r = new http\Client\Request("GET", "http://localhost:$port/");
$r->setOptions(array(
"timeout" => 3,
"proxyheader" => array("Hello" => "there!"),
));
try {
$c->enqueue($r)->send();
} catch (Exception $e) {
echo $e;
}
echo $c->getResponse()->getBody();
unset($r, $client);
});
?>
===DONE===
--EXPECTF--
Test
Server on port %d
GET / HTTP/1.1
Accept: */*
Host: localhost:%d
User-Agent: PECL_HTTP/%s PHP/%s libcurl/%s
===DONE===
tests/cookie002.phpt 0000644 00000000467 15041223676 0010313 0 ustar 00 --TEST--
cookies expire as date
--SKIPIF--
<?php
include "skipif.inc";
?>
--INI--
date.timezone=UTC
--FILE--
<?php
echo "Test\n";
$d = new DateTime;
$c = new http\Cookie(array("expires" => $d->format(DateTime::RFC1123)));
var_dump($d->format("U") == $c->getExpires());
?>
DONE
--EXPECT--
Test
bool(true)
DONE
tests/client026.phpt 0000644 00000001521 15041223676 0010316 0 ustar 00 --TEST--
client stream 128M
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
?>
--FILE--
<?php
include "helper/server.inc";
include "helper/dump.inc";
echo "Test\n";
server("proxy.inc", function($port) {
$client = new http\Client;
$request = new http\Client\Request("PUT", "http://localhost:$port");
$request->setContentType("application/octet-stream");
for ($i = 0, $data = str_repeat("a",1024); $i < 128*1024; ++$i) {
$request->getBody()->append($data);
}
$request->setOptions(array("timeout" => 10, "expect_100_timeout" => 0));
$client->enqueue($request);
$client->send();
dump_headers(null, $client->getResponse()->getHeaders());
});
?>
===DONE===
--EXPECTF--
Test
Accept-Ranges: bytes
Content-Length: %d
Etag: "%x"
Last-Modified: %s
X-Original-Transfer-Encoding: chunked
X-Request-Content-Length: 134217728
===DONE===
tests/headerparser001.phpt 0000644 00000002651 15041223676 0011503 0 ustar 00 --TEST--
header parser
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$headers = array(
"One: ","header\n",
"Two: header\n\tlines\n",
"Three",": header\n lines\n here\n",
"More: than one header\n",
"More: ", "than: ", "you: ", "expect\n",
"\n",
);
$states = array(-1=>"FAILURE",0=>"START","KEY","VALUE","VALUE_EX","HEADER_DONE","DONE");
$parser = new http\Header\Parser;
do {
$state = $parser->parse($part = array_shift($headers),
$headers ? 0 : http\Header\Parser::CLEANUP,
$result);
printf("%2\$-32s | %1\$s\n", $states[$state], addcslashes($part, "\r\n\t\0"));
} while ($headers && $state !== http\Header\Parser::STATE_FAILURE);
var_dump($result);
?>
===DONE===
--EXPECT--
Test
One: | VALUE
header\n | VALUE_EX
Two: header\n\tlines\n | VALUE_EX
Three | KEY
: header\n lines\n here\n | VALUE_EX
More: than one header\n | VALUE_EX
More: | VALUE
than: | VALUE
you: | VALUE
expect\n | VALUE_EX
\n | DONE
array(4) {
["One"]=>
string(6) "header"
["Two"]=>
string(12) "header lines"
["Three"]=>
string(17) "header lines here"
["More"]=>
array(2) {
[0]=>
string(15) "than one header"
[1]=>
string(17) "than: you: expect"
}
}
===DONE===
tests/clientresponse003.phpt 0000644 00000001157 15041223676 0012075 0 ustar 00 --TEST--
client response transfer info
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
?>
--FILE--
<?php
include "helper/server.inc";
echo "Test\n";
server("proxy.inc", function($port) {
$request = new http\Client\Request("GET", "http://localhost:$port");
foreach (http\Client::getAvailableDrivers() as $driver) {
$client = new http\Client($driver);
$response = $client->enqueue($request)->send()->getResponse();
var_dump($response->getTransferInfo("response_code"));
var_dump(count((array)$response->getTransferInfo()));
}
});
?>
Done
--EXPECTREGEX--
Test
(?:int\([1-5]\d\d\)
int\(\d\d\)
)+Done
tests/querystring003.phpt 0000644 00000000424 15041223676 0011430 0 ustar 00 --TEST--
querystring offset set
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$qs = new http\QueryString("foo=bar&bar=baz");
echo $qs,"\n";
$qs["foo"] = "baz";
echo $qs,"\n";
?>
===DONE===
--EXPECT--
Test
foo=bar&bar=baz
bar=baz&foo=baz
===DONE===
tests/urlparser005.phpt 0000644 00000002140 15041223676 0011052 0 ustar 00 --TEST--
url parser multibyte/utf-8
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$urls = array(
"s\xc3\xa7heme:",
"s\xc3\xa7heme://h\xc6\x9fst",
"s\xc3\xa7heme://h\xc6\x9fst:23/päth/öf/fıle"
);
foreach ($urls as $url) {
printf("\n%s\n", $url);
var_dump(new http\Url($url, null, http\Url::PARSE_MBUTF8));
}
?>
DONE
--EXPECTF--
Test
sçheme:
object(http\Url)#%d (8) {
["scheme"]=>
string(7) "sçheme"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
sçheme://hƟst
object(http\Url)#%d (8) {
["scheme"]=>
string(7) "sçheme"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(5) "hƟst"
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
sçheme://hƟst:23/päth/öf/fıle
object(http\Url)#%d (8) {
["scheme"]=>
string(7) "sçheme"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(5) "hƟst"
["port"]=>
int(23)
["path"]=>
string(16) "/päth/öf/fıle"
["query"]=>
NULL
["fragment"]=>
NULL
}
DONE
tests/client022.phpt 0000644 00000001374 15041223676 0010320 0 ustar 00 --TEST--
client http2
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
skip_http2_test();
?>
--FILE--
<?php
include "helper/server.inc";
echo "Test\n";
nghttpd(function($port) {
$client = new http\Client;
$client->setOptions([
"protocol" => http\Client\Curl\HTTP_VERSION_2_0,
"ssl" => [
"cainfo" => __DIR__."/helper/http2.crt",
"verifypeer" => false, // needed for NSS without PEM support
]
]);
$request = new http\Client\Request("GET", "https://localhost:$port");
$client->enqueue($request);
echo $client->send()->getResponse();
});
?>
===DONE===
--EXPECTF--
Test
HTTP/2 200
%a
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>HTTP2</title>
</head>
<body>
Nothing to see here.
</body>
</html>
===DONE===
tests/header006.phpt 0000644 00000000747 15041223676 0010277 0 ustar 00 --TEST--
header parsing
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$header = "Foo: bar\nBar: foo\n";
var_dump(array("Foo"=>"bar","Bar"=>"foo") === http\Header::parse($header));
$headers = http\Header::parse($header, "http\\Header");
var_dump(2 === count($headers));
var_dump(2 === array_reduce($headers, function($count, $header) {
return $count + ($header instanceof http\Header);
}, 0));
?>
Done
--EXPECT--
Test
bool(true)
bool(true)
bool(true)
Done
tests/bug73055.phpt 0000644 00000001242 15041223676 0007771 0 ustar 00 --TEST--
Bug #73055 (Type confusion vulnerability in merge_param())
--SKIPIF--
<?php
include "skipif.inc";
?>
--INI--
zend.exception_ignore_args=off
--FILE--
<?php
echo "Test\n";
try {
echo new http\QueryString("[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]][[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[&%C0[]E[=&2[&%C0[]E[16706[*[");
} catch (Exception $e) {
echo $e;
}
?>
===DONE===
--EXPECTF--
Test
%r(exception ')?%rhttp\Exception\BadQueryStringException%r(' with message '|: )%rhttp\QueryString::__construct(): Max input nesting level of %d exceeded%r'?%r in %sbug73055.php:%d
Stack trace:
#0 %sbug73055.php(%d): http\QueryString->__construct('[[[[[[[[[[[[[[[...')
#1 {main}
===DONE===
tests/params010.phpt 0000644 00000000522 15041223677 0010315 0 ustar 00 --TEST--
int key params
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$p = new http\Params("0=nothing;1=yes");
var_dump(array("0" => array("value" => "nothing", "arguments" => array(1=>"yes"))) === $p->params);
var_dump("0=nothing;1=yes" === $p->toString());
?>
DONE
--EXPECT--
Test
bool(true)
bool(true)
DONE
tests/params006.phpt 0000644 00000000752 15041223677 0010327 0 ustar 00 --TEST--
escaped params
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$p = new http\Params("form-data; name=\"upload\"; filename=\"trick\\\"\0\\\"ed\"");
$c = array(
"form-data" => array(
"value" => true,
"arguments" => array(
"name" => "upload",
"filename" => "trick\"\0\"ed"
)
)
);
var_dump($c === $p->params);
var_dump("form-data;name=upload;filename=\"trick\\\"\\000\\\"ed\"" === (string) $p);
?>
DONE
--EXPECT--
Test
bool(true)
bool(true)
DONE
tests/cookie003.phpt 0000644 00000000375 15041223677 0010313 0 ustar 00 --TEST--
cookies numeric keys
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$c = new http\Cookie("1=%20; 2=%22; 3=%5D", 0, array(2));
var_dump("1=%20; 3=%5D; 2=%22; " === (string) $c);
?>
DONE
--EXPECT--
Test
bool(true)
DONE
tests/urlparser001.phpt 0000644 00000003762 15041223677 0011062 0 ustar 00 --TEST--
url parser
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$urls = array(
"s:",
"ss:",
"s:a",
"ss:aa",
"s://",
"ss://",
"s://a",
"ss://aa",
);
foreach ($urls as $url) {
printf("\n%s\n", $url);
var_dump(new http\Url($url, null, 0));
}
?>
DONE
--EXPECTF--
Test
s:
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
ss:
object(http\Url)#%d (8) {
["scheme"]=>
string(2) "ss"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
s:a
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(1) "a"
["query"]=>
NULL
["fragment"]=>
NULL
}
ss:aa
object(http\Url)#%d (8) {
["scheme"]=>
string(2) "ss"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(2) "aa"
["query"]=>
NULL
["fragment"]=>
NULL
}
s://
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
ss://
object(http\Url)#%d (8) {
["scheme"]=>
string(2) "ss"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
s://a
object(http\Url)#%d (8) {
["scheme"]=>
string(1) "s"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(1) "a"
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
ss://aa
object(http\Url)#%d (8) {
["scheme"]=>
string(2) "ss"
["user"]=>
NULL
["pass"]=>
NULL
["host"]=>
string(2) "aa"
["port"]=>
NULL
["path"]=>
NULL
["query"]=>
NULL
["fragment"]=>
NULL
}
DONE
tests/params015.phpt 0000644 00000000625 15041223677 0010326 0 ustar 00 --TEST--
header params rfc5987 regression
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$p = new http\Params(array("attachment"=>array("filename"=>"foo.bar")));
var_dump($p->params);
var_dump((string)$p);
?>
===DONE===
--EXPECT--
Test
array(1) {
["attachment"]=>
array(1) {
["filename"]=>
string(7) "foo.bar"
}
}
string(27) "attachment;filename=foo.bar"
===DONE===
tests/params001.phpt 0000644 00000002036 15041223677 0010317 0 ustar 00 --TEST--
header params
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$ct = new http\Params("text/html; charset=utf-8", ",", ";", "=", 0);
var_dump(
isset($ct["text/html"]),
isset($ct["text/json"]),
$ct["text/html"]["arguments"]["charset"]
);
unset($ct["text/html"]);
$ct[] = "text/json";
$ct["text/json"] = array("arguments" => array("charset" => "iso-8859-1"));
var_dump(
isset($ct["text/html"]),
isset($ct["text/json"]),
$ct["text/json"]["arguments"]["charset"]
);
var_dump((string) $ct,$ct);
?>
DONE
--EXPECTF--
Test
bool(true)
bool(false)
string(5) "utf-8"
bool(false)
bool(true)
string(10) "iso-8859-1"
string(%d) "text/json;charset=iso-8859-1"
object(http\Params)#%d (5) {
["params"]=>
array(1) {
["text/json"]=>
array(2) {
["value"]=>
bool(true)
["arguments"]=>
array(1) {
["charset"]=>
string(10) "iso-8859-1"
}
}
}
["param_sep"]=>
string(1) ","
["arg_sep"]=>
string(1) ";"
["val_sep"]=>
string(1) "="
["flags"]=>
int(0)
}
DONE
tests/clientrequest003.phpt 0000644 00000001024 15041223677 0011721 0 ustar 00 --TEST--
client request query
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$r = new http\Client\Request("GET", "http://localhost/");
var_dump(null === $r->getQuery());
var_dump($r === $r->setQuery($q = "foo=bar"));
var_dump($q === $r->getQuery());
var_dump($r === $r->addQuery("a[]=1&a[]=2"));
var_dump("foo=bar&a%5B0%5D=1&a%5B1%5D=2" === $r->getQuery());
var_dump(null === $r->setQuery(null)->getQuery());
?>
Done
--EXPECT--
Test
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
Done
tests/messagebody008.phpt 0000644 00000000475 15041223677 0011352 0 ustar 00 --TEST--
message body to callback
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$file = new http\Message\Body(fopen(__FILE__,"r"));
$s = "";
$file->toCallback(
function($body, $string) use (&$s) { $s.=$string; }
);
var_dump($s === (string) $file);
?>
DONE
--EXPECT--
Test
bool(true)
DONE
tests/params016.phpt 0000644 00000002065 15041223677 0010327 0 ustar 00 --TEST--
header params rfc5988
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$link = <<<EOF
<https://api.github.com/search/code?q=addClass+user%3Amozilla&page=2>; rel="next", <https://api.github.com/search/code?q=addClass+user%3Amozilla&page=34>; rel="last"
EOF;
$p = new http\Params($link, ",", ";", "=",
http\Params::PARSE_RFC5988 | http\Params::PARSE_ESCAPED);
var_dump($p->params);
var_dump((string)$p);
?>
===DONE===
--EXPECT--
Test
array(2) {
["https://api.github.com/search/code?q=addClass+user%3Amozilla&page=2"]=>
array(2) {
["value"]=>
bool(true)
["arguments"]=>
array(1) {
["rel"]=>
string(4) "next"
}
}
["https://api.github.com/search/code?q=addClass+user%3Amozilla&page=34"]=>
array(2) {
["value"]=>
bool(true)
["arguments"]=>
array(1) {
["rel"]=>
string(4) "last"
}
}
}
string(162) "<https://api.github.com/search/code?q=addClass+user%3Amozilla&page=2>;rel="next",<https://api.github.com/search/code?q=addClass+user%3Amozilla&page=34>;rel="last""
===DONE===
tests/url002.phpt 0000644 00000001455 15041223677 0007643 0 ustar 00 --TEST--
url properties
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$u = "http://user:pass@www.example.com:8080/path/file.ext".
"?foo=bar&more[]=1&more[]=2#hash";
var_dump($u === (string) new http\Url($u));
$url = new http\Url($u,
array("path" => "changed", "query" => "bar&foo=&added=this"),
http\Url::JOIN_PATH |
http\Url::JOIN_QUERY |
http\Url::STRIP_AUTH |
http\Url::STRIP_FRAGMENT
);
var_dump($url->scheme);
var_dump($url->user);
var_dump($url->pass);
var_dump($url->host);
var_dump($url->port);
var_dump($url->path);
var_dump($url->query);
var_dump($url->fragment);
?>
DONE
--EXPECT--
Test
bool(true)
string(4) "http"
NULL
NULL
string(15) "www.example.com"
int(8080)
string(13) "/path/changed"
string(47) "foo=&more%5B0%5D=1&more%5B1%5D=2&bar&added=this"
NULL
DONE
tests/url003.phpt 0000644 00000000762 15041223677 0007644 0 ustar 00 --TEST--
url modification
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$u = "http://user:pass@www.example.com:8080/path/file.ext".
"?foo=bar&more[]=1&more[]=2#hash";
$tmp = new http\Url($u);
$mod = $tmp->mod(array("query" => "set=1"), http\Url::REPLACE);
var_dump($tmp->toArray() != $mod->toArray());
var_dump("set=1" === $mod->query);
var_dump("new_fragment" === $tmp->mod("#new_fragment")->fragment);
?>
DONE
--EXPECT--
Test
bool(true)
bool(true)
bool(true)
DONE
tests/client001.phpt 0000644 00000000466 15041223677 0010317 0 ustar 00 --TEST--
client drivers
--SKIPIF--
<?php
include "skipif.inc";
skip_client_test();
?>
--FILE--
<?php
echo "Test\n";
foreach (http\Client::getAvailableDrivers() as $driver) {
$client = new http\Client($driver);
var_dump($client instanceof http\Client);
}
?>
Done
--EXPECTREGEX--
Test
(?:bool\(true\)
)+Done
tests/bug69000.phpt 0000644 00000002416 15041223700 0007754 0 ustar 00 --TEST--
Bug #69000 (http\Url breaks down with very long URL query strings)
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
echo new http\Url("http://foo.bar/?".str_repeat("a", 1024));
?>
===DONE===
--EXPECT--
Test
http://foo.bar/?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
===DONE===
tests/params003.phpt 0000644 00000002463 15041223700 0010310 0 ustar 00 --TEST--
default params
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$s = "foo, bar;arg=0;bla, gotit=0;now";
$p = new http\Params($s);
$c = str_replace(" ", "", $s);
$k = array("foo", "bar", "gotit");
$a = array("foo"=>"arg", "bar"=>"bla", "gotit"=>"now");
$r = array (
'foo' =>
array (
'value' => true,
'arguments' =>
array (
),
),
'bar' =>
array (
'value' => true,
'arguments' =>
array (
'arg' => '0',
'bla' => true,
),
),
'gotit' =>
array (
'value' => '0',
'arguments' =>
array (
'now' => true,
),
),
);
# ---
var_dump(count($p->params));
echo "key exists\n";
foreach ($k as $key) {
var_dump(array_key_exists($key, $p->params));
}
echo "values\n";
foreach ($k as $key) {
var_dump($p[$key]["value"]);
}
echo "args\n";
foreach ($k as $key) {
var_dump(count($p[$key]["arguments"]));
}
echo "arg values\n";
foreach ($k as $key) {
var_dump(@$p[$key]["arguments"][$a[$key]]);
}
echo "equals\n";
var_dump($c === (string) $p);
var_dump($r === $p->params);
$x = new http\Params($p->params);
var_dump($r === $x->toArray());
?>
DONE
--EXPECT--
Test
int(3)
key exists
bool(true)
bool(true)
bool(true)
values
bool(true)
bool(true)
string(1) "0"
args
int(0)
int(2)
int(1)
arg values
NULL
bool(true)
bool(true)
equals
bool(true)
bool(true)
bool(true)
DONE
tests/header007.phpt 0000644 00000000461 15041223700 0010255 0 ustar 00 --TEST--
header parse error
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";
$header = "wass\nup";
http\Header::parse($header);
?>
Done
--EXPECTF--
Test
Warning: http\Header::parse(): Failed to parse headers: unexpected end of line at pos 4 of 'wass\nup' in %s on line %d
Done
tests/bug67932.phpt 0000644 00000000443 15041223700 0007766 0 ustar 00 --TEST--
Bug #67932 (php://input always empty)
--SKIPIF--
<?php
include "skipif.inc";
?>
--PUT--
Content-Type: text/xml
<?xml version="1.0" encoding="utf-8" ?>
<body>test</body>
--FILE--
<?php
readfile("php://input");
?>
--EXPECT--
<?xml version="1.0" encoding="utf-8" ?>
<body>test</body>