Tests: Add some PHP tests for 403 and 404 error handling.

Since the previous commit, we now properly handle 403 Forbidden & 404
Not Found errors in the PHP language module.

This adds a test for 403 Forbidden to test/test_php_application.py, but
also fixes a test in test/test_php_targets.py where we were checking for
503 but should have been a 404, which we now do.

Acked-by: Alejandro Colomar <alx@nginx.com>
Cc: Andrei Zeliankou <zelenkov@nginx.com>
[ Incorporates a couple of small test cleanups from Andrei ]
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
This commit is contained in:
Andrew Clayton
2023-01-26 12:11:49 +00:00
parent bebc03c729
commit 0be289b7fc
2 changed files with 21 additions and 1 deletions

View File

@@ -664,6 +664,26 @@ opcache.preload_user = %(user)s
resp['headers']['Location'] == 'http://foo/path/'
), 'Location with custom Host over UDS'
def test_php_application_forbidden(self, temp_dir):
new_root = temp_dir + "/php-root"
os.makedirs(new_root + '/path')
os.chmod(new_root + '/path', 0o000)
assert 'success' in self.conf(
{
"listeners": {"*:7080": {"pass": "applications/php-path"}},
"applications": {
"php-path": {
"type": self.get_application_type(),
"processes": {"spare": 0},
"root": new_root,
}
},
}
), 'forbidden directory'
assert self.get(url='/path/')['status'] == 403, 'access forbidden'
def test_php_application_extension_check(self, temp_dir):
self.load('phpinfo')

View File

@@ -45,7 +45,7 @@ class TestPHPTargets(TestApplicationPHP):
assert self.get(url='/1')['body'] == '1'
assert self.get(url='/2')['body'] == '2'
assert self.get(url='/blah')['status'] == 503 # TODO 404
assert self.get(url='/blah')['status'] == 404
assert self.get(url='/')['body'] == 'index'
assert self.get(url='/1.php?test=test.php/')['body'] == '1'