From 8cb7e0ba64f11ba6a136d9c851b700bcdb776063 Mon Sep 17 00:00:00 2001 From: Andrew Clayton Date: Thu, 26 Jan 2023 12:11:49 +0000 Subject: [PATCH] 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 Cc: Andrei Zeliankou [ Incorporates a couple of small test cleanups from Andrei ] Signed-off-by: Andrew Clayton --- test/test_php_application.py | 20 ++++++++++++++++++++ test/test_php_targets.py | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/test/test_php_application.py b/test/test_php_application.py index f442f5518..c554200c8 100644 --- a/test/test_php_application.py +++ b/test/test_php_application.py @@ -664,6 +664,26 @@ def test_php_application_trailing_slash(self, temp_dir): 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') diff --git a/test/test_php_targets.py b/test/test_php_targets.py index eec1846f1..2cf39c1c7 100644 --- a/test/test_php_targets.py +++ b/test/test_php_targets.py @@ -45,7 +45,7 @@ def test_php_application_targets(self): 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'