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:
@@ -664,6 +664,26 @@ opcache.preload_user = %(user)s
|
|||||||
resp['headers']['Location'] == 'http://foo/path/'
|
resp['headers']['Location'] == 'http://foo/path/'
|
||||||
), 'Location with custom Host over UDS'
|
), '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):
|
def test_php_application_extension_check(self, temp_dir):
|
||||||
self.load('phpinfo')
|
self.load('phpinfo')
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class TestPHPTargets(TestApplicationPHP):
|
|||||||
|
|
||||||
assert self.get(url='/1')['body'] == '1'
|
assert self.get(url='/1')['body'] == '1'
|
||||||
assert self.get(url='/2')['body'] == '2'
|
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='/')['body'] == 'index'
|
||||||
assert self.get(url='/1.php?test=test.php/')['body'] == '1'
|
assert self.get(url='/1.php?test=test.php/')['body'] == '1'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user