Viewing File: /opt/alt/tests/alt-php83-pecl-http_4.2.6-4.el8/tests/message001.phpt

--TEST--
message
--SKIPIF--
<?php
include "skipif.inc";
?>
--FILE--
<?php
echo "Test\n";

use http\Message as HttpMessage;

try {
    echo new HttpMessage(" gosh\n nosh\n ");
} catch (Exception $ignore) {
}

$m = new HttpMessage();
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_NONE,
	$m->getHeaders()
);

$m = new HttpMessage("GET / HTTP/1.1\r\n");
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_REQUEST,
	$m->getRequestMethod(),
	$m->getRequestUrl(),
	$m->getHeaders()
);

$m = new HttpMessage("HTTP/1.1 200 Okidoki\r\n");
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);

echo "---\n";

$m = new HttpMessage(file_get_contents(__DIR__."/data/message_rr_empty.txt"));
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);
echo $m->getParentMessage();

$m = new HttpMessage(file_get_contents(__DIR__."/data/message_rr_empty_gzip.txt"));
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);
echo $m->getParentMessage();

$m = new HttpMessage(file_get_contents(__DIR__."/data/message_rr_empty_chunked.txt"));
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);
echo $m->getParentMessage();

$m = new HttpMessage(file_get_contents(__DIR__."/data/message_rr_helloworld_chunked.txt"));
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);
echo $m->getParentMessage();

echo "---\n";

$m = new HttpMessage(fopen(__DIR__."/data/message_rr_empty.txt", "r+b"));
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);
echo $m->getParentMessage();

$m = new HttpMessage(fopen(__DIR__."/data/message_rr_empty_gzip.txt", "r+b"));
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);
echo $m->getParentMessage();

$m = new HttpMessage(fopen(__DIR__."/data/message_rr_empty_chunked.txt", "r+b"));
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);
echo $m->getParentMessage();

$m = new HttpMessage(fopen(__DIR__."/data/message_rr_helloworld_chunked.txt", "r+b"));
echo $m;
var_dump(
	$m->getHttpVersion(),
	$m->getType()==HttpMessage::TYPE_RESPONSE,
	$m->getResponseCode(),
	$m->getResponseStatus(),
	$m->getHeaders()
);
echo $m->getParentMessage();

echo "Done\n";
--EXPECTF--
Test
string(3) "1.1"
bool(true)
array(0) {
}
GET / HTTP/1.1
string(3) "1.1"
bool(true)
string(3) "GET"
string(1) "/"
array(0) {
}
HTTP/1.1 200 Okidoki
string(3) "1.1"
bool(true)
int(200)
string(7) "Okidoki"
array(0) {
}
---
HTTP/1.1 200 OK
Date: Wed, 25 Aug 2010 12:11:44 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6
Last-Modified: Wed, 28 Apr 2010 10:54:37 GMT
Etag: "2002a-0-48549d615a35c"
Accept-Ranges: bytes
Content-Length: 0
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain
X-Original-Content-Length: 0
string(3) "1.1"
bool(true)
int(200)
string(2) "OK"
array(10) {
  ["Date"]=>
  string(29) "Wed, 25 Aug 2010 12:11:44 GMT"
  ["Server"]=>
  string(68) "Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6"
  ["Last-Modified"]=>
  string(29) "Wed, 28 Apr 2010 10:54:37 GMT"
  ["Etag"]=>
  string(23) ""2002a-0-48549d615a35c""
  ["Accept-Ranges"]=>
  string(5) "bytes"
  ["Content-Length"]=>
  string(1) "0"
  ["Vary"]=>
  string(15) "Accept-Encoding"
  ["Connection"]=>
  string(5) "close"
  ["Content-Type"]=>
  string(10) "text/plain"
  ["X-Original-Content-Length"]=>
  string(1) "0"
}
GET /default/empty.txt HTTP/1.1
Host: localhost
Connection: close
HTTP/1.1 200 OK
Date: Thu, 26 Aug 2010 09:55:09 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6
Last-Modified: Wed, 28 Apr 2010 10:54:37 GMT
Etag: "2002a-0-48549d615a35c"
Accept-Ranges: bytes
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain
X-Original-Content-Length: 20
X-Original-Content-Encoding: gzip
string(3) "1.1"
bool(true)
int(200)
string(2) "OK"
array(10) {
  ["Date"]=>
  string(29) "Thu, 26 Aug 2010 09:55:09 GMT"
  ["Server"]=>
  string(68) "Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6"
  ["Last-Modified"]=>
  string(29) "Wed, 28 Apr 2010 10:54:37 GMT"
  ["Etag"]=>
  string(23) ""2002a-0-48549d615a35c""
  ["Accept-Ranges"]=>
  string(5) "bytes"
  ["Vary"]=>
  string(15) "Accept-Encoding"
  ["Connection"]=>
  string(5) "close"
  ["Content-Type"]=>
  string(10) "text/plain"
  ["X-Original-Content-Length"]=>
  string(2) "20"
  ["X-Original-Content-Encoding"]=>
  string(4) "gzip"
}
GET /default/empty.txt HTTP/1.1
Host: localhost
Accept-Encoding: gzip
Connection: close
HTTP/1.1 200 OK
Date: Thu, 26 Aug 2010 11:41:02 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6
X-Powered-By: PHP/5.3.3
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
X-Original-Transfer-Encoding: chunked
Content-Length: 0
string(3) "1.1"
bool(true)
int(200)
string(2) "OK"
array(8) {
  ["Date"]=>
  string(29) "Thu, 26 Aug 2010 11:41:02 GMT"
  ["Server"]=>
  string(68) "Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6"
  ["X-Powered-By"]=>
  string(9) "PHP/5.3.3"
  ["Vary"]=>
  string(15) "Accept-Encoding"
  ["Connection"]=>
  string(5) "close"
  ["Content-Type"]=>
  string(9) "text/html"
  ["X-Original-Transfer-Encoding"]=>
  string(7) "chunked"
  ["Content-Length"]=>
  int(0)
}
GET /default/empty.php HTTP/1.1
Connection: close
Host: localhost
HTTP/1.1 200 OK
Date: Thu, 26 Aug 2010 12:51:28 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain
X-Original-Transfer-Encoding: chunked
Content-Length: 14

Hello, World!
string(3) "1.1"
bool(true)
int(200)
string(2) "OK"
array(7) {
  ["Date"]=>
  string(29) "Thu, 26 Aug 2010 12:51:28 GMT"
  ["Server"]=>
  string(68) "Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6"
  ["Vary"]=>
  string(15) "Accept-Encoding"
  ["Connection"]=>
  string(5) "close"
  ["Content-Type"]=>
  string(10) "text/plain"
  ["X-Original-Transfer-Encoding"]=>
  string(7) "chunked"
  ["Content-Length"]=>
  int(14)
}
GET /cgi-bin/chunked.sh HTTP/1.1
Host: localhost
Connection: close
---
HTTP/1.1 200 OK
Date: Wed, 25 Aug 2010 12:11:44 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6
Last-Modified: Wed, 28 Apr 2010 10:54:37 GMT
Etag: "2002a-0-48549d615a35c"
Accept-Ranges: bytes
Content-Length: 0
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain
X-Original-Content-Length: 0
string(3) "1.1"
bool(true)
int(200)
string(2) "OK"
array(10) {
  ["Date"]=>
  string(29) "Wed, 25 Aug 2010 12:11:44 GMT"
  ["Server"]=>
  string(68) "Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6"
  ["Last-Modified"]=>
  string(29) "Wed, 28 Apr 2010 10:54:37 GMT"
  ["Etag"]=>
  string(23) ""2002a-0-48549d615a35c""
  ["Accept-Ranges"]=>
  string(5) "bytes"
  ["Content-Length"]=>
  string(1) "0"
  ["Vary"]=>
  string(15) "Accept-Encoding"
  ["Connection"]=>
  string(5) "close"
  ["Content-Type"]=>
  string(10) "text/plain"
  ["X-Original-Content-Length"]=>
  string(1) "0"
}
GET /default/empty.txt HTTP/1.1
Host: localhost
Connection: close
HTTP/1.1 200 OK
Date: Thu, 26 Aug 2010 09:55:09 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6
Last-Modified: Wed, 28 Apr 2010 10:54:37 GMT
Etag: "2002a-0-48549d615a35c"
Accept-Ranges: bytes
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain
X-Original-Content-Length: 20
X-Original-Content-Encoding: gzip
string(3) "1.1"
bool(true)
int(200)
string(2) "OK"
array(10) {
  ["Date"]=>
  string(29) "Thu, 26 Aug 2010 09:55:09 GMT"
  ["Server"]=>
  string(68) "Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6"
  ["Last-Modified"]=>
  string(29) "Wed, 28 Apr 2010 10:54:37 GMT"
  ["Etag"]=>
  string(23) ""2002a-0-48549d615a35c""
  ["Accept-Ranges"]=>
  string(5) "bytes"
  ["Vary"]=>
  string(15) "Accept-Encoding"
  ["Connection"]=>
  string(5) "close"
  ["Content-Type"]=>
  string(10) "text/plain"
  ["X-Original-Content-Length"]=>
  string(2) "20"
  ["X-Original-Content-Encoding"]=>
  string(4) "gzip"
}
GET /default/empty.txt HTTP/1.1
Host: localhost
Accept-Encoding: gzip
Connection: close
HTTP/1.1 200 OK
Date: Thu, 26 Aug 2010 11:41:02 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6
X-Powered-By: PHP/5.3.3
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
X-Original-Transfer-Encoding: chunked
Content-Length: 0
string(3) "1.1"
bool(true)
int(200)
string(2) "OK"
array(8) {
  ["Date"]=>
  string(29) "Thu, 26 Aug 2010 11:41:02 GMT"
  ["Server"]=>
  string(68) "Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6"
  ["X-Powered-By"]=>
  string(9) "PHP/5.3.3"
  ["Vary"]=>
  string(15) "Accept-Encoding"
  ["Connection"]=>
  string(5) "close"
  ["Content-Type"]=>
  string(9) "text/html"
  ["X-Original-Transfer-Encoding"]=>
  string(7) "chunked"
  ["Content-Length"]=>
  int(0)
}
GET /default/empty.php HTTP/1.1
Connection: close
Host: localhost
HTTP/1.1 200 OK
Date: Thu, 26 Aug 2010 12:51:28 GMT
Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain
X-Original-Transfer-Encoding: chunked
Content-Length: 14

Hello, World!
string(3) "1.1"
bool(true)
int(200)
string(2) "OK"
array(7) {
  ["Date"]=>
  string(29) "Thu, 26 Aug 2010 12:51:28 GMT"
  ["Server"]=>
  string(68) "Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a mod_fastcgi/2.4.6"
  ["Vary"]=>
  string(15) "Accept-Encoding"
  ["Connection"]=>
  string(5) "close"
  ["Content-Type"]=>
  string(10) "text/plain"
  ["X-Original-Transfer-Encoding"]=>
  string(7) "chunked"
  ["Content-Length"]=>
  int(14)
}
GET /cgi-bin/chunked.sh HTTP/1.1
Host: localhost
Connection: close
Done
Back to Directory File Manager
<