]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
* test/modules/core: Adds test for disabled note option in trunk trunk
authorJoe Orton <jorton@apache.org>
Mon, 19 Jan 2026 16:38:04 +0000 (16:38 +0000)
committerJoe Orton <jorton@apache.org>
Mon, 19 Jan 2026 16:38:04 +0000 (16:38 +0000)
  RequestHeader

Submitted by: Giannis Christodoulou <io.xristod gmail.com>
Github: closes #594

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1931424 13f79535-47bb-0310-9956-ffa450edef68

test/modules/core/env.py
test/modules/core/htdocs/userdir/testuser/public_html/cgi-bin/.htaccess [new file with mode: 0644]
test/modules/core/htdocs/userdir/testuser/public_html/cgi-bin/test.cgi [new file with mode: 0755]
test/modules/core/test_005_userdir_headers.py [new file with mode: 0644]

index 9124a28f26f5c129c39735bb035164db92e3bf49..21906be7361d39e412e9a3a1afe6a06db1456e22 100644 (file)
@@ -12,7 +12,7 @@ class CoreTestSetup(HttpdTestSetup):
     def __init__(self, env: 'HttpdTestEnv'):
         super().__init__(env=env)
         self.add_source_dir(os.path.dirname(inspect.getfile(CoreTestSetup)))
-        self.add_modules(["cgid","include"])
+        self.add_modules(["cgid","include","userdir","suexec","headers"])
 
 
 class CoreTestEnv(HttpdTestEnv):
diff --git a/test/modules/core/htdocs/userdir/testuser/public_html/cgi-bin/.htaccess b/test/modules/core/htdocs/userdir/testuser/public_html/cgi-bin/.htaccess
new file mode 100644 (file)
index 0000000..74b332a
--- /dev/null
@@ -0,0 +1 @@
+RequestHeader note internal_note "empty_note"
diff --git a/test/modules/core/htdocs/userdir/testuser/public_html/cgi-bin/test.cgi b/test/modules/core/htdocs/userdir/testuser/public_html/cgi-bin/test.cgi
new file mode 100755 (executable)
index 0000000..9c8c67c
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+echo "Content-Type: text/plain"
+echo
+echo "OK"
diff --git a/test/modules/core/test_005_userdir_headers.py b/test/modules/core/test_005_userdir_headers.py
new file mode 100644 (file)
index 0000000..c28bb96
--- /dev/null
@@ -0,0 +1,43 @@
+import os
+import re
+import pytest
+
+from pyhttpd.conf import HttpdConf
+
+class TestUserdirHeaders:
+
+    @pytest.fixture(autouse=True, scope='class')
+    def _class_scope(self, env):
+
+        userdir_base = os.path.join(env.server_dir, "htdocs", "userdir")
+
+        conf = HttpdConf(env, extras={
+            'base': f"""
+        UserDir "{userdir_base}/*/public_html"
+        <Directory "{userdir_base}/*/public_html">
+            AllowOverride FileInfo
+            Options +ExecCGI
+            SetHandler cgi-script
+        </Directory>
+        """
+        })
+        conf.add_vhost_test1()
+        conf.install()
+        assert env.apache_restart() == 0
+
+    def test_core_005_01_requestheader_note_rejected(self, env):
+        url = env.mkurl("http", "test1", "/~testuser/cgi-bin/test.cgi")
+        r = env.curl_get(url)
+
+        # Check error log for the rejection message
+        re_rejection = re.compile(r".*RequestHeader does not support the 'note' action.*")
+
+        directive_rejected = False
+        try:
+            directive_rejected = env.httpd_error_log.scan_recent(re_rejection)
+        except TimeoutError:
+            pass
+
+        assert directive_rejected, \
+            "RequestHeader note directive was not rejected"