summaryrefslogtreecommitdiffhomepage
path: root/test/test_php_application.py
diff options
context:
space:
mode:
authorAndrew Clayton <a.clayton@nginx.com>2023-01-26 12:11:49 +0000
committerAndrew Clayton <a.clayton@nginx.com>2023-01-30 17:00:13 +0000
commit0be289b7fcd6c837710fb3868b3b3fbdc0395b64 (patch)
treecadaaadaf4c006e89c08fb02679c3c04854ea852 /test/test_php_application.py
parentbebc03c729df1d7efc81a5af8b8dac40b333d408 (diff)
downloadunit-0be289b7fcd6c837710fb3868b3b3fbdc0395b64.tar.gz
unit-0be289b7fcd6c837710fb3868b3b3fbdc0395b64.tar.bz2
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>
Diffstat (limited to 'test/test_php_application.py')
-rw-r--r--test/test_php_application.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/test_php_application.py b/test/test_php_application.py
index f442f551..c554200c 100644
--- a/test/test_php_application.py
+++ b/test/test_php_application.py
@@ -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')