Browse Source

Add tests for built-in webserver

pull/7/head
Xinchen Hui 15 years ago
parent
commit
552bfa8156
  1. 29
      sapi/cli/tests/php_cli_server.inc
  2. 21
      sapi/cli/tests/php_cli_server_001.phpt
  3. 23
      sapi/cli/tests/php_cli_server_002.phpt
  4. 23
      sapi/cli/tests/php_cli_server_003.phpt

29
sapi/cli/tests/php_cli_server.inc

@ -0,0 +1,29 @@
<?php
define ("PHP_CLI_SERVER_ADDRESS", "localhost:8964");
function php_cli_server_start($php_executable, $code = 'echo "Hello world";') {
$doc_root = __DIR__;
$router = "router.php";
file_put_contents($doc_root . '/' . $router, '<?php ' . $code . ' ?>');
$descriptorspec = array(
0 => STDIN,
1 => STDOUT,
2 => STDERR,
);
$cmd = "{$php_executable} -t {$doc_root} -S " . PHP_CLI_SERVER_ADDRESS . " {$router}";
$handle = proc_open($cmd, $descriptorspec, $pipes, $doc_root);
sleep(1);
return $handle;
}
function php_cli_server_shutdown($handle) {
proc_terminate($handle);
proc_close($handle);
@unlink(__DIR__ . "router.php");
return true;
}
?>

21
sapi/cli/tests/php_cli_server_001.phpt

@ -0,0 +1,21 @@
--TEST--
basic function
--INI--
allow_url_fopen = TRUE
--SKIPIF--
<?php
include "skipif.inc";
if (substr(PHP_OS, 0, 3) == 'WIN') {
die ("skip not for Windows");
}
?>
--FILE--
<?php
include "php_cli_server.inc";
$php = getenv('TEST_PHP_EXECUTABLE');
$handle = php_cli_server_start($php);
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
php_cli_server_shutdown($handle);
?>
--EXPECT--
string(11) "Hello world"

23
sapi/cli/tests/php_cli_server_002.phpt

@ -0,0 +1,23 @@
--TEST--
$_SERVER variable
--INI--
allow_url_fopen = TRUE
--SKIPIF--
<?php
include "skipif.inc";
if (substr(PHP_OS, 0, 3) == 'WIN') {
die ("skip not for Windows");
}
?>
--FILE--
<?php
include "php_cli_server.inc";
$php = getenv('TEST_PHP_EXECUTABLE');
$handle = php_cli_server_start($php, 'var_dump($_SERVER["DOCUMENT_ROOT"], $_SERVER["SERVER_SOFTWARE"]);');
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
php_cli_server_shutdown($handle);
?>
--EXPECTF--
string(%d) "string(%d) "%s/tests"
string(%d) "PHP %s Development Server"
"

23
sapi/cli/tests/php_cli_server_003.phpt

@ -0,0 +1,23 @@
--TEST--
Bug #55726 (Changing the working directory makes router script inaccessible)
--INI--
allow_url_fopen = 1
--SKIPIF--
<?php
include "skipif.inc";
if (substr(PHP_OS, 0, 3) == 'WIN') {
die ("skip not for Windows");
}
?>
--FILE--
<?php
include "php_cli_server.inc";
$php = getenv('TEST_PHP_EXECUTABLE');
$handle = php_cli_server_start($php, 'chdir("/tmp"); echo "okey";');
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
var_dump(file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS));
php_cli_server_shutdown($handle);
?>
--EXPECTF--
string(4) "okey"
string(4) "okey"
Loading…
Cancel
Save